Code Duplication    Length = 22-54 lines in 2 locations

tests/model/DBHTMLTextTest.php 2 locations

@@ 67-88 (lines=22) @@
64
	/**
65
	 * @return array
66
	 */
67
	public function providerLimitCharactersToClosestWord()
68
	{
69
		// HTML is converted safely to plain text
70
		return [
71
			// Standard words limited, ellipsis added if truncated
72
			['<p>Lorem ipsum dolor sit amet</p>', 24, 'Lorem ipsum dolor sit...'],
73
74
			// Complete words less than the character limit don't get truncated, ellipsis not added
75
			['<p>Lorem ipsum</p>', 24, 'Lorem ipsum'],
76
			['<p>Lorem</p>', 24, 'Lorem'],
77
			['', 24, ''],    // No words produces nothing!
78
79
			// Special characters are encoded safely
80
			['Nice &amp; Easy', 24, 'Nice &amp; Easy'],
81
82
			// HTML is safely converted to plain text
83
			['<p>Lorem ipsum dolor sit amet</p>', 24, 'Lorem ipsum dolor sit...'],
84
			['<p><span>Lorem ipsum dolor sit amet</span></p>', 24, 'Lorem ipsum dolor sit...'],
85
			['<p>Lorem ipsum</p>', 24, 'Lorem ipsum'],
86
			['Lorem &amp; ipsum dolor sit amet', 24, 'Lorem &amp; ipsum dolor sit...']
87
		];
88
	}
89
90
	/**
91
	 * Test {@link DBHTMLText->LimitCharactersToClosestWord()}
@@ 104-157 (lines=54) @@
101
		$this->assertEquals($expectedValue, $result);
102
	}
103
104
	public function providerSummary()
105
	{
106
		return [
107
			[
108
				'<p>Should strip <b>tags, but leave</b> text</p>',
109
				50,
110
				'Should strip tags, but leave text',
111
			],
112
			[
113
				// Line breaks are preserved
114
				'<p>Unclosed tags <br>should not phase it</p>',
115
				50,
116
				"Unclosed tags <br />\nshould not phase it",
117
			],
118
			[
119
				// Paragraphs converted to linebreak
120
				'<p>Second paragraph</p><p>should not cause errors or appear in output</p>',
121
				50,
122
				"Second paragraph<br />\n<br />\nshould not cause errors or appear in output",
123
			],
124
			[
125
				'<img src="hello" /><p>Second paragraph</p><p>should not cause errors or appear in output</p>',
126
				50,
127
				"Second paragraph<br />\n<br />\nshould not cause errors or appear in output",
128
			],
129
			[
130
				'  <img src="hello" /><p>Second paragraph</p><p>should not cause errors or appear in output</p>',
131
				50,
132
				"Second paragraph<br />\n<br />\nshould not cause errors or appear in output",
133
			],
134
			[
135
				'<p><img src="remove me">example <img src="include me">text words hello<img src="hello"></p>',
136
				50,
137
				'example text words hello',
138
			],
139
140
			// Shorter limits
141
			[
142
				'<p>A long paragraph should be cut off if limit is set</p>',
143
				5,
144
				'A long paragraph should be...',
145
			],
146
			[
147
				'<p>No matter <i>how many <b>tags</b></i> are in it</p>',
148
				5,
149
				'No matter how many tags...',
150
			],
151
			[
152
				'<p>A sentence is. nicer than hard limits</p>',
153
				5,
154
				'A sentence is.',
155
			],
156
		];
157
	}
158
159
	/**
160
	 * @dataProvider providerSummary