| @@ 16-93 (lines=78) @@ | ||
| 13 | * @package PHPCompatibility |
|
| 14 | * @author Wim Godden <[email protected]> |
|
| 15 | */ |
|
| 16 | class RemovedFunctionParameterSniffTest extends BaseSniffTest |
|
| 17 | { |
|
| 18 | ||
| 19 | const TEST_FILE = 'sniff-examples/removed_function_parameter.php'; |
|
| 20 | ||
| 21 | /** |
|
| 22 | * testRemovedParameter |
|
| 23 | * |
|
| 24 | * @dataProvider dataRemovedParameter |
|
| 25 | * |
|
| 26 | * @param string $functionName Function name. |
|
| 27 | * @param string $parameterName Parameter name. |
|
| 28 | * @param string $removedIn The PHP version in which the parameter was removed. |
|
| 29 | * @param array $lines The line numbers in the test file which apply to this class. |
|
| 30 | * @param string $okVersion A PHP version in which the parameter was ok to be used. |
|
| 31 | * |
|
| 32 | * @return void |
|
| 33 | */ |
|
| 34 | public function testRemovedParameter($functionName, $parameterName, $removedIn, $lines, $okVersion) |
|
| 35 | { |
|
| 36 | $file = $this->sniffFile(self::TEST_FILE, $okVersion); |
|
| 37 | foreach ($lines as $line) { |
|
| 38 | $this->assertNoViolation($file, $line); |
|
| 39 | } |
|
| 40 | ||
| 41 | $file = $this->sniffFile(self::TEST_FILE, $removedIn); |
|
| 42 | foreach ($lines as $line) { |
|
| 43 | $this->assertError($file, $line, "The function {$functionName} does not have a parameter {$parameterName} in PHP version {$removedIn} or later"); |
|
| 44 | } |
|
| 45 | } |
|
| 46 | ||
| 47 | /** |
|
| 48 | * Data provider. |
|
| 49 | * |
|
| 50 | * @see testRemovedParameter() |
|
| 51 | * |
|
| 52 | * @return array |
|
| 53 | */ |
|
| 54 | public function dataRemovedParameter() |
|
| 55 | { |
|
| 56 | return array( |
|
| 57 | array('mktime', 'is_dst', '7.0', array(8), '5.6'), |
|
| 58 | array('gmmktime', 'is_dst', '7.0', array(9), '5.6'), |
|
| 59 | ); |
|
| 60 | } |
|
| 61 | ||
| 62 | ||
| 63 | /** |
|
| 64 | * testValidParameter |
|
| 65 | * |
|
| 66 | * @dataProvider dataValidParameter |
|
| 67 | * |
|
| 68 | * @param int $line The line number. |
|
| 69 | * |
|
| 70 | * @return void |
|
| 71 | */ |
|
| 72 | public function testValidParameter($line) |
|
| 73 | { |
|
| 74 | $file = $this->sniffFile(self::TEST_FILE, '7.0'); |
|
| 75 | $this->assertNoViolation($file, $line); |
|
| 76 | } |
|
| 77 | ||
| 78 | /** |
|
| 79 | * Data provider. |
|
| 80 | * |
|
| 81 | * @see testValidParameter() |
|
| 82 | * |
|
| 83 | * @return array |
|
| 84 | */ |
|
| 85 | public function dataValidParameter() |
|
| 86 | { |
|
| 87 | return array( |
|
| 88 | array(4), |
|
| 89 | array(5), |
|
| 90 | ); |
|
| 91 | } |
|
| 92 | ||
| 93 | } |
|
| 94 | ||
| @@ 16-93 (lines=78) @@ | ||
| 13 | * @package PHPCompatibility |
|
| 14 | * @author Wim Godden <[email protected]> |
|
| 15 | */ |
|
| 16 | class RequiredOptionalFunctionParameterSniffTest extends BaseSniffTest |
|
| 17 | { |
|
| 18 | ||
| 19 | const TEST_FILE = 'sniff-examples/required_optional_function_parameters.php'; |
|
| 20 | ||
| 21 | /** |
|
| 22 | * testRequiredOptionalParameter |
|
| 23 | * |
|
| 24 | * @dataProvider dataRequiredOptionalParameter |
|
| 25 | * |
|
| 26 | * @param string $functionName Function name. |
|
| 27 | * @param string $parameterName Parameter name. |
|
| 28 | * @param string $requiredUpTo The last PHP version in which the parameter was still required. |
|
| 29 | * @param array $lines The line numbers in the test file which apply to this class. |
|
| 30 | * @param string $okVersion A PHP version in which to test for no violation. |
|
| 31 | * |
|
| 32 | * @return void |
|
| 33 | */ |
|
| 34 | public function testRequiredOptionalParameter($functionName, $parameterName, $requiredUpTo, $lines, $okVersion) |
|
| 35 | { |
|
| 36 | $file = $this->sniffFile(self::TEST_FILE, $requiredUpTo); |
|
| 37 | foreach ($lines as $line) { |
|
| 38 | $this->assertError($file, $line, "The \"{$parameterName}\" parameter for function {$functionName} is missing, but was required for PHP version {$requiredUpTo} and lower"); |
|
| 39 | } |
|
| 40 | ||
| 41 | $file = $this->sniffFile(self::TEST_FILE, $okVersion); |
|
| 42 | foreach ($lines as $line) { |
|
| 43 | $this->assertNoViolation($file, $line); |
|
| 44 | } |
|
| 45 | } |
|
| 46 | ||
| 47 | /** |
|
| 48 | * Data provider. |
|
| 49 | * |
|
| 50 | * @see testRequiredOptionalParameter() |
|
| 51 | * |
|
| 52 | * @return array |
|
| 53 | */ |
|
| 54 | public function dataRequiredOptionalParameter() |
|
| 55 | { |
|
| 56 | return array( |
|
| 57 | array('preg_match_all', 'matches', '5.3', array(8), '5.4'), |
|
| 58 | array('stream_socket_enable_crypto', 'crypto_type', '5.5', array(9), '5.6'), |
|
| 59 | ); |
|
| 60 | } |
|
| 61 | ||
| 62 | ||
| 63 | /** |
|
| 64 | * testValidParameter |
|
| 65 | * |
|
| 66 | * @dataProvider dataValidParameter |
|
| 67 | * |
|
| 68 | * @param int $line The line number. |
|
| 69 | * |
|
| 70 | * @return void |
|
| 71 | */ |
|
| 72 | public function testValidParameter($line) |
|
| 73 | { |
|
| 74 | $file = $this->sniffFile(self::TEST_FILE, '7.0'); |
|
| 75 | $this->assertNoViolation($file, $line); |
|
| 76 | } |
|
| 77 | ||
| 78 | /** |
|
| 79 | * Data provider. |
|
| 80 | * |
|
| 81 | * @see testValidParameter() |
|
| 82 | * |
|
| 83 | * @return array |
|
| 84 | */ |
|
| 85 | public function dataValidParameter() |
|
| 86 | { |
|
| 87 | return array( |
|
| 88 | array(4), |
|
| 89 | array(5), |
|
| 90 | ); |
|
| 91 | } |
|
| 92 | ||
| 93 | } |
|
| 94 | ||