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