|
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