/**
  * @param Iterator $iterator
  * @param array $whitespace
  */
 public function setWhitespace(Iterator $iterator, array $whitespace)
 {
     $token = $iterator->current();
     $this->_moveIteratorToTargetToken($iterator);
     $targetToken = $iterator->current();
     $tokenValue = $this->getWhitespaceForToken($token, $whitespace);
     $containerChanger = false;
     if (null !== $targetToken) {
         if ($this->isType($targetToken, T_WHITESPACE)) {
             if (empty($tokenValue)) {
                 $this->_container->removeToken($targetToken);
                 $containerChanger = true;
             } else {
                 $targetToken->setValue($tokenValue);
             }
         } else {
             if (!empty($tokenValue)) {
                 $newToken = Token::factory(array(T_WHITESPACE, $tokenValue));
                 $this->_insertToken($newToken, $iterator);
                 $containerChanger = true;
             }
         }
     }
     $this->_moveIteratorBackFromTagetToken($iterator);
     if (true === $containerChanger) {
         $iterator->update($iterator->current());
     }
 }
 /**
  * @return array
  */
 public function manipluateProvider()
 {
     $data = array();
     #0
     $data[] = array(Token::factory(array(T_BOOLEAN_AND, 'AND')), Token::factory(array(T_BOOLEAN_AND, 'and')), true);
     return $data;
 }
 /**
  * @return array
  */
 public function evaluateProvider()
 {
     $data = array();
     # 0
     $data[] = array(Token::factory(array(T_WHITESPACE, "\n")), true);
     # 1
     $data[] = array(Token::factory(array(T_WHITESPACE, "\r")), true);
     # 2
     $data[] = array(Token::factory(array(T_WHITESPACE, "\r\n")), true);
     # 3
     $data[] = array(Token::factory(array(T_WHITESPACE, "\n\n")), false);
     # 4
     $data[] = array(Token::factory(array(T_WHITESPACE, "\n\r")), false);
     # 5
     $data[] = array(Token::factory(array(T_WHITESPACE, " \n")), false);
     # 6
     $data[] = array(Token::factory("\n"), true);
     #7
     $data[] = array(Token::factory("\r\n"), true);
     #8
     $data[] = array(Token::factory("\r"), true);
     #9
     $data[] = array(Token::factory("\n\r"), false);
     return $data;
 }
 /**
  * @return array
  */
 public function evaluateProvider()
 {
     $data = array();
     #0
     $data[] = array(Token::factory(array(T_WHITESPACE, "\n")), true);
     return $data;
 }
 /**
  * @return \PHP\Manipulator\TokenContainer
  */
 public function getTestContainerWithHoles()
 {
     $tokens = array(0 => Token::factory(array(null, "<?php\n")), 1 => Token::factory(array(null, "dummy")), 2 => Token::factory(array(null, 'echo')), 3 => Token::factory(array(null, "dummy")), 4 => Token::factory(array(null, ' ')), 5 => Token::factory(array(null, '\\$var')), 6 => Token::factory(array(null, ';')));
     $container = new TokenContainer($tokens);
     unset($container[1]);
     unset($container[3]);
     return $container;
 }
 /**
  * @return array
  */
 public function evaluateProvider()
 {
     $data = array();
     #0
     $data[] = array(Token::factory(array(T_INLINE_HTML, "\n\t\r ")), true);
     #1
     $data[] = array(Token::factory(array(T_INLINE_HTML, "a\n")), false);
     return $data;
 }
 /**
  * @return array
  */
 public function manipluateProvider()
 {
     $data = array();
     #0
     $data[] = array(Token::factory(array(T_DOC_COMMENT, "/**\n* @return array\n     */\n")), Token::factory(array(T_DOC_COMMENT, "/**\n* @return array\n*/\n")), true);
     #1
     $data[] = array(Token::factory(array(T_COMMENT, "/*\n* @return array\n     */\n")), Token::factory(array(T_COMMENT, "/*\n* @return array\n*/\n")), true);
     return $data;
 }
 /**
  * @covers \Tests\Stub\TokenManipulatorStub
  */
 public function testCallingManipulateSetsCalledToTrue()
 {
     TokenManipulatorStub::$called = false;
     $stub = new TokenManipulatorStub();
     $token = Token::factory(array(T_WHITESPACE, "\n"));
     $this->assertFalse(TokenManipulatorStub::$called);
     $stub->manipulate($token);
     $this->assertTrue(TokenManipulatorStub::$called);
 }
 /**
  * @return array
  */
 public function manipluateProvider()
 {
     $data = array();
     #0
     $data[] = array(Token::factory(array(T_BOOLEAN_AND, "AND")), Token::factory(array(T_BOOLEAN_AND, "and")), true);
     #1
     $data[] = array(Token::factory(array(T_BOOLEAN_OR, "OR")), Token::factory(array(T_BOOLEAN_OR, "or")), true);
     return $data;
 }
Beispiel #10
0
 /**
  * @return array
  */
 public function tokenProvider()
 {
     $data = array();
     #0
     $data[] = array(Token::factory('('), '[SIMPLE]                    |    1 | NULL | (');
     #1
     $data[] = array(Token::factory(array(T_COMMENT, '// foo', 5)), 'T_COMMENT                   |    6 |    5 | //.foo');
     #2
     $data[] = array(Token::factory(array(T_COMMENT, "/*\n\t * föü\n\t */", 10)), 'T_COMMENT                   |   15 |   10 | /*\\n\\t.*.föü\\n\\t.*/');
     return $data;
 }
 /**
  * @covers \Tests\Stub\TokenConstraintStub
  */
 public function testOptionViastaticVariableWorks()
 {
     TokenConstraintStub::$return = true;
     $stub = new TokenConstraintStub();
     $token = Token::factory(array(T_WHITESPACE, "\n"));
     $this->assertTrue($stub->evaluate($token));
     TokenConstraintStub::$return = false;
     $stub = new TokenConstraintStub();
     $token = Token::factory(array(T_WHITESPACE, "\n"));
     $this->assertFalse($stub->evaluate($token));
 }
 /**
  * @return array
  */
 public function evaluateProvider()
 {
     $data = array();
     $tokens = array(T_AND_EQUAL, T_CONCAT_EQUAL, T_DIV_EQUAL, T_MINUS_EQUAL, T_MOD_EQUAL, T_MUL_EQUAL, T_OR_EQUAL, T_PLUS_EQUAL, T_SR_EQUAL, T_SL_EQUAL, T_XOR_EQUAL, T_LOGICAL_AND, T_LOGICAL_OR, T_LOGICAL_XOR, T_BOOLEAN_AND, T_BOOLEAN_OR, T_SL, T_SR, T_DEC, T_INC, T_IS_EQUAL, T_IS_GREATER_OR_EQUAL, T_IS_IDENTICAL, T_IS_NOT_EQUAL, T_IS_NOT_IDENTICAL, T_IS_SMALLER_OR_EQUAL, T_INSTANCEOF);
     foreach ($tokens as $type) {
         $data[] = array(Token::factory(array($type, '==')), null, true);
     }
     $data[] = array(Token::factory(array(null, '=')), null, true);
     $data[] = array(Token::factory(array(T_COMMENT, '=')), null, false);
     $data[] = array(Token::factory(array(null, '~')), null, false);
     return $data;
 }
 /**
  * @return array
  */
 public function evaluateProvider()
 {
     $data = array();
     #0
     $data[] = array(Token::factory(array(T_WHITESPACE, "\n")), false);
     #1
     $data[] = array(Token::factory(array(null, '@')), true);
     #2
     $data[] = array(Token::factory(array(T_WHITESPACE, '@')), false);
     #3
     $data[] = array(Token::factory(array(null, "\n")), false);
     return $data;
 }
 /**
  * @return array
  */
 public function manipluateProvider()
 {
     $data = array();
     #0
     $data[] = array(Token::factory(array(T_COMMENT, "/*Foo\n * Foo\n */")), Token::factory(array(T_COMMENT, "//Foo\n// Foo\n//\n")), true);
     #1
     $data[] = array(Token::factory(array(T_COMMENT, "/*\n * \n */")), Token::factory(array(T_COMMENT, "//\n// \n//\n")), true);
     #3
     $data[] = array(Token::factory(array(T_DOC_COMMENT, "/**Foo\n * Foo\n */")), Token::factory(array(T_COMMENT, "//Foo\n// Foo\n//\n")), true);
     #4 Test with \r\n
     $data[] = array(Token::factory(array(T_DOC_COMMENT, "/**Foo\r\n * Foo\r\n */")), Token::factory(array(T_COMMENT, "//Foo\r\n// Foo\r\n//\r\n")), true);
     #5 Test with \r
     $data[] = array(Token::factory(array(T_DOC_COMMENT, "/**Foo\r * Foo\r */")), Token::factory(array(T_COMMENT, "//Foo\r// Foo\r//\r")), true);
     return $data;
 }
 /**
  * @return array
  */
 public function manipluateProvider()
 {
     $data = array();
     #0
     $data[] = array(Token::factory(array(T_DOC_COMMENT, "/**\n     *\n     * @var boolean\n     *\n     */")), Token::factory(array(T_DOC_COMMENT, "/**\n     * @var boolean\n     */")));
     #1
     $data[] = array(Token::factory(array(T_DOC_COMMENT, "/**\n     *\n     *\n     * @var boolean\n     *\n     *\n     */")), Token::factory(array(T_DOC_COMMENT, "/**\n     * @var boolean\n     */")));
     #2 Other linebreaks (\r\n)
     $data[] = array(Token::factory(array(T_DOC_COMMENT, "/**\r\n     *\r\n     *\r\n     * @var boolean\r\n     *\r\n     *\r\n     */")), Token::factory(array(T_DOC_COMMENT, "/**\r\n     * @var boolean\r\n     */")));
     #3 Other linebreaks 2 (\r)
     $data[] = array(Token::factory(array(T_DOC_COMMENT, "/**\r     *\r     *\r     * @var boolean\r     *\r     *\r     */")), Token::factory(array(T_DOC_COMMENT, "/**\r     * @var boolean\r     */")));
     #4 Don't kill lines ending with *
     $data[] = array(Token::factory(array(T_DOC_COMMENT, "/**\n      * @param array \$actions\n      * @return \\PHP\\Manipulator *Provides Fluent Interface*\n      */")), Token::factory(array(T_DOC_COMMENT, "/**\n      * @param array \$actions\n      * @return \\PHP\\Manipulator *Provides Fluent Interface*\n      */")));
     #5 Empty lines between other lines don't get deleted
     $data[] = array(Token::factory(array(T_DOC_COMMENT, "/**\n     *\n      * @param array \$actions\n      *\n      * @return \\PHP\\Manipulator *Provides Fluent Interface*\n     *\n      */")), Token::factory(array(T_DOC_COMMENT, "/**\n      * @param array \$actions\n      *\n      * @return \\PHP\\Manipulator *Provides Fluent Interface*\n      */")));
     return $data;
 }
 /**
  * @return array
  */
 public function evaluateProvider()
 {
     $data = array();
     #0
     $data[] = array(Token::factory(array(T_COMMENT, "//")), false);
     #1
     $data[] = array(Token::factory(array(T_COMMENT, "/* */")), true);
     #2
     $data[] = array(Token::factory(array(T_COMMENT, "#")), false);
     #3
     $data[] = array(Token::factory(array(T_DOC_COMMENT, "/** */")), true);
     #4
     $data[] = array(Token::factory(array(T_ABSTRACT, "x\n")), false);
     #5
     $data[] = array(Token::factory(array(T_DOC_COMMENT, "/**\n* My class Foo\n*/")), true);
     #6
     $data[] = array(Token::factory(array(T_COMMENT, "/*\n* My class Foo\n*/")), true);
     #7
     $data[] = array(Token::factory('/*'), false);
     return $data;
 }
 /**
  * @return array
  */
 public function manipluateProvider()
 {
     $data = array();
     # 0
     $data[] = array(Token::factory(array(T_WHITESPACE, "\n\n")), Token::factory(array(T_WHITESPACE, "\n")), true);
     # 1
     $data[] = array(Token::factory(array(T_WHITESPACE, "\r\r")), Token::factory(array(T_WHITESPACE, "\r")), true);
     # 2
     $data[] = array(Token::factory(array(T_WHITESPACE, "\r\n\r\n")), Token::factory(array(T_WHITESPACE, "\r\n")), true);
     # 3
     $data[] = array(Token::factory(array(T_WHITESPACE, "\n")), Token::factory(array(T_WHITESPACE, "")), true);
     # 4
     $data[] = array(Token::factory(array(T_WHITESPACE, "\r\n")), Token::factory(array(T_WHITESPACE, "")), true);
     # 5
     $data[] = array(Token::factory(array(T_WHITESPACE, "\r")), Token::factory(array(T_WHITESPACE, "")), true);
     # 6
     $data[] = array(Token::factory(array(T_WHITESPACE, "\r\n\r")), Token::factory(array(T_WHITESPACE, "\r")), true);
     #7
     $data[] = array(Token::factory(array(T_WHITESPACE, "\n\r\n\r")), Token::factory(array(T_WHITESPACE, "\r\n\r")), true);
     #8
     $data[] = array(Token::factory("\n"), Token::factory(""), true);
     #9
     $data[] = array(Token::factory("\n\n"), Token::factory("\n"), true);
     #10
     $data[] = array(Token::factory("\r\r"), Token::factory("\r"), true);
     #11
     $data[] = array(Token::factory("\r\n\r\n"), Token::factory("\r\n"), true);
     #12
     $data[] = array(Token::factory(" "), Token::factory(" "), true);
     #13
     $data[] = array(Token::factory(" \n"), Token::factory(" \n"), true);
     #14
     $data[] = array(Token::factory(" \r"), Token::factory(" \r"), true);
     #15
     $data[] = array(Token::factory(" \r\n"), Token::factory(" \r\n"), true);
     #16
     $data[] = array(Token::factory(" \n\r"), Token::factory(" \n\r"), true);
     return $data;
 }
 /**
  * @param string $code
  * @return array
  */
 protected function _createTokensFromCode($code)
 {
     $array = array();
     $tokens = token_get_all($code);
     foreach ($tokens as $token) {
         /* @var $token array|string */
         $array[] = Token::factory($token);
     }
     return $array;
 }
 /**
  * @covers \PHP\Manipulator\TokenContainer::removeTokensFromTo
  */
 public function testRemoveTokensFromTo()
 {
     $t1 = Token::factory('Token1');
     $t2 = Token::factory('Token2');
     $t3 = Token::factory('Token3');
     $t4 = Token::factory('Token4');
     $t5 = Token::factory('Token5');
     $container = new TokenContainer(array($t1, $t2, $t3, $t4, $t5));
     $container->removeTokensFromTo($t2, $t4);
     $array = $container->toArray();
     $this->assertCount(2, $array);
     $this->assertContains($t1, $array);
     $this->assertContains($t5, $array);
 }
Beispiel #20
0
 /**
  * @return array
  */
 public function equalsProvider()
 {
     $data = array();
     $data[] = array(Token::factory('test'), Token::factory('test'), false, true);
     $data[] = array(Token::factory('test'), Token::factory('test'), true, true);
     $data[] = array(Token::factory(array(T_COMMENT, 'comment', 5)), Token::factory(array(T_WHITESPACE, 'comment', 5)), false, false);
     $data[] = array(Token::factory(array(T_COMMENT, 'comment', 5)), Token::factory(array(T_WHITESPACE, 'comment', 5)), true, false);
     $data[] = array(Token::factory(array(T_COMMENT, 'comment', 5)), Token::factory(array(T_COMMENT, 'comment', 5)), true, true);
     $data[] = array(Token::factory(array(T_COMMENT, 'comment', 5)), Token::factory(array(T_COMMENT, 'comment', 4)), false, true);
     $data[] = array(Token::factory(array(T_COMMENT, 'comment', 5)), Token::factory(array(T_COMMENT, 'comment', 4)), true, false);
     return $data;
 }
Beispiel #21
0
 /**
  * @return array
  */
 public function isQuestionMarkProvider()
 {
     $data = array();
     #0
     $data[] = array(Token::factory(array(null, '?')), true);
     #1
     $data[] = array(Token::factory(array(T_WHITESPACE, '?')), false);
     #2
     $data[] = array(Token::factory(array(null, ':')), false);
     #3
     $data[] = array(Token::factory(array(T_WHITESPACE, ':')), false);
     return $data;
 }
Beispiel #22
0
 /**
  * @covers \PHP\Manipulator\TokenContainer\Iterator::getPrevious
  */
 public function testGetPreviousReturnsNullIfThereIsNoNextToken()
 {
     $t1 = Token::factory('Token1');
     $container = new TokenContainer(array($t1));
     $iterator = $container->getIterator();
     $previous = $iterator->getPrevious();
     $this->assertNull($previous);
     $this->assertSame($t1, $iterator->current());
 }