gecko-dev/accessible/tests/mochitest/editabletext/test_1.html

145 строки
4.4 KiB
HTML

<!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>