123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588 |
- <?php
- /*
- * This file is part of PHP CS Fixer.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- * Dariusz Rumiński <dariusz.ruminski@gmail.com>
- *
- * This source file is subject to the MIT license that is bundled
- * with this source code in the file LICENSE.
- */
- namespace PhpCsFixer\Tests\Fixer\Phpdoc;
- use PhpCsFixer\Test\AbstractFixerTestCase;
- /**
- * @author Graham Campbell <graham@alt-three.com>
- *
- * @internal
- *
- * @covers \PhpCsFixer\Fixer\Phpdoc\PhpdocSeparationFixer
- */
- final class PhpdocSeparationFixerTest extends AbstractFixerTestCase
- {
- public function testFix()
- {
- $this->doTest('<?php
- /** @param EngineInterface $templating
- *@return void
- */');
- $expected = <<<'EOF'
- <?php
- /**
- * @param EngineInterface $templating
- *
- * @return void
- */
- EOF;
- $input = <<<'EOF'
- <?php
- /**
- * @param EngineInterface $templating
- * @return void
- */
- EOF;
- $this->doTest($expected, $input);
- }
- public function testFixMoreTags()
- {
- $expected = <<<'EOF'
- <?php
- /**
- * Hello there!
- *
- * @internal
- *
- * @param string $foo
- *
- * @throws Exception
- *
- * @return bool
- */
- EOF;
- $input = <<<'EOF'
- <?php
- /**
- * Hello there!
- * @internal
- * @param string $foo
- * @throws Exception
- *
- *
- *
- * @return bool
- */
- EOF;
- $this->doTest($expected, $input);
- }
- public function testFixSpreadOut()
- {
- $expected = <<<'EOF'
- <?php
- /**
- * Hello there!
- *
- * Long description
- * goes here.
- *
- * @param string $foo
- * @param bool $bar Bar
- *
- * @throws Exception|RuntimeException
- *
- * @return bool
- */
- EOF;
- $input = <<<'EOF'
- <?php
- /**
- * Hello there!
- *
- * Long description
- * goes here.
- * @param string $foo
- *
- *
- * @param bool $bar Bar
- *
- *
- *
- * @throws Exception|RuntimeException
- *
- *
- *
- *
- * @return bool
- */
- EOF;
- $this->doTest($expected, $input);
- }
- public function testMultiLineComments()
- {
- $expected = <<<'EOF'
- <?php
- /**
- * Hello there!
- *
- * Long description
- * goes here.
- *
- * @param string $foo test 123
- * asdasdasd
- * @param bool $bar qwerty
- *
- * @throws Exception|RuntimeException
- *
- * @return bool
- */
- EOF;
- $input = <<<'EOF'
- <?php
- /**
- * Hello there!
- *
- * Long description
- * goes here.
- * @param string $foo test 123
- * asdasdasd
- * @param bool $bar qwerty
- * @throws Exception|RuntimeException
- * @return bool
- */
- EOF;
- $this->doTest($expected, $input);
- }
- public function testCrazyMultiLineComments()
- {
- $expected = <<<'EOF'
- <?php
- /**
- * Clients accept an array of constructor parameters.
- *
- * Here's an example of creating a client using an URI template for the
- * client's base_url and an array of default request options to apply
- * to each request:
- *
- * $client = new Client([
- * 'base_url' => [
- * 'http://www.foo.com/{version}/',
- * ['version' => '123']
- * ],
- * 'defaults' => [
- * 'timeout' => 10,
- * 'allow_redirects' => false,
- * 'proxy' => '192.168.16.1:10'
- * ]
- * ]);
- *
- * @param array $config Client configuration settings
- * - base_url: Base URL of the client that is merged into relative URLs.
- * Can be a string or an array that contains a URI template followed
- * by an associative array of expansion variables to inject into the
- * URI template.
- * - handler: callable RingPHP handler used to transfer requests
- * - message_factory: Factory used to create request and response object
- * - defaults: Default request options to apply to each request
- * - emitter: Event emitter used for request events
- * - fsm: (internal use only) The request finite state machine. A
- * function that accepts a transaction and optional final state. The
- * function is responsible for transitioning a request through its
- * lifecycle events.
- * @param string $foo
- */
- EOF;
- $this->doTest($expected);
- }
- public function testDoctrineExample()
- {
- $expected = <<<'EOF'
- <?php
- /**
- * PersistentObject base class that implements getter/setter methods for all mapped fields and associations
- * by overriding __call.
- *
- * This class is a forward compatible implementation of the PersistentObject trait.
- *
- * Limitations:
- *
- * 1. All persistent objects have to be associated with a single ObjectManager, multiple
- * ObjectManagers are not supported. You can set the ObjectManager with `PersistentObject#setObjectManager()`.
- * 2. Setters and getters only work if a ClassMetadata instance was injected into the PersistentObject.
- * This is either done on `postLoad` of an object or by accessing the global object manager.
- * 3. There are no hooks for setters/getters. Just implement the method yourself instead of relying on __call().
- * 4. Slower than handcoded implementations: An average of 7 method calls per access to a field and 11 for an association.
- * 5. Only the inverse side associations get autoset on the owning side as well. Setting objects on the owning side
- * will not set the inverse side associations.
- *
- * @example
- *
- * PersistentObject::setObjectManager($em);
- *
- * class Foo extends PersistentObject
- * {
- * private $id;
- * }
- *
- * $foo = new Foo();
- * $foo->getId(); // method exists through __call
- *
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- */
- EOF;
- $this->doTest($expected);
- }
- public function testSymfonyExample()
- {
- $expected = <<<'EOF'
- <?php
- /**
- * Constructor.
- *
- * Depending on how you want the storage driver to behave you probably
- * want to override this constructor entirely.
- *
- * List of options for $options array with their defaults.
- *
- * @see http://php.net/session.configuration for options
- *
- * but we omit 'session.' from the beginning of the keys for convenience.
- *
- * ("auto_start", is not supported as it tells PHP to start a session before
- * PHP starts to execute user-land code. Setting during runtime has no effect).
- *
- * cache_limiter, "nocache" (use "0" to prevent headers from being sent entirely).
- * cookie_domain, ""
- * cookie_httponly, ""
- * cookie_lifetime, "0"
- * cookie_path, "/"
- * cookie_secure, ""
- * entropy_file, ""
- * entropy_length, "0"
- * gc_divisor, "100"
- * gc_maxlifetime, "1440"
- * gc_probability, "1"
- * hash_bits_per_character, "4"
- * hash_function, "0"
- * name, "PHPSESSID"
- * referer_check, ""
- * serialize_handler, "php"
- * use_cookies, "1"
- * use_only_cookies, "1"
- * use_trans_sid, "0"
- * upload_progress.enabled, "1"
- * upload_progress.cleanup, "1"
- * upload_progress.prefix, "upload_progress_"
- * upload_progress.name, "PHP_SESSION_UPLOAD_PROGRESS"
- * upload_progress.freq, "1%"
- * upload_progress.min-freq, "1"
- * url_rewriter.tags, "a=href,area=href,frame=src,form=,fieldset="
- *
- * @param array $options Session configuration options.
- * @param AbstractProxy|NativeSessionHandler|\SessionHandlerInterface|null $handler
- * @param MetadataBag $metaBag MetadataBag.
- */
- EOF;
- $this->doTest($expected);
- }
- public function testDeprecatedAndSeeTags()
- {
- $expected = <<<'EOF'
- <?php
- /**
- * Hi!
- *
- * @author Bar Baz <foo@example.com>
- *
- * @deprecated As of some version.
- * @see Replacement
- * described here.
- *
- * @param string $foo test 123
- * @param bool $bar qwerty
- *
- * @return void
- */
- EOF;
- $input = <<<'EOF'
- <?php
- /**
- * Hi!
- *
- * @author Bar Baz <foo@example.com>
- * @deprecated As of some version.
- *
- * @see Replacement
- * described here.
- * @param string $foo test 123
- * @param bool $bar qwerty
- *
- * @return void
- */
- EOF;
- $this->doTest($expected, $input);
- }
- public function testPropertyTags()
- {
- $expected = <<<'EOF'
- <?php
- /**
- * @author Bar Baz <foo@example.com>
- *
- * @property int $foo
- * @property-read int $foo
- * @property-write int $bar
- */
- EOF;
- $input = <<<'EOF'
- <?php
- /**
- * @author Bar Baz <foo@example.com>
- * @property int $foo
- *
- * @property-read int $foo
- *
- * @property-write int $bar
- */
- EOF;
- $this->doTest($expected, $input);
- }
- public function testClassDocBlock()
- {
- $expected = <<<'EOF'
- <?php
- namespace Foo;
- /**
- * This is a class that does classy things.
- *
- * @internal
- *
- * @package Foo
- * @subpackage Foo\Bar
- *
- * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
- * @author Graham Campbell <graham@alt-three.com>
- * @copyright Foo Bar
- * @license MIT
- */
- class Bar {}
- EOF;
- $input = <<<'EOF'
- <?php
- namespace Foo;
- /**
- * This is a class that does classy things.
- * @internal
- * @package Foo
- *
- *
- * @subpackage Foo\Bar
- * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
- *
- * @author Graham Campbell <graham@alt-three.com>
- *
- * @copyright Foo Bar
- *
- *
- * @license MIT
- */
- class Bar {}
- EOF;
- $this->doTest($expected, $input);
- }
- public function testPoorAlignment()
- {
- $expected = <<<'EOF'
- <?php
- namespace Foo;
- /**
- * This is a class that does classy things.
- *
- * @internal
- *
- * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
- *@author Graham Campbell <graham@alt-three.com>
- */
- class Bar {}
- EOF;
- $input = <<<'EOF'
- <?php
- namespace Foo;
- /**
- * This is a class that does classy things.
- *
- * @internal
- *
- *
- *
- * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
- *
- *
- *@author Graham Campbell <graham@alt-three.com>
- */
- class Bar {}
- EOF;
- $this->doTest($expected, $input);
- }
- public function testDoNotMoveUnknownAnnotations()
- {
- $expected = <<<'EOF'
- <?php
- /**
- * @expectedException Exception
- * @expectedExceptionMessage Oh Noes!
- * Something when wrong!
- *
- *
- * @Hello\Test\Foo(asd)
- * @Method("GET")
- *
- * @param string $expected
- * @param string $input
- */
- EOF;
- $input = <<<'EOF'
- <?php
- /**
- * @expectedException Exception
- * @expectedExceptionMessage Oh Noes!
- * Something when wrong!
- *
- *
- * @Hello\Test\Foo(asd)
- * @Method("GET")
- *
- * @param string $expected
- *
- * @param string $input
- */
- EOF;
- $this->doTest($expected, $input);
- }
- public function testInheritDoc()
- {
- $expected = <<<'EOF'
- <?php
- /**
- * {@inheritdoc}
- *
- * @param string $expected
- * @param string $input
- */
- EOF;
- $input = <<<'EOF'
- <?php
- /**
- * {@inheritdoc}
- * @param string $expected
- * @param string $input
- */
- EOF;
- $this->doTest($expected, $input);
- }
- public function testEmptyDocBlock()
- {
- $expected = <<<'EOF'
- <?php
- /**
- *
- */
- EOF;
- $this->doTest($expected);
- }
- public function testLargerEmptyDocBlock()
- {
- $expected = <<<'EOF'
- <?php
- /**
- *
- *
- *
- *
- */
- EOF;
- $this->doTest($expected);
- }
- public function testMessyWhitespaces()
- {
- $expected = "<?php\t/**\r\n\t * @param string \$text\r\n\t *\r\n\t * @return string\r\n\t */";
- $input = "<?php\t/**\r\n\t * @param string \$text\r\n\t * @return string\r\n\t */";
- $this->doTest($expected, $input);
- }
- }
|