mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-16 12:17:34 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
233
editor/libeditor/tests/browserscope/test_richtext2.html
Normal file
233
editor/libeditor/tests/browserscope/test_richtext2.html
Normal file
|
|
@ -0,0 +1,233 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<!--
|
||||
BrowserScope richtext2 category tests
|
||||
|
||||
This test is originally based on the unit test example available as part of the
|
||||
RichText2 suite:
|
||||
http://code.google.com/p/browserscope/source/browse/trunk/categories/richtext2/unittestexample.html
|
||||
-->
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
|
||||
<title>BrowserScope Richtext2 Tests</title>
|
||||
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
|
||||
|
||||
<!-- utility scripts -->
|
||||
<script type="text/javascript" src="lib/richtext2/richtext2/static/js/variables.js"></script>
|
||||
<script type="text/javascript" src="lib/richtext2/richtext2/static/js/canonicalize.js"></script>
|
||||
<script type="text/javascript" src="lib/richtext2/richtext2/static/js/compare.js"></script>
|
||||
<script type="text/javascript" src="lib/richtext2/richtext2/static/js/pad.js"></script>
|
||||
<script type="text/javascript" src="lib/richtext2/richtext2/static/js/range.js"></script>
|
||||
<script type="text/javascript" src="lib/richtext2/richtext2/static/js/units.js"></script>
|
||||
<script type="text/javascript" src="lib/richtext2/richtext2/static/js/run.js"></script>
|
||||
<!-- you do not need static/js/output.js -->
|
||||
|
||||
<!--
|
||||
Tests - note that those have the extensions .py,
|
||||
but can be used as JS files directly.
|
||||
-->
|
||||
<script type="text/javascript" src="lib/richtext2/richtext2/tests/selection.py"></script>
|
||||
<script type="text/javascript" src="lib/richtext2/richtext2/tests/apply.py"></script>
|
||||
<script type="text/javascript" src="lib/richtext2/richtext2/tests/applyCSS.py"></script>
|
||||
<script type="text/javascript" src="lib/richtext2/richtext2/tests/change.py"></script>
|
||||
<script type="text/javascript" src="lib/richtext2/richtext2/tests/changeCSS.py"></script>
|
||||
<script type="text/javascript" src="lib/richtext2/richtext2/tests/unapply.py"></script>
|
||||
<script type="text/javascript" src="lib/richtext2/richtext2/tests/unapplyCSS.py"></script>
|
||||
<script type="text/javascript" src="lib/richtext2/richtext2/tests/delete.py"></script>
|
||||
<script type="text/javascript" src="lib/richtext2/richtext2/tests/forwarddelete.py"></script>
|
||||
<script type="text/javascript" src="lib/richtext2/richtext2/tests/insert.py"></script>
|
||||
<script type="text/javascript" src="lib/richtext2/richtext2/tests/querySupported.py"></script>
|
||||
<script type="text/javascript" src="lib/richtext2/richtext2/tests/queryEnabled.py"></script>
|
||||
<script type="text/javascript" src="lib/richtext2/richtext2/tests/queryIndeterm.py"></script>
|
||||
<script type="text/javascript" src="lib/richtext2/richtext2/tests/queryState.py"></script>
|
||||
<script type="text/javascript" src="lib/richtext2/richtext2/tests/queryValue.py"></script>
|
||||
|
||||
<script type="text/javascript" src="lib/richtext2/currentStatus.js"></script>
|
||||
|
||||
<!-- Do something -->
|
||||
<script type="text/javascript">
|
||||
// Set this constant to true in order to get the current status of the test suite.
|
||||
// This is useful for updating the currentStatus.js file when an editor bug is fixed.
|
||||
const UPDATE_TEST_RESULTS = false;
|
||||
|
||||
// some tests (at least RTE2-QE_PASTE_TEXT-1) require clipboard data
|
||||
function startTest() {
|
||||
SimpleTest.waitForClipboard("foo",
|
||||
function() {
|
||||
SpecialPowers.clipboardCopyString("foo");
|
||||
},
|
||||
runTest,
|
||||
function() {
|
||||
ok(false, "Failed to copy a string to the clipboard");
|
||||
SimpleTest.finish();
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function runTest() {
|
||||
initVariables();
|
||||
initEditorDocs();
|
||||
|
||||
const tests = [
|
||||
SELECTION_TESTS,
|
||||
APPLY_TESTS,
|
||||
APPLY_TESTS_CSS,
|
||||
CHANGE_TESTS,
|
||||
CHANGE_TESTS_CSS,
|
||||
UNAPPLY_TESTS,
|
||||
UNAPPLY_TESTS_CSS,
|
||||
DELETE_TESTS,
|
||||
FORWARDDELETE_TESTS,
|
||||
INSERT_TESTS,
|
||||
QUERYSUPPORTED_TESTS,
|
||||
QUERYENABLED_TESTS,
|
||||
QUERYINDETERM_TESTS,
|
||||
QUERYSTATE_TESTS,
|
||||
QUERYVALUE_TESTS,
|
||||
];
|
||||
|
||||
for (var i = 0; i < tests.length; ++i) {
|
||||
runTestSuite(tests[i]);
|
||||
}
|
||||
|
||||
// Below alert is just a simple demonstration on how to access the test results.
|
||||
// Note that we only ran UNAPPLY tests above, so we have only results from that test set.
|
||||
//
|
||||
// The 'results' structure is as follows:
|
||||
//
|
||||
// results structure containing all results
|
||||
// [<suite ID>] structure containing the results for the given suite *)
|
||||
// .count number of tests in the given suite
|
||||
// .valscore sum of all test value results (HTML or query value)
|
||||
// .selscore sum of all selection results (HTML tests only)
|
||||
// [<class ID>] structure containing the results for the given class **)
|
||||
// .count number of tests in the given suite
|
||||
// .valscore sum of all test value results (HTML or query value)
|
||||
// .selscore sum of all selection results (HTML tests only)
|
||||
// [<test ID>] structure containing the reults for a given test ***)
|
||||
// .valscore value score (0 or 1), minimum over all containers
|
||||
// .selscore selection score (0 or 1), minimum over all containers (HTML tests only)
|
||||
// .valresult worst test value result (integer, see variables.js)
|
||||
// .selresult worst selection result (integer, see variables.js)
|
||||
// [<cont. ID>] structure containing the results of the test for a given container ****)
|
||||
// .valscore value score (0 or 1)
|
||||
// .selscore selection score (0 or 1)
|
||||
// .valresult value result (integer, see variables.js)
|
||||
// .selresult selection result (integer, see variables.js)
|
||||
// .output output string (mainly for use by the online version)
|
||||
// .innerHTML inner HTML of the testing container (<div> or <body>) after the test
|
||||
// .outerHTML outer HTML of the testing container (<div> or <body>) after the test
|
||||
// .bodyInnerHTML inner HTML of the <body> after the test
|
||||
// .bodyOuterHTML outer HTML of the <body> after the test
|
||||
//
|
||||
// *) <suite ID>: a 1-3 character ID, e.g. UNAPPLY_TESTS.id, or 'U' (both referring the same suite)
|
||||
// **) <class ID>: one of 'Proposed', 'RFC' or 'Finalized'
|
||||
// ***) <test ID>: the ID of the test, without the leading 'RTE2-<suite ID>_' part
|
||||
// ****) <container ID>: one of 'div' (test within a <div contenteditable="true">)
|
||||
// 'dM' (test with designMode = 'on')
|
||||
// 'body' (test within a <body contenteditable="true">)
|
||||
|
||||
if (UPDATE_TEST_RESULTS) {
|
||||
var newKnownFailures = {value: {}, select: {}};
|
||||
for (var i = 0; i < tests.length; ++i) {
|
||||
var category = tests[i];
|
||||
for (var group in results[category.id]) {
|
||||
switch (group) {
|
||||
// Skip the known properties
|
||||
case "count":
|
||||
case "valscore":
|
||||
case "selscore":
|
||||
case "time":
|
||||
break;
|
||||
default:
|
||||
for (var test_id in results[category.id][group]) {
|
||||
switch (test_id) {
|
||||
// Skip the known properties
|
||||
case "count":
|
||||
case "valscore":
|
||||
case "selscore":
|
||||
break;
|
||||
default:
|
||||
for (var structure in results[category.id][group][test_id]) {
|
||||
switch (structure) {
|
||||
// Only look at each test structure
|
||||
case "dM":
|
||||
case "body":
|
||||
case "div":
|
||||
if (!results[category.id][group][test_id][structure].valscore) {
|
||||
newKnownFailures.value[category.id + "-" + group + "-" + test_id + "-" + structure] = true;
|
||||
}
|
||||
if (!results[category.id][group][test_id][structure].selscore) {
|
||||
newKnownFailures.select[category.id + "-" + group + "-" + test_id + "-" + structure] = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
var resultContainer = document.getElementById("results");
|
||||
resultContainer.style.display = "";
|
||||
resultContainer.textContent = JSON.stringify(newKnownFailures);
|
||||
} else {
|
||||
for (var i = 0; i < tests.length; ++i) {
|
||||
var category = tests[i];
|
||||
for (var group in results[category.id]) {
|
||||
switch (group) {
|
||||
// Skip the known properties
|
||||
case "count":
|
||||
case "valscore":
|
||||
case "selscore":
|
||||
case "time":
|
||||
break;
|
||||
default:
|
||||
for (var test_id in results[category.id][group]) {
|
||||
switch (test_id) {
|
||||
// Skip the known properties
|
||||
case "count":
|
||||
case "valscore":
|
||||
case "selscore":
|
||||
break;
|
||||
default:
|
||||
for (var structure in results[category.id][group][test_id]) {
|
||||
switch (structure) {
|
||||
// Only look at each test structure
|
||||
case "dM":
|
||||
case "body":
|
||||
case "div":
|
||||
var row = results[category.id][group][test_id][structure];
|
||||
var testName = [category.id, group, test_id, structure].join("-");
|
||||
(testName in knownFailures.value ? todo_is : is)(
|
||||
row.valscore, 1, "Browserscope richtext2 value: " + testName);
|
||||
(testName in knownFailures.select ? todo_is : is)(
|
||||
row.selscore, 1, "Browserscope richtext2 selection: " + testName);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
// Running all of the tests can take a long time, try to account for it
|
||||
SimpleTest.requestLongerTimeout(5);
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body onload="startTest()">
|
||||
<iframe name="iframe-dM" id="iframe-dM" src="lib/richtext2/richtext2/static/editable-dM.html"></iframe>
|
||||
<iframe name="iframe-body" id="iframe-body" src="lib/richtext2/richtext2/static/editable-body.html"></iframe>
|
||||
<iframe name="iframe-div" id="iframe-div" src="lib/richtext2/richtext2/static/editable-div.html"></iframe>
|
||||
<pre id="results" style="display: none"></pre>
|
||||
</body>
|
||||
</html>
|
||||
Loading…
Add table
Add a link
Reference in a new issue