|
1 | 1 | <!doctype html> |
2 | 2 | <meta charset=utf-8> |
3 | 3 | <meta name="timeout" content="long"> |
4 | | -<meta name="variant" content="?pre"> |
5 | | -<meta name="variant" content="?pre-wrap"> |
6 | | -<meta name="variant" content="?pre-line"> |
7 | | -<meta name="variant" content="?nowrap"> |
| 4 | +<meta name="variant" content="?white-space=pre&command=insertParagraph"> |
| 5 | +<meta name="variant" content="?white-space=pre-wrap&command=insertParagraph"> |
| 6 | +<meta name="variant" content="?white-space=pre-line&command=insertParagraph"> |
| 7 | +<meta name="variant" content="?white-space=nowrap&command=insertParagraph"> |
| 8 | +<meta name="variant" content="?white-space=pre&command=insertText"> |
| 9 | +<meta name="variant" content="?white-space=pre-wrap&command=insertText"> |
| 10 | +<meta name="variant" content="?white-space=pre-line&command=insertText"> |
| 11 | +<meta name="variant" content="?white-space=nowrap&command=insertText"> |
8 | 12 | <script src="/resources/testharness.js"></script> |
9 | 13 | <script src="/resources/testharnessreport.js"></script> |
10 | 14 | <script src="../include/editor-test-utils.js"></script> |
|
15 | 19 | /** |
16 | 20 | * The expected behavior is based on Chrome 91. |
17 | 21 | */ |
18 | | -const style = location.search.substr(1); |
| 22 | +const params = new URLSearchParams(location.search); |
| 23 | +const style = params.get("white-space"); |
19 | 24 | const isNewLineSignificant = style == "pre" || style == "pre-wrap" || style == "pre-line"; |
| 25 | +const command = params.get("command"); |
20 | 26 | const editingHost = document.querySelector("div[contenteditable]"); |
| 27 | +function doIt() { |
| 28 | + if (command == "insertParagraph") { |
| 29 | + document.execCommand(command); |
| 30 | + } else { |
| 31 | + // Inserting a linefeed by insertText command should be equivalent of insertParagraph |
| 32 | + document.execCommand(command, false, "\n"); |
| 33 | + } |
| 34 | +} |
21 | 35 | for (const defaultParagraphSeparator of ["div", "p"]) { |
22 | 36 | document.execCommand("defaultparagraphseparator", false, defaultParagraphSeparator); |
23 | 37 | for (const display of ["block", "inline", "inline-block"]) { |
|
30 | 44 | const utils = new EditorTestUtils(editingHost); |
31 | 45 | utils.setupEditingHost(`abc[]`); |
32 | 46 | editingHost.getBoundingClientRect(); |
33 | | - document.execCommand("insertparagraph"); |
| 47 | + doIt(); |
34 | 48 | if (display == "block") { |
35 | 49 | assert_in_array( |
36 | 50 | editingHost.innerHTML, |
|
64 | 78 | const utils = new EditorTestUtils(editingHost); |
65 | 79 | utils.setupEditingHost(`[]abc`); |
66 | 80 | editingHost.getBoundingClientRect(); |
67 | | - document.execCommand("insertparagraph"); |
| 81 | + doIt(); |
68 | 82 | if (display == "block") { |
69 | 83 | assert_in_array( |
70 | 84 | editingHost.innerHTML, |
|
101 | 115 | const utils = new EditorTestUtils(editingHost); |
102 | 116 | utils.setupEditingHost(`a[]bc`); |
103 | 117 | editingHost.getBoundingClientRect(); |
104 | | - document.execCommand("insertparagraph"); |
| 118 | + doIt(); |
105 | 119 | if (display == "block") { |
106 | 120 | assert_in_array( |
107 | 121 | editingHost.innerHTML, |
|
140 | 154 | utils.setupEditingHost(`abc[]`); |
141 | 155 | editingHost.getBoundingClientRect(); |
142 | 156 | document.execCommand("italic"); |
143 | | - document.execCommand("insertparagraph"); |
| 157 | + doIt(); |
144 | 158 | document.execCommand("inserttext", false, "def"); |
145 | 159 | if (display == "block") { |
146 | 160 | assert_in_array( |
|
184 | 198 | const utils = new EditorTestUtils(editingHost); |
185 | 199 | utils.setupEditingHost(`<b>abc[]</b>`); |
186 | 200 | editingHost.getBoundingClientRect(); |
187 | | - document.execCommand("insertparagraph"); |
| 201 | + doIt(); |
188 | 202 | document.execCommand("inserttext", false, "def"); |
189 | 203 | if (display == "block") { |
190 | 204 | assert_in_array( |
|
232 | 246 | const utils = new EditorTestUtils(editingHost); |
233 | 247 | utils.setupEditingHost(`<${paragraph} style="white-space:${style}">abc[]</${paragraph}>`); |
234 | 248 | editingHost.getBoundingClientRect(); |
235 | | - document.execCommand("insertparagraph"); |
| 249 | + doIt(); |
236 | 250 | assert_equals( |
237 | 251 | editingHost.innerHTML, |
238 | 252 | `<${paragraph} style="white-space:${style}">abc</${paragraph}><${paragraph} style="white-space:${style}"><br></${paragraph}>`, |
|
246 | 260 | const utils = new EditorTestUtils(editingHost); |
247 | 261 | utils.setupEditingHost(`<${paragraph} style="white-space:${style}">[]abc</${paragraph}>`); |
248 | 262 | editingHost.getBoundingClientRect(); |
249 | | - document.execCommand("insertparagraph"); |
| 263 | + doIt(); |
250 | 264 | assert_in_array( |
251 | 265 | editingHost.innerHTML, |
252 | 266 | [ |
|
263 | 277 | const utils = new EditorTestUtils(editingHost); |
264 | 278 | utils.setupEditingHost(`<${paragraph} style="white-space:${style}">a[]bc</${paragraph}>`); |
265 | 279 | editingHost.getBoundingClientRect(); |
266 | | - document.execCommand("insertparagraph"); |
| 280 | + doIt(); |
267 | 281 | assert_in_array( |
268 | 282 | editingHost.innerHTML, |
269 | 283 | [ |
|
283 | 297 | const utils = new EditorTestUtils(editingHost); |
284 | 298 | utils.setupEditingHost(`<${paragraph}>abc[]</${paragraph}>`); |
285 | 299 | editingHost.getBoundingClientRect(); |
286 | | - document.execCommand("insertparagraph"); |
| 300 | + doIt(); |
287 | 301 | assert_equals( |
288 | 302 | editingHost.innerHTML, |
289 | 303 | `<${paragraph}>abc</${paragraph}><${paragraph}><br></${paragraph}>`, |
|
297 | 311 | const utils = new EditorTestUtils(editingHost); |
298 | 312 | utils.setupEditingHost(`<${paragraph}>[]abc</${paragraph}>`); |
299 | 313 | editingHost.getBoundingClientRect(); |
300 | | - document.execCommand("insertparagraph"); |
| 314 | + doIt(); |
301 | 315 | assert_in_array( |
302 | 316 | editingHost.innerHTML, |
303 | 317 | [ |
|
314 | 328 | const utils = new EditorTestUtils(editingHost); |
315 | 329 | utils.setupEditingHost(`<${paragraph}>a[]bc</${paragraph}>`); |
316 | 330 | editingHost.getBoundingClientRect(); |
317 | | - document.execCommand("insertparagraph"); |
| 331 | + doIt(); |
318 | 332 | assert_in_array( |
319 | 333 | editingHost.innerHTML, |
320 | 334 | [ |
|
336 | 350 | const styleAttr = `style="display:${display}; white-space:${style}"`; |
337 | 351 | utils.setupEditingHost(`<${paragraph} ${styleAttr}>abc[]</${paragraph}>`); |
338 | 352 | editingHost.getBoundingClientRect(); |
339 | | - document.execCommand("insertparagraph"); |
| 353 | + doIt(); |
340 | 354 | if (display != "block") { |
341 | 355 | assert_equals( |
342 | 356 | editingHost.innerHTML, |
|
359 | 373 | const styleAttr = `style="display:${display}; white-space:${style}"`; |
360 | 374 | utils.setupEditingHost(`<${paragraph} ${styleAttr}>[]abc</${paragraph}>`); |
361 | 375 | editingHost.getBoundingClientRect(); |
362 | | - document.execCommand("insertparagraph"); |
| 376 | + doIt(); |
363 | 377 | if (display != "block") { |
364 | 378 | assert_in_array( |
365 | 379 | editingHost.innerHTML, |
|
388 | 402 | const utils = new EditorTestUtils(editingHost); |
389 | 403 | utils.setupEditingHost(`<${paragraph} ${styleAttr}>a[]bc</${paragraph}>`); |
390 | 404 | editingHost.getBoundingClientRect(); |
391 | | - document.execCommand("insertparagraph"); |
| 405 | + doIt(); |
392 | 406 | if (display != "block") { |
393 | 407 | assert_in_array( |
394 | 408 | editingHost.innerHTML, |
|
0 commit comments