/**
  * Evaluate if the token is
  *
  * @param \PHP\Manipulator\Token $token
  * @param mixed $param
  * @return boolean
  */
 public function evaluate(Token $token, $params = null)
 {
     if (null === $token->getType() && '@' === $token->getValue()) {
         return true;
     }
     return false;
 }
Esempio n. 2
0
 /**
  * @param \PHP\Manipulator\Token $other
  * @param  string $description Additional information about the test
  * @param  bool $returnResult Whether to return a result or throw an exception
  * @return boolean
  */
 public function evaluate($other, $description = '', $returnResult = FALSE)
 {
     if (!$other instanceof Token) {
         throw \PHPUnit_Util_InvalidArgumentHelper::factory(1, 'PHP\\Manipulator\\Token');
     }
     $expectedToken = $this->_expectedToken;
     $equal = $this->_getEqualsConstraint($expectedToken->getValue());
     if (!$equal->evaluate($other->getValue(), $description, true)) {
         $this->_difference = 'values';
         if ($returnResult) {
             return FALSE;
         }
         $this->fail($other, $description);
     }
     $equal = $this->_getEqualsConstraint($expectedToken->getType());
     if (!$equal->evaluate($other->getType(), $description, true)) {
         $this->_difference = 'types';
         if ($returnResult) {
             return FALSE;
         }
         $this->fail($other, $description);
     }
     if (true === $this->_strict) {
         $equal = $this->_getEqualsConstraint($expectedToken->getLinenumber());
         if (!$equal->evaluate($other->getLinenumber(), $description, true)) {
             $this->_difference = 'linenumber';
             if ($returnResult) {
                 return FALSE;
             }
             $this->fail($other, $description);
         }
     }
     return true;
 }
 /**
  * Evaluate if the token is a multiline comment
  *
  * @param \PHP\Manipulator\Token $token
  * @param mixed $param
  * @return boolean
  */
 public function evaluate(Token $token, $params = null)
 {
     $pattern = '~^(\\n|\\r\\n|\\r)~';
     if (preg_match($pattern, $token->getValue())) {
         return true;
     }
     return false;
 }
Esempio n. 4
0
 /**
  * Evaluate if the token is a multiline comment
  *
  * @param \PHP\Manipulator\Token $token
  * @param mixed $param
  * @return boolean
  */
 public function evaluate(Token $token, $param = null)
 {
     $value = $token->getValue();
     if ($value === "\n" || $value === "\r\n" || $value === "\r") {
         return true;
     }
     return false;
 }
Esempio n. 5
0
 /**
  * @param \PHP\Manipulator\Token $token
  * @param mixed $default
  * @return boolean|string
  */
 protected function _getNewlineFromToken(Token $token, $default = false)
 {
     $matches = array();
     if (preg_match("~(\r\n|\r|\n)~", $token->getValue(), $matches)) {
         return $matches[0];
     }
     return $default;
 }
Esempio n. 6
0
 /**
  * @param \PHP\Manipulator\Token $token
  * @return boolean
  */
 protected function _isOperatorWithoutToken(Token $token)
 {
     foreach ($this->_operatorsWithoutTokens as $operator) {
         if (null === $token->getType() && $operator === $token->getValue()) {
             return true;
         }
     }
     return false;
 }
 /**
  * Manipulates a Token
  *
  * @param \PHP\Manipulator\Token $token
  * @param mixed $params
  */
 public function manipulate(Token $token, $params = null)
 {
     $value = $token->getValue();
     if (substr($value, 0, 2) === "\r\n") {
         $token->setValue(substr($value, 2));
     } elseif (substr($value, 0, 1) === "\n") {
         $token->setValue(substr($value, 1));
     } elseif (substr($value, 0, 1) === "\r") {
         $token->setValue(substr($value, 1));
     }
 }
 /**
  * Evaluate if the token is a Singleline comment
  *
  * @param \PHP\Manipulator\Token $token
  * @param mixed $param
  * @return boolean
  */
 public function evaluate(Token $token, $param = null)
 {
     if ($token->getType() === T_COMMENT) {
         $value = $token->getValue();
         if (strlen($value) >= 1 && substr($value, 0, 1) === '#') {
             return true;
         } elseif (strlen($value) >= 2 && substr($value, 0, 2) === '//') {
             return true;
         }
     }
     return false;
 }
 /**
  * @return array
  */
 public function evaluateProvider()
 {
     $data = array();
     #0
     $data[] = array(Token::factory(array(T_WHITESPACE, "\n")), 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 manipluateProvider()
 {
     $data = array();
     #0
     $data[] = array(Token::factory(array(T_BOOLEAN_AND, 'AND')), Token::factory(array(T_BOOLEAN_AND, 'and')), 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 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;
 }
 /**
  * @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;
 }
 /**
  * @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 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;
 }
Esempio n. 17
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));
 }
Esempio n. 19
0
 /**
  * @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;
 }
 /**
  * Manipulate Token
  *
  * @param \PHP\Manipulator\Token $token
  * @param mixed $params
  */
 public function manipulate(Token $token, $params = null)
 {
     $regexNewline = '(\\n|\\r\\n|\\r)';
     $indention = $params;
     $value = $token->getValue();
     $lines = preg_split('~' . $regexNewline . '~', $value);
     $helper = new NewlineDetector();
     $newline = $helper->getNewlineFromToken($token);
     $first = true;
     $value = '';
     foreach ($lines as $key => $line) {
         if ($first) {
             $first = false;
         } else {
             $temp = trim($line);
             if (!empty($temp)) {
                 $lines[$key] = $indention . ' ' . $line;
             }
         }
     }
     $token->setValue(implode($newline, $lines));
 }
 /**
  * @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;
 }
Esempio n. 26
0
 /**
  *@covers \PHP\Manipulator\Token::getTokenName
  */
 public function testGetTokenName()
 {
     $token = new Token('  ', T_WHITESPACE);
     $this->assertEquals('T_WHITESPACE', $token->getTokenName());
     $token = new Token('/* Foo */', T_COMMENT);
     $this->assertEquals('T_COMMENT', $token->getTokenName());
 }
Esempio n. 27
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;
 }
Esempio n. 28
0
 /**
  * Dump a token
  *
  * Replaces spaces, linebreaks and tabs with visual representations:
  * \t \r\n \n \r .
  *
  * @param \PHP\Manipulator\Token $token
  * @return string
  */
 public static function dumpToken(Token $token, $add = true)
 {
     $type = $token->getType();
     $value = $token->getValue();
     $typeName = '[SIMPLE]';
     if (null !== $type) {
         $typeName = $token->getTokenName();
     }
     $length = (string) mb_strlen($value, 'utf-8');
     $search = array("\n\r", "\n", "\r", "\t", ' ');
     $replace = array('\\n\\\\r', '\\n', '\\r', '\\t', '.');
     $value = str_replace($search, $replace, $value);
     $line = $token->getLinenumber();
     if (null === $line) {
         $line = 'NULL';
     }
     return str_pad($typeName, 28, ' ', STR_PAD_RIGHT) . '| ' . str_pad($length, 4, ' ', STR_PAD_LEFT) . ' | ' . str_pad($line, 4, ' ', STR_PAD_LEFT) . ' | ' . $value;
 }
 /**
  * @param \PHP\Manipulator\Token $token
  * @param array $whitespaces
  * @return mixed
  */
 public function getWhitespaceForToken(Token $token, array $whitespaces)
 {
     if (null === $token->getType()) {
         $tokenval = $token->getValue();
     } else {
         $tokenval = $token->getType();
     }
     if (array_key_exists($tokenval, $whitespaces)) {
         return $whitespaces[$tokenval];
     } else {
         $message = 'No option found for: ' . $token->getTokenName() . ' (' . $tokenval . ')';
         throw new \Exception($message);
     }
 }
 /**
  * Lowercase for tokens value
  *
  * @param \PHP\Manipulator\Token $token
  * @param mixed $params
  */
 public function manipulate(Token $token, $params = null)
 {
     $token->setValue(strtolower($token->getValue()));
 }