%PDF- %PDF-
| Direktori : /www/varak.net/wiki.varak.net/vendor/cssjanus/cssjanus/test/suites/ |
| Current File : //www/varak.net/wiki.varak.net/vendor/cssjanus/cssjanus/test/suites/CSSJanusTest.php |
<?php
class CSSJanusTest extends PHPUnit_Framework_TestCase {
public static function provideData() {
$data = self::getSpec();
$cases = array();
foreach ($data as $name => $test) {
if (isset($test['args']) || isset($test['options'])) {
// v1.2.0 test format
$args = isset($test['args']) ? $test['args'] :
(isset($test['options']) ? array( $test['options'] ) : array());
} else {
// v1.1.x test format
$args = array(
!empty($test['settings']['swapLtrRtlInUrl']),
!empty($test['settings']['swapLeftRightInUrl'])
);
}
foreach ($test['cases'] as $i => $case) {
$input = $case[0];
$noop = !isset($case[1]);
$output = $noop ? $input : $case[1];
$cases[] = array(
$input,
$args,
$output,
$name,
);
if (!$noop) {
// Round trip
$cases[] = array(
$output,
$args,
$input,
$name,
);
}
}
}
return $cases;
}
/**
* @dataProvider provideData
*/
public function testTransform($input, $args, $output, $name) {
array_unshift($args, $input);
$this->assertEquals(
$output,
call_user_func_array('CSSJanus::transform', $args),
$name
);
}
protected static function getSpec() {
static $json;
if ($json == null) {
$version = '1.2.0';
$dir = dirname(__DIR__);
$file = "$dir/data-v$version.json";
if (!is_readable($file)) {
array_map('unlink', glob("$dir/data-v*.json"));
$json = file_get_contents("https://github.com/cssjanus/cssjanus/raw/v$version/test/data.json");
if ($json === false) {
throw new Exception('Failed to fetch data');
}
file_put_contents($file, $json);
} else {
$json = file_get_contents($file);
}
}
return json_decode($json, /* $assoc = */ true);
}
}