<!DOCTYPE html> <html> <!-- https://bugzilla.mozilla.org/show_bug.cgi?id=452161 --> <head> <title>nsIAccessibleEditableText chrome tests</title> <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css" /> <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="../events.js"></script> <script type="application/javascript" src="editabletext.js"></script> <script type="application/javascript"> //gA11yEventDumpToConsole = true; //enableLogging("tree,verbose"); // debug function addTestEditable(aID, aTestRun, aBeforeContent, aAfterContent) { var et = new editableTextTest(aID); var startOffset = aBeforeContent ? aBeforeContent.length : 0; // XXX afterContent currently is not used ////////////////////////////////////////////////////////////////////////// // setTextContents et.scheduleTest(et.setTextContents, "hello", startOffset); et.scheduleTest(et.setTextContents, "olleh", startOffset); et.scheduleTest(et.setTextContents, "", startOffset); ////////////////////////////////////////////////////////////////////////// // insertText et.scheduleTest(et.insertText, "hello", startOffset, "hello"); et.scheduleTest(et.insertText, "ma ", startOffset, "ma hello"); et.scheduleTest(et.insertText, "ma", startOffset + 2, "mama hello"); et.scheduleTest(et.insertText, " hello", startOffset + 10, "mama hello hello"); // XXX: bug 452584 ////////////////////////////////////////////////////////////////////////// // deleteText // et.deleteText(0, 5, "hello hello"); // et.deleteText(5, 6, "hellohello"); // et.deleteText(5, 10, "hello"); // et.deleteText(0, 5, ""); ////////////////////////////////////////////////////////////////////////// // copyNPasteText // et.copyNPasteText(0, 0, 0, ""); // et.insertText("hello", 0, "hello"); // et.copyNPasteText(0, 1, 0, "hhello"); // et.copyNPasteText(5, 6, 6, "hhelloo"); // et.copyNPasteText(3, 4, 1, "hehelloo"); ////////////////////////////////////////////////////////////////////////// // // cutNPasteText // et.cutNPasteText(0, 1, 1, "ehhelloo"); // et.cutNPasteText(1, 2, 0, "hehelloo"); // et.cutNPasteText(7, 8, 8, "hehelloo"); aTestRun.add(et); } //gA11yEventDumpToConsole = true; // debug stuff function runTest() { var testRun = new editableTextTestRun(); addTestEditable("input", testRun); addTestEditable("div", testRun); addTestEditable("divb", testRun, "pseudo element", ""); addTestEditable("diva", testRun, "", "pseudo element"); addTestEditable("divba", testRun, "before", "after"); addTestEditable(getNode("frame").contentDocument, testRun); testRun.run(); // Will call SimpleTest.finish(); } function doTest() { // Prepare tested elements. // Design mode on/off triggers an editable state change event on // the document accessible. var frame = getNode("frame"); waitForEvent(EVENT_STATE_CHANGE, frame.contentDocument, runTest); frame.contentDocument.designMode = "on"; } SimpleTest.waitForExplicitFinish(); addA11yLoadEvent(doTest); </script> <style> #divb::before, #diva::after { content: "pseudo element"; } #divba::before { content: "before"; } #divba::after { content: "after"; } </style> </head> <body> <a target="_blank" title="nsIAccessibleEditableText chrome tests" href="https://bugzilla.mozilla.org/show_bug.cgi?id=452161"> Bug 452161 </a> <a target="_blank" title="Cache rendered text on a11y side" href="https://bugzilla.mozilla.org/show_bug.cgi?id=626660"> Bug 626660 </a> <a target="_blank" title="Pseudo element support test" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1105611"> Bug 1105611 </a> <p id="display"></p> <div id="content" style="display: none"></div> <pre id="test"> </pre> <input id="input"/> <div id="div" contenteditable="true"></div> <div id="divb" contenteditable="true"></div> <div id="diva" contenteditable="true"></div> <div id="divba" contenteditable="true"></div> <iframe id="frame"/> </body> </html>