-
Notifications
You must be signed in to change notification settings - Fork 4.8k
Expand file tree
/
Copy pathrender-block-paragraph-test.php
More file actions
89 lines (86 loc) · 3.75 KB
/
render-block-paragraph-test.php
File metadata and controls
89 lines (86 loc) · 3.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<?php
/**
* Paragraph block rendering tests.
*
* @package WordPress
* @subpackage Blocks
*/
/**
* Tests for the Paragraph block.
*
* @group blocks
*/
class Render_Block_Paragraph_Test extends WP_UnitTestCase {
/**
* @dataProvider data_css_class_examples
*
* @param string $input The input HTML.
* @param string $expected_result The expected result HTML.
*/
public function test_block_core_paragraph_render_appends_css_class_to_a_vanilla_element( $input, $expected_result ) {
$parsed_blocks = parse_blocks( '<!-- wp:paragraph -->' . $input . '<!-- /wp:paragraph -->' );
$block = new WP_Block( $parsed_blocks[0] );
$actual = $block->render();
$this->assertEquals( $expected_result, $actual );
}
public function data_css_class_examples() {
return array(
'should add a class name to a vanilla p element' => array(
'<p>Hello World</p>',
'<p class="wp-block-paragraph">Hello World</p>',
),
'should not add a class name to a div element' => array(
'<div>Hello World</div>',
'<div>Hello World</div>',
),
'should not add a class name to a span element' => array(
'<span>Hello World</span>',
'<span>Hello World</span>',
),
'should not add a class name to a heading element' => array(
'<h2>Hello World</h2>',
'<h2>Hello World</h2>',
),
'should add a class name even when the class attribute is already defined' => array(
'<p class="is-align-right">Hello World</p>',
'<p class="is-align-right wp-block-paragraph">Hello World</p>',
),
'should handle single quotes' => array(
"<p class='is-align-right'>Hello World</p>",
'<p class="is-align-right wp-block-paragraph">Hello World</p>',
),
'should handle single quotes with double quotes inside' => array(
"<p class='\" is-align-right'>Hello World</p>",
'<p class="" is-align-right wp-block-paragraph">Hello World</p>',
),
'should not add a class name even when it is already defined' => array(
'<p class="is-align-right wp-block-paragraph">Hello World</p>',
'<p class="is-align-right wp-block-paragraph">Hello World</p>',
),
'should add a class name even when there are other HTML attributes present' => array(
'<p style="display: block">Hello World</p>',
'<p class="wp-block-paragraph" style="display: block">Hello World</p>',
),
'should add a class name even when the class attribute is already defined and has many entries' => array(
'<p class="is-align-right custom classes">Hello World</p>',
'<p class="is-align-right custom classes wp-block-paragraph">Hello World</p>',
),
'should not add a class name to a nested p' => array(
'<p class="is-align-right custom classes"><p>Hello World</p></p>',
'<p class="is-align-right custom classes wp-block-paragraph"><p>Hello World</p></p>',
),
'should not add a class name to a nested p when the parent has another attribute' => array(
'<p style="display: block" class="is-align-right"><p>Hello World</p></p>',
'<p style="display: block" class="is-align-right wp-block-paragraph"><p>Hello World</p></p>',
),
'should add a class name even when the class attribute is surrounded by other attributes' => array(
'<p style="display: block" class="is-align-right" data-class="corner case!"><p>Hello World</p></p>',
'<p style="display: block" class="is-align-right wp-block-paragraph" data-class="corner case!"><p>Hello World</p></p>',
),
'should add a class name without getting confused when there is a tricky data-class attribute present' => array(
'<p data-class="corner case!" style="display: block" class="is-align-right"><p>Hello World</p></p>',
'<p data-class="corner case!" style="display: block" class="is-align-right wp-block-paragraph"><p>Hello World</p></p>',
),
);
}
}