| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> | |
| <html> | |
| <head> | |
| <script src="../../resources/js-test-pre.js"></script> | |
| </head> | |
| <body> | |
| <p id="description"></p> | |
| <div id="console"></div> | |
| <script> | |
| description("Tests queryCommandValue('formatBlock')") | |
| var testContainer = document.createElement("span"); | |
| testContainer.contentEditable = true; | |
| document.body.appendChild(testContainer); | |
| function queryFormatBlock(selector, content, expected) | |
| { | |
| testContainer.innerHTML = content; | |
| var selected = selector(testContainer); | |
| var actual = document.queryCommandValue('formatBlock'); | |
| var action = "queryCommand('formatBlock') returned \"" + actual + '" selecting ' + selected + ' of "' + content + '"'; | |
| if (actual == expected) | |
| testPassed(action); | |
| else | |
| testFailed(action + ' but expected "' + expected + '"'); | |
| } | |
| function selectFirstPosition(container) { | |
| while (container.firstChild) | |
| container = container.firstChild; | |
| window.getSelection().setPosition(container, 0); | |
| return 'first position' | |
| } | |
| function selectMiddleOfHelloWorld(container) { | |
| window.getSelection().setPosition(container, 0); | |
| window.getSelection().modify('move', 'forward', 'character'); | |
| window.getSelection().modify('move', 'forward', 'character'); | |
| window.getSelection().modify('extend', 'forward', 'word'); | |
| window.getSelection().modify('extend', 'forward', 'character'); | |
| window.getSelection().modify('extend', 'forward', 'character'); | |
| window.getSelection().modify('extend', 'forward', 'character'); | |
| return '"llo wo"' | |
| } | |
| debug('Basic cases'); | |
| queryFormatBlock(function () {return 'none' }, 'hello', ''); | |
| queryFormatBlock(selectFirstPosition, 'hello', ''); | |
| queryFormatBlock(selectFirstPosition, '<div contenteditable="false"><h1 contenteditable>hello</h1></div>', ''); | |
| queryFormatBlock(selectFirstPosition, '<h1 contenteditable="false"><span contenteditable>hello</span></h1>', ''); | |
| queryFormatBlock(selectFirstPosition, '<div><h1 contenteditable="false"><span contenteditable>hello</span></h1></div>', ''); | |
| queryFormatBlock(selectFirstPosition, '<div><header contenteditable="false"><h1 contenteditable>hello</h1></header></div>', ''); | |
| queryFormatBlock(selectFirstPosition, '<a>hello</a>', ''); | |
| queryFormatBlock(selectFirstPosition, '<abbr>hello</abbr>', ''); | |
| queryFormatBlock(selectFirstPosition, '<acronym>hello</acronym>', ''); | |
| queryFormatBlock(selectFirstPosition, '<b>hello</b>', ''); | |
| queryFormatBlock(selectFirstPosition, '<bdo>hello</bdo>', ''); | |
| queryFormatBlock(selectFirstPosition, '<big>hello</big>', ''); | |
| queryFormatBlock(selectFirstPosition, '<button>hello</button>', ''); | |
| queryFormatBlock(selectFirstPosition, '<caption>hello</caption>', ''); | |
| queryFormatBlock(selectFirstPosition, '<center>hello</center>', ''); | |
| queryFormatBlock(selectFirstPosition, '<cite>hello</cite>', ''); | |
| queryFormatBlock(selectFirstPosition, '<code>hello</code>', ''); | |
| queryFormatBlock(selectFirstPosition, '<del>hello</del>', ''); | |
| queryFormatBlock(selectFirstPosition, '<dfn>hello</dfn>', ''); | |
| queryFormatBlock(selectFirstPosition, '<dir>hello</dir>', ''); | |
| queryFormatBlock(selectFirstPosition, '<em>hello</em>', ''); | |
| queryFormatBlock(selectFirstPosition, '<form><fieldset>hello</fieldset></form>', ''); | |
| queryFormatBlock(selectFirstPosition, '<font>hello</font>', ''); | |
| queryFormatBlock(selectFirstPosition, '<form>hello</form>', ''); | |
| queryFormatBlock(selectFirstPosition, '<i>hello</i>', ''); | |
| queryFormatBlock(selectFirstPosition, '<kbd>hello</kbd>', ''); | |
| queryFormatBlock(selectFirstPosition, '<label>hello</label>', ''); | |
| queryFormatBlock(selectFirstPosition, '<legend>hello</legend>', ''); | |
| queryFormatBlock(selectFirstPosition, '<ul><li>hello<li></ul>', ''); | |
| queryFormatBlock(selectFirstPosition, '<menu>hello</menu>', ''); | |
| queryFormatBlock(selectFirstPosition, '<ol>hello</ol>', ''); | |
| queryFormatBlock(selectFirstPosition, '<q>hello</q>', ''); | |
| queryFormatBlock(selectFirstPosition, '<s>hello</s>', ''); | |
| queryFormatBlock(selectFirstPosition, '<samp>hello</samp>', ''); | |
| queryFormatBlock(selectFirstPosition, '<small>hello</small>', ''); | |
| queryFormatBlock(selectFirstPosition, '<span>hello</span>', ''); | |
| queryFormatBlock(selectFirstPosition, '<strike>hello</strike>', ''); | |
| queryFormatBlock(selectFirstPosition, '<strong>hello</strong>', ''); | |
| queryFormatBlock(selectFirstPosition, '<sub>hello</sub>', ''); | |
| queryFormatBlock(selectFirstPosition, '<sup>hello</sup>', ''); | |
| queryFormatBlock(selectFirstPosition, '<table><td>hello</td></table>', ''); | |
| queryFormatBlock(selectFirstPosition, '<table><th>hello</th></table>', ''); | |
| queryFormatBlock(selectFirstPosition, '<tt>hello</tt>', ''); | |
| queryFormatBlock(selectFirstPosition, '<u>hello</u>', ''); | |
| queryFormatBlock(selectFirstPosition, '<ul>hello</ul>', ''); | |
| queryFormatBlock(selectFirstPosition, '<var>hello</var>', ''); | |
| queryFormatBlock(selectFirstPosition, '<address>hello</address>', 'address'); | |
| queryFormatBlock(selectFirstPosition, '<article>hello</article>', 'article'); | |
| queryFormatBlock(selectFirstPosition, '<aside>hello</aside>', 'aside'); | |
| queryFormatBlock(selectFirstPosition, '<blockquote>hello</blockquote>', 'blockquote'); | |
| queryFormatBlock(selectFirstPosition, '<dd>hello</dd>', 'dd'); | |
| queryFormatBlock(selectFirstPosition, '<dl><dd>hello</dd></dl>', 'dd'); | |
| queryFormatBlock(selectFirstPosition, '<div>hello</div>', 'div'); | |
| queryFormatBlock(selectFirstPosition, '<dl>hello</dl>', 'dl'); | |
| queryFormatBlock(selectFirstPosition, '<dt>hello</dt>', 'dt'); | |
| queryFormatBlock(selectFirstPosition, '<dl><dt>hello</dt></dl>', 'dt'); | |
| queryFormatBlock(selectFirstPosition, '<footer>hello</footer>', 'footer'); | |
| queryFormatBlock(selectFirstPosition, '<h1>hello</h1>', 'h1'); | |
| queryFormatBlock(selectFirstPosition, '<h2>hello</h2>', 'h2'); | |
| queryFormatBlock(selectFirstPosition, '<h3>hello</h3>', 'h3'); | |
| queryFormatBlock(selectFirstPosition, '<h4>hello</h4>', 'h4'); | |
| queryFormatBlock(selectFirstPosition, '<h5>hello</h5>', 'h5'); | |
| queryFormatBlock(selectFirstPosition, '<h6>hello</h6>', 'h6'); | |
| queryFormatBlock(selectFirstPosition, '<header>hello</header>', 'header'); | |
| queryFormatBlock(selectFirstPosition, '<hgroup>hello</hgroup>', 'hgroup'); | |
| queryFormatBlock(selectFirstPosition, '<main>hello</main>', 'main'); | |
| queryFormatBlock(selectFirstPosition, '<nav>hello</nav>', 'nav'); | |
| queryFormatBlock(selectFirstPosition, '<p>hello</p>', 'p'); | |
| queryFormatBlock(selectFirstPosition, '<pre>hello</pre>', 'pre'); | |
| queryFormatBlock(selectFirstPosition, '<section>hello</section>', 'section'); | |
| debug(''); | |
| debug('Nested cases'); | |
| queryFormatBlock(selectFirstPosition, '<h1><h2>hello</h2></h1>', 'h2'); | |
| queryFormatBlock(selectFirstPosition, '<h1><address>hello</address></h1>', 'address'); | |
| queryFormatBlock(selectFirstPosition, '<pre>hello<p>world</p></pre>', 'pre'); | |
| queryFormatBlock(selectMiddleOfHelloWorld, '<pre>hello<p>world</p></pre>', 'pre'); | |
| queryFormatBlock(selectMiddleOfHelloWorld, '<address><h1>hello</h1>world</address>', 'address'); | |
| queryFormatBlock(selectMiddleOfHelloWorld, '<h1>hello</h1>world', ''); | |
| document.body.removeChild(testContainer); | |
| var successfullyParsed = true; | |
| </script> | |
| <script src="../../resources/js-test-post.js"></script> | |
| </body> | |
| </html> |