<!DOCTYPE html> <html> <head> <title>nsIAccessibleText getText related function tests for rich text</title> <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css" /> <style> #listitemnone { list-style-type: none; } h6.gencontent:before { content: "aga" } </style> <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> <script type="application/javascript" src="../common.js"></script> <script type="application/javascript" src="../text.js"></script> <script type="application/javascript"> function doTest() { ////////////////////////////////////////////////////////////////////////// // null getText ////////////////////////////////////////////////////////////////////////// var emptyTextAcc = getAccessible("nulltext", [nsIAccessibleText]); is(emptyTextAcc.getText(0, -1), "", "getText() END_OF_TEXT with null string"); is(emptyTextAcc.getText(0, 0), "", "getText() Len==0 with null string"); ////////////////////////////////////////////////////////////////////////// // hypertext ////////////////////////////////////////////////////////////////////////// // ! - embedded object char // __h__e__l__l__o__ __!__ __s__e__e__ __!__ // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 var IDs = [ "hypertext", "hypertext2" ]; //////////////////////////////////////////////////////////////////////// // characterCount testCharacterCount(IDs, 13); //////////////////////////////////////////////////////////////////////// // getText testText(IDs, 0, 1, "h"); testText(IDs, 5, 7, " " + kEmbedChar); testText(IDs, 10, 13, "e " + kEmbedChar); testText(IDs, 0, 13, "hello " + kEmbedChar + " see " + kEmbedChar); //////////////////////////////////////////////////////////////////////// // getTextAtOffset line boundary testTextAtOffset(0, BOUNDARY_LINE_START, "line ", 0, 5, "hypertext3", kOk, kOk, kOk); // XXX: see bug 634202. testTextAtOffset(0, BOUNDARY_LINE_START, "line ", 0, 5, "hypertext4", kTodo, kOk, kTodo); ////////////////////////////////////////////////////////////////////////// // list ////////////////////////////////////////////////////////////////////////// IDs = [ "list" ]; testCharacterCount(IDs, 2); testText(IDs, 0, 2, kEmbedChar + kEmbedChar); IDs = [ "listitem" ]; testCharacterCount(IDs, 6); testText(IDs, 0, 6, "1. foo"); IDs = [ "listitemnone" ]; testCharacterCount(IDs, 3); testText(IDs, 0, 3, "bar"); testText(["testbr"], 0, 3, "foo"); testTextAtOffset(2, nsIAccessibleText.BOUNDARY_CHAR, "o", 2, 3, "testbr", kOk, kOk, kOk); testTextAtOffset(2, nsIAccessibleText.BOUNDARY_WORD_START, "foo\n", 0, 4, "testbr", kTodo, kOk, kTodo); testTextBeforeOffset(2, nsIAccessibleText.BOUNDARY_LINE_START, "foo\n", 0, 4, "testbr", kTodo, kOk, kTodo); SimpleTest.finish(); } SimpleTest.waitForExplicitFinish(); addA11yLoadEvent(doTest); </script> </head> <body> <a target="_blank" title="Fix getText" href="https://bugzilla.mozilla.org/show_bug.cgi?id=630001"> Bug 630001, part3 </a> <a target="_blank" title="getTextAtOffset line boundary may return more than one line" href="https://bugzilla.mozilla.org/show_bug.cgi?id=638326"> Bug 638326 </a> <a target="_blank" title="getText(0, -1) fails with empty text" href="https://bugzilla.mozilla.org/show_bug.cgi?id=749810"> Bug 749810 </a> <p id="display"></p> <div id="content" style="display: none"></div> <pre id="test"> </pre> <div id="nulltext"></div> <div id="hypertext">hello <a>friend</a> see <img src="about:blank"></div> <div id="hypertext2">hello <a>friend</a> see <input></div> <ol id="list"> <li id="listitem">foo</li> <li id="listitemnone">bar</li> </ol> <div id="hypertext3">line <!-- haha --> <!-- hahaha --> <h6>heading</h6> </div> <div id="hypertext4">line <!-- haha --> <!-- hahaha --> <h6 role="presentation" class="gencontent">heading</h6> </div> <div id="testbr">foo<br/></div> </body> </html>