|
1
|
|
|
<?php |
|
2
|
|
|
/** |
|
3
|
|
|
* Class WP_Test_Jetpack_CSSTidy. |
|
4
|
|
|
* |
|
5
|
|
|
* @package automattic/jetpack |
|
6
|
|
|
*/ |
|
7
|
|
|
|
|
8
|
|
|
require_jetpack_file( 'modules/custom-css/csstidy/class.csstidy.php' ); |
|
9
|
|
|
|
|
10
|
|
|
/** |
|
11
|
|
|
* Class WP_Test_Jetpack_CSSTidy |
|
12
|
|
|
*/ |
|
13
|
|
|
class WP_Test_Jetpack_CSSTidy extends WP_UnitTestCase { |
|
14
|
|
|
|
|
15
|
|
|
/** |
|
16
|
|
|
* The tested instance. |
|
17
|
|
|
* |
|
18
|
|
|
* @var csstidy |
|
19
|
|
|
*/ |
|
20
|
|
|
public $instance; |
|
21
|
|
|
|
|
22
|
|
|
/** |
|
23
|
|
|
* Sets up each test. |
|
24
|
|
|
* |
|
25
|
|
|
* @inheritDoc |
|
26
|
|
|
*/ |
|
27
|
|
|
public function setUp() { |
|
28
|
|
|
parent::setUp(); |
|
29
|
|
|
$this->instance = new csstidy(); |
|
30
|
|
|
$this->instance->set_cfg( 'optimise_shorthands', 0 ); |
|
31
|
|
|
} |
|
32
|
|
|
|
|
33
|
|
|
/** Provides values for CSS preserve leading zeros patterns */ |
|
34
|
|
|
public function custom_preserve_leading_zeros_provider() { |
|
35
|
|
|
// phpcs:ignore Squiz.PHP.CommentedOutCode.Found -- false positive |
|
36
|
|
|
// 'test case description' => [ 'input', 'expected output', 'preserve_leading_zeros' ]. |
|
37
|
|
|
return array( |
|
38
|
|
|
'test_removes_leading_zeros_by_default' => array( 'marquee {line-height:0.7;opacity:0.05;background-color:rgba(255, 255, 255, 0.25);}', "marquee {\nline-height:.7;\nopacity:.05;\nbackground-color:rgba(255,255,255,0.25)\n}", false ), |
|
39
|
|
|
'test_decimals_greater_than_one_unchanged_default' => array( 'blink {line-height:1.7;top:-100.55em;}', "blink {\nline-height:1.7;\ntop:-100.55em\n}", false ), |
|
40
|
|
|
'test_removes_leading_zeros_by_default_units' => array( 'dfn {margin-left:-0.7px;top:0.55rem;line-height:0.3333;text-indent:-9999%}', "dfn {\nmargin-left:-.7px;\ntop:.55rem;\nline-height:.3333;\ntext-indent:-9999%\n}", false ), |
|
41
|
|
|
'test_preserves_leading_zeros' => array( 'aside {line-height:0.7;background-color:rgba(255, 255, 255, 0.25);opacity:0.05;}', "aside {\nline-height:0.7;\nbackground-color:rgba(255,255,255,0.25);\nopacity:0.05\n}", true ), |
|
42
|
|
|
'test_preserves_leading_zeros_units' => array( 'code {line-height:.70;margin-left:-00.70px;top:0.55rem;padding:0.3333%;}', "code {\nline-height:0.7;\nmargin-left:-0.7px;\ntop:0.55rem;\npadding:0.3333%\n}", true ), |
|
43
|
|
|
'test_decimals_greater_than_one_unchanged_preserve_zeros' => array( 'blink {line-height:1.70;top:100.55em;margin-left:900px;}', "blink {\nline-height:1.7;\ntop:100.55em;\nmargin-left:900px\n}", false ), |
|
44
|
|
|
); |
|
45
|
|
|
} |
|
46
|
|
|
|
|
47
|
|
|
/** |
|
48
|
|
|
* Test that leading zeros for decimals values are preserved/discarded as expected. |
|
49
|
|
|
* |
|
50
|
|
|
* @dataProvider custom_preserve_leading_zeros_provider |
|
51
|
|
|
* |
|
52
|
|
|
* @param string $input potential CSS values. |
|
53
|
|
|
* @param string $expected_output what we expect csstidy to output. |
|
54
|
|
|
* @param bool $preserve_leading_zeros the value of `preserve_leading_zeros` in csstidy's config. |
|
55
|
|
|
*/ |
|
56
|
|
|
public function test_preserve_leading_zeros( $input, $expected_output, $preserve_leading_zeros ) { |
|
57
|
|
|
$this->instance->set_cfg( 'preserve_leading_zeros', $preserve_leading_zeros ); |
|
58
|
|
|
$this->instance->parse( $input ); |
|
59
|
|
|
$this->assertEquals( |
|
60
|
|
|
$expected_output, |
|
61
|
|
|
$this->instance->print->plain() |
|
62
|
|
|
); |
|
63
|
|
|
} |
|
64
|
|
|
} |
|
65
|
|
|
|