Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / editing / style / script-tests / push-down-implicit-styles-around-list-mac.js
blob86bb7b841aa953d96ce3ff9fda407f73c24b6f12
1 description('Test to make sure we push down inline styles properly.');
3 if (window.internals)
4     internals.settings.setEditingBehavior('mac');
5 var testContainer = document.createElement("div");
6 testContainer.contentEditable = true;
7 document.body.appendChild(testContainer);
9 function testSingleToggle(toggleCommand, selector, initialContents, expectedContents)
11     testContainer.innerHTML = initialContents;
12     var selected = selector(testContainer);
13     document.execCommand('styleWithCSS', false, 'false');
14     document.execCommand(toggleCommand, false, null);
15     var action = toggleCommand + ' on ' + selected + ' of ' + initialContents + " yields " + testContainer.innerHTML;
16     if (testContainer.innerHTML == expectedContents)
17         testPassed(action);
18     else
19         testFailed(action + ", expected " + expectedContents);
22 function selectFirstWord(container) {
23     window.getSelection().collapse(container, 0);
24     window.getSelection().modify('extend', 'forward', 'word');
25     return 'first word';
28 function selectLastWord(container) {
29     window.getSelection().collapse(container, container.childNodes.length);
30     window.getSelection().modify('extend', 'backward', 'word');
31     return 'last word';
34 testSingleToggle("bold", selectFirstWord, '<b><ul><li><b>a</b></li></ul></b>', '<ul><li>a</li></ul>');
35 testSingleToggle("bold", selectFirstWord, '<b><ul><li>hello</li><li>world</li></ul></b>', '<ul><li>hello</li><li style="font-weight: bold;">world</li></ul>');
36 testSingleToggle("bold", selectLastWord, '<ul><li>hello</li><li style="font-weight: bold;">world</li></ul>', '<ul><li>hello</li><li>world</li></ul>');
37 testSingleToggle("bold", selectFirstWord, '<b><ul><li>hello world</li><li>webkit</li></ul></b>', '<ul><li>hello<b> world</b></li><li style="font-weight: bold;">webkit</li></ul>');
39 testSingleToggle("italic", selectFirstWord, '<i><ul><li><i>a</i></li></ul></i>', '<ul><li>a</li></ul>');
40 testSingleToggle("italic", selectFirstWord, '<i><ul><li>hello</li><li>world</li></ul></i>', '<ul><li>hello</li><li style="font-style: italic;">world</li></ul>');
41 testSingleToggle("italic", selectLastWord, '<ul><li>hello</li><li style="font-style: italic;">world</li></ul>', '<ul><li>hello</li><li>world</li></ul>');
42 testSingleToggle("italic", selectFirstWord, '<i><ul><li>hello world</li><li>webkit</li></ul></i>', '<ul><li>hello<i> world</i></li><li style="font-style: italic;">webkit</li></ul>');
44 testSingleToggle("underline", selectFirstWord, '<u><ul><li><u>a</u></li></ul></u>', '<ul><li>a</li></ul>');
45 testSingleToggle("underline", selectFirstWord, '<u><ul><li>hello</li><li>world</li></ul></u>', '<ul><li>hello</li><li style="text-decoration-line: underline;">world</li></ul>');
46 testSingleToggle("underline", selectLastWord, '<ul><li>hello</li><li style="text-decoration: underline;">world</li></ul>', '<ul><li>hello</li><li>world</li></ul>');
47 testSingleToggle("underline", selectFirstWord, '<u><ul><li>hello world</li><li>webkit</li></ul></u>', '<ul><li>hello<u> world</u></li><li style="text-decoration-line: underline;">webkit</li></ul>');
49 testSingleToggle("strikethrough", selectFirstWord, '<strike><ul><li><strike>a</strike></li></ul></strike>', '<ul><li>a</li></ul>');
50 testSingleToggle("strikethrough", selectFirstWord, '<strike><ul><li>hello</li><li>world</li></ul></strike>', '<ul><li>hello</li><li style="text-decoration-line: line-through;">world</li></ul>');
51 testSingleToggle("strikethrough", selectLastWord, '<ul><li>hello</li><li style="text-decoration: line-through;">world</li></ul>', '<ul><li>hello</li><li>world</li></ul>');
52 testSingleToggle("strikethrough", selectFirstWord, '<strike><ul><li>hello world</li><li>webkit</li></ul></strike>', '<ul><li>hello<strike> world</strike></li><li style="text-decoration-line: line-through;">webkit</li></ul>');
54 document.body.removeChild(testContainer);
56 var successfullyParsed = true;