/** * @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; }
/** * @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); }
/** * @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; }
/** * @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; }
/** * @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()); }