You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@corinthia.apache.org by ja...@apache.org on 2015/08/14 18:10:57 UTC
[50/51] [abbrv] [partial] incubator-corinthia git commit: added js
test files
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/PrettyPrinter.js
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/PrettyPrinter.js b/experiments/editorFramework/test/Layer0/PrettyPrinter.js
new file mode 100644
index 0000000..f18d7ba
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/PrettyPrinter.js
@@ -0,0 +1,226 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+(function() {
+
+ // Applicable options:
+ // keepSelectionHighlights (boolean)
+ // preserveCase (boolean)
+ // showNamespaceDetails (boolean)
+ // separateLines (boolean)
+
+ function getHTML(root,options)
+ {
+ var copy;
+ UndoManager_disableWhileExecuting(function() {
+ if (options == null)
+ options = new Object();
+ copy = DOM_cloneNode(root,true);
+ if (!options.keepSelectionHighlights)
+ removeSelectionSpans(copy);
+ for (var body = copy.firstChild; body != null; body = body.nextSibling) {
+ if (body.nodeName == "BODY") {
+ DOM_removeAttribute(body,"style");
+ DOM_removeAttribute(body,"contentEditable");
+ }
+ }
+ });
+
+ var output = new Array();
+ prettyPrint(output,options,copy,"");
+ return output.join("");
+ }
+
+ function removeSelectionSpans(root)
+ {
+ var checkMerge = new Array();
+ recurse(root);
+
+ for (var i = 0; i < checkMerge.length; i++) {
+ if (checkMerge[i].parentNode != null) { // if not already merged
+ Formatting_mergeWithNeighbours(checkMerge[i],{});
+ }
+ }
+
+ function recurse(node) {
+ if (isSelectionHighlight(node)) {
+ checkMerge.push(node.firstChild);
+ checkMerge.push(node.lastChild);
+ DOM_removeNodeButKeepChildren(node);
+ }
+ else {
+ var next;
+ for (var child = node.firstChild; child != null; child = next) {
+ next = child.nextSibling;
+ recurse(child);
+ }
+ }
+ }
+ }
+
+ function entityFix(str)
+ {
+ return str.replace(/\u00a0/g," ");
+ }
+
+ function singleDescendents(node)
+ {
+ var count = 0;
+ for (var child = node.firstChild; child != null; child = child.nextSibling) {
+ if ((child.nodeType == Node.TEXT_NODE) && (textNodeDisplayValue(child).length == 0))
+ continue;
+ count++;
+ if (count > 1)
+ return false;
+ if (!singleDescendents(child))
+ return false;
+ }
+ return true;
+ }
+
+ function sortCSSProperties(value)
+ {
+ // Make sure the CSS properties on the "style" attribute appear in a consistent order
+ var items = value.trim().split(/\s*;\s*/);
+ if ((items.length > 0) && (items[items.length-1] == ""))
+ items.length--;
+ items.sort();
+ return items.join("; ");
+ }
+
+ function attributeString(options,node)
+ {
+ // Make sure the attributes appear in a consistent order
+ var names = new Array();
+ for (var i = 0; i < node.attributes.length; i++) {
+ names.push(node.attributes[i].nodeName);
+ }
+ names.sort();
+ var str = "";
+ for (var i = 0; i < names.length; i++) {
+ var name = names[i];
+
+ var value = node.getAttribute(name);
+ if (name == "style")
+ value = sortCSSProperties(value);
+ var attr = node.getAttributeNode(name);
+ if (options.showNamespaceDetails) {
+ if ((attr.namespaceURI != null) || (attr.prefix != null))
+ name = "{"+attr.namespaceURI+","+attr.prefix+","+attr.localName+"}"+name;
+ }
+ str += " "+name+"=\""+value+"\"";
+ }
+ return str;
+ }
+
+ function textNodeDisplayValue(node)
+ {
+ var value = entityFix(node.nodeValue);
+ if ((node.parentNode != null) &&
+ (node.parentNode.getAttribute("xml:space") != "preserve"))
+ value = value.trim();
+ return value;
+ }
+
+ function prettyPrintOneLine(output,options,node)
+ {
+ if ((node.nodeType == Node.ELEMENT_NODE) && (node.nodeName != "SCRIPT")) {
+ var name = options.preserveCase ? node.nodeName : node.nodeName.toLowerCase();
+ if (node.firstChild == null) {
+ output.push("<" + name + attributeString(options,node) + "/>");
+ }
+ else {
+ output.push("<" + name + attributeString(options,node) + ">");
+ for (var child = node.firstChild; child != null; child = child.nextSibling)
+ prettyPrintOneLine(output,options,child);
+ output.push("</" + name + ">");
+ }
+ }
+ else if (node.nodeType == Node.TEXT_NODE) {
+ var value = textNodeDisplayValue(node);
+ if (value.length > 0)
+ output.push(value);
+ }
+ else if (node.nodeType == Node.COMMENT_NODE) {
+ output.push("<!--" + entityFix(node.nodeValue) + "-->\n");
+ }
+ }
+
+ function isContainer(node)
+ {
+ switch (node._type) {
+ case HTML_BODY:
+ case HTML_SECTION:
+ case HTML_FIGURE:
+ case HTML_TABLE:
+ case HTML_TBODY:
+ case HTML_THEAD:
+ case HTML_TFOOT:
+ case HTML_TR:
+ case HTML_DIV:
+ case HTML_UL:
+ case HTML_OL:
+ case HTML_NAV:
+ case HTML_COLGROUP:
+ return true;
+ default:
+ return false;
+ }
+ }
+
+ function prettyPrint(output,options,node,indent)
+ {
+ if ((node.nodeType == Node.ELEMENT_NODE) && (node.nodeName != "SCRIPT")) {
+ var name = options.preserveCase ? node.nodeName : node.nodeName.toLowerCase();
+ if (node.firstChild == null) {
+ output.push(indent + "<" + name + attributeString(options,node) + "/>\n");
+ }
+ else {
+ if (node._type == HTML_STYLE) {
+ output.push(indent + "<" + name + attributeString(options,node) + ">\n");
+ for (var child = node.firstChild; child != null; child = child.nextSibling)
+ prettyPrint(output,options,child,"");
+ output.push(indent + "</" + name + ">\n");
+ }
+ else if (!options.separateLines && singleDescendents(node) && !isContainer(node)) {
+ output.push(indent);
+ prettyPrintOneLine(output,options,node);
+ output.push("\n");
+ }
+ else {
+ output.push(indent + "<" + name + attributeString(options,node) + ">\n");
+ for (var child = node.firstChild; child != null; child = child.nextSibling)
+ prettyPrint(output,options,child,indent+" ");
+ output.push(indent + "</" + name + ">\n");
+ }
+ }
+ }
+ else if (node.nodeType == Node.TEXT_NODE) {
+ var value = textNodeDisplayValue(node);
+// var value = JSON.stringify(node.nodeValue);
+ if (value.length > 0)
+ output.push(indent + value + "\n");
+ }
+ else if (node.nodeType == Node.COMMENT_NODE) {
+ output.push(indent + "<!--" + entityFix(node.nodeValue) + "-->\n");
+ }
+ }
+
+ window.PrettyPrinter = new Object();
+ window.PrettyPrinter.getHTML = getHTML;
+
+})();
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/AutoCorrectTests.js
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/AutoCorrectTests.js b/experiments/editorFramework/test/Layer0/autocorrect/AutoCorrectTests.js
new file mode 100644
index 0000000..fdc771d
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/AutoCorrectTests.js
@@ -0,0 +1,50 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+function findTextMatching(re)
+{
+ return recurse(document.body);
+
+ function recurse(node)
+ {
+ if (node.nodeType == Node.TEXT_NODE) {
+ if (node.nodeValue.match(re))
+ return node;
+ else
+ return null;
+ }
+ else {
+ for (var child = node.firstChild; child != null; child = child.nextSibling) {
+ var result = recurse(child);
+ if (result != null)
+ return result;
+ }
+ return null;
+ }
+ }
+}
+
+function showCorrections()
+{
+ var corrections = AutoCorrect_getCorrections();
+ var lines = new Array();
+ lines.push("Corrections:\n");
+ for (var i = 0; i < corrections.length; i++) {
+ lines.push(" "+corrections[i].original+" -> "+corrections[i].replacement+"\n");
+ }
+ return PrettyPrinter.getHTML(document.documentElement)+"\n"+lines.join("");
+}
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection-undo-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection-undo-expected.html b/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection-undo-expected.html
new file mode 100644
index 0000000..3399e01
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection-undo-expected.html
@@ -0,0 +1,50 @@
+<html>
+ <head>
+ </head>
+ <body>
+ ==================== Version 0 ====================
+ <body>
+ <p>
+ one
+ <span class="uxwrite-autocorrect" original="twox">two</span>
+ three
+ <span class="uxwrite-autocorrect" original="fourx">four</span>
+ five
+ <span class="uxwrite-autocorrect" original="sixx">six</span>
+ seven[]
+ </p>
+ </body>
+ ==================== Version 1 ====================
+ <body>
+ <p>
+ one
+ <span class="uxwrite-autocorrect" original="twox">two</span>
+ three
+ <span class="uxwrite-autocorrect" original="fourx">four</span>
+ five six seven[]
+ </p>
+ </body>
+ ==================== Version 2 ====================
+ <body>
+ <p>
+ one
+ <span class="uxwrite-autocorrect" original="twox">two</span>
+ three four five six seven[]
+ </p>
+ </body>
+ ==================== Version 3 ====================
+ <body>
+ <p>one two three four five six seven[]</p>
+ </body>
+ ===================================================
+ First undo to version 2: OK
+ First undo to version 1: OK
+ First undo to version 0: OK
+ Redo to version 1: OK
+ Redo to version 2: OK
+ Redo to version 3: OK
+ Second undo to version 2: OK
+ Second undo to version 1: OK
+ Second undo to version 0: OK
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection-undo-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection-undo-input.html b/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection-undo-input.html
new file mode 100644
index 0000000..a0a703a
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection-undo-input.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="AutoCorrectTests.js"></script>
+<script src="../undo/UndoTests.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ AutoCorrect_init();
+ PostponedActions_perform();
+
+ Cursor_insertCharacter("one");
+ Cursor_insertCharacter(" twox");
+ AutoCorrect_correctPrecedingWord(4,"two");
+ Cursor_insertCharacter(" three");
+ Cursor_insertCharacter(" fourx");
+ AutoCorrect_correctPrecedingWord(5,"four");
+ Cursor_insertCharacter(" five");
+ Cursor_insertCharacter(" sixx");
+ AutoCorrect_correctPrecedingWord(4,"six");
+ Cursor_insertCharacter(" seven");
+ PostponedActions_perform();
+ showSelection();
+
+ UndoManager_clear();
+ var versions = new Array();
+ versions.push(DOM_cloneNode(document.body,true));
+ for (var i = 0; i < 3; i++) {
+ AutoCorrect_acceptCorrection();
+ PostponedActions_perform();
+ versions.push(DOM_cloneNode(document.body,true));
+ }
+
+ testUndo(versions,document.body);
+}
+</script>
+</head>
+<body>
+<p>[]</p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection01-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection01-expected.html b/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection01-expected.html
new file mode 100644
index 0000000..5311c9e
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection01-expected.html
@@ -0,0 +1,14 @@
+<html>
+ <head>
+ </head>
+ <body>
+ <p>
+ one
+ <span class="uxwrite-autocorrect" original="twox">two</span>
+ three four five[]
+ </p>
+ </body>
+</html>
+
+Corrections:
+ twox -> two
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection01-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection01-input.html b/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection01-input.html
new file mode 100644
index 0000000..1fc0ff4
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection01-input.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="AutoCorrectTests.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ AutoCorrect_init();
+ PostponedActions_perform();
+
+ Cursor_insertCharacter("one");
+ Cursor_insertCharacter(" twox");
+ AutoCorrect_correctPrecedingWord(4,"two");
+ Cursor_insertCharacter(" three");
+ Cursor_insertCharacter(" fourx");
+ AutoCorrect_correctPrecedingWord(5,"four");
+ Cursor_insertCharacter(" five");
+ PostponedActions_perform();
+ showSelection();
+
+ AutoCorrect_acceptCorrection();
+ PostponedActions_perform();
+
+ return showCorrections();
+}
+</script>
+</head>
+<body>
+<p>[]</p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection02-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection02-expected.html b/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection02-expected.html
new file mode 100644
index 0000000..2257b03
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection02-expected.html
@@ -0,0 +1,9 @@
+<html>
+ <head>
+ </head>
+ <body>
+ <p>one two three four five[]</p>
+ </body>
+</html>
+
+Corrections:
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection02-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection02-input.html b/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection02-input.html
new file mode 100644
index 0000000..96e9be0
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection02-input.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="AutoCorrectTests.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ AutoCorrect_init();
+ PostponedActions_perform();
+
+ Cursor_insertCharacter("one");
+ Cursor_insertCharacter(" twox");
+ AutoCorrect_correctPrecedingWord(4,"two");
+ Cursor_insertCharacter(" three");
+ Cursor_insertCharacter(" fourx");
+ AutoCorrect_correctPrecedingWord(5,"four");
+ Cursor_insertCharacter(" five");
+ PostponedActions_perform();
+ showSelection();
+
+ AutoCorrect_acceptCorrection();
+ AutoCorrect_acceptCorrection();
+ PostponedActions_perform();
+
+ return showCorrections();
+}
+</script>
+</head>
+<body>
+<p>[]</p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection03-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection03-expected.html b/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection03-expected.html
new file mode 100644
index 0000000..b1afd1f
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection03-expected.html
@@ -0,0 +1,17 @@
+<html>
+ <head>
+ </head>
+ <body>
+ <p>
+ one two three
+ <span class="uxwrite-autocorrect" original="fourx">four</span>
+ five
+ <span class="uxwrite-autocorrect" original="sixx">six</span>
+ seven[]
+ </p>
+ </body>
+</html>
+
+Corrections:
+ fourx -> four
+ sixx -> six
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection03-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection03-input.html b/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection03-input.html
new file mode 100644
index 0000000..dc26563
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection03-input.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="AutoCorrectTests.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ AutoCorrect_init();
+ PostponedActions_perform();
+
+ Cursor_insertCharacter("one");
+ Cursor_insertCharacter(" twox");
+ AutoCorrect_correctPrecedingWord(4,"two");
+ Cursor_insertCharacter(" three");
+ Cursor_insertCharacter(" fourx");
+ AutoCorrect_correctPrecedingWord(5,"four");
+ Cursor_insertCharacter(" five");
+ Cursor_insertCharacter(" sixx");
+ AutoCorrect_correctPrecedingWord(4,"six");
+ Cursor_insertCharacter(" seven");
+ PostponedActions_perform();
+ showSelection();
+
+ var text = findTextMatching("two");
+ Selection_set(text,0,text,0);
+
+ AutoCorrect_acceptCorrection();
+ PostponedActions_perform();
+
+ return showCorrections();
+}
+</script>
+</head>
+<body>
+<p>[]</p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection04-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection04-expected.html b/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection04-expected.html
new file mode 100644
index 0000000..9671757
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection04-expected.html
@@ -0,0 +1,17 @@
+<html>
+ <head>
+ </head>
+ <body>
+ <p>
+ one
+ <span class="uxwrite-autocorrect" original="twox">two</span>
+ three four five
+ <span class="uxwrite-autocorrect" original="sixx">six</span>
+ seven[]
+ </p>
+ </body>
+</html>
+
+Corrections:
+ twox -> two
+ sixx -> six
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection04-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection04-input.html b/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection04-input.html
new file mode 100644
index 0000000..8de93eb
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection04-input.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="AutoCorrectTests.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ AutoCorrect_init();
+ PostponedActions_perform();
+
+ Cursor_insertCharacter("one");
+ Cursor_insertCharacter(" twox");
+ AutoCorrect_correctPrecedingWord(4,"two");
+ Cursor_insertCharacter(" three");
+ Cursor_insertCharacter(" fourx");
+ AutoCorrect_correctPrecedingWord(5,"four");
+ Cursor_insertCharacter(" five");
+ Cursor_insertCharacter(" sixx");
+ AutoCorrect_correctPrecedingWord(4,"six");
+ Cursor_insertCharacter(" seven");
+ PostponedActions_perform();
+ showSelection();
+
+ var text = findTextMatching("four");
+ Selection_set(text,0,text,0);
+
+ AutoCorrect_acceptCorrection();
+ PostponedActions_perform();
+
+ return showCorrections();
+}
+</script>
+</head>
+<body>
+<p>[]</p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection05-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection05-expected.html b/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection05-expected.html
new file mode 100644
index 0000000..00fdf45
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection05-expected.html
@@ -0,0 +1,17 @@
+<html>
+ <head>
+ </head>
+ <body>
+ <p>
+ one
+ <span class="uxwrite-autocorrect" original="twox">two</span>
+ three
+ <span class="uxwrite-autocorrect" original="fourx">four</span>
+ five six seven[]
+ </p>
+ </body>
+</html>
+
+Corrections:
+ twox -> two
+ fourx -> four
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection05-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection05-input.html b/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection05-input.html
new file mode 100644
index 0000000..6e724b7
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/acceptCorrection05-input.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="AutoCorrectTests.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ AutoCorrect_init();
+ PostponedActions_perform();
+
+ Cursor_insertCharacter("one");
+ Cursor_insertCharacter(" twox");
+ AutoCorrect_correctPrecedingWord(4,"two");
+ Cursor_insertCharacter(" three");
+ Cursor_insertCharacter(" fourx");
+ AutoCorrect_correctPrecedingWord(5,"four");
+ Cursor_insertCharacter(" five");
+ Cursor_insertCharacter(" sixx");
+ AutoCorrect_correctPrecedingWord(4,"six");
+ Cursor_insertCharacter(" seven");
+ PostponedActions_perform();
+ showSelection();
+
+ var text = findTextMatching("six");
+ Selection_set(text,0,text,0);
+
+ AutoCorrect_acceptCorrection();
+ PostponedActions_perform();
+
+ return showCorrections();
+}
+</script>
+</head>
+<body>
+<p>[]</p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/changeCorrection01-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/changeCorrection01-expected.html b/experiments/editorFramework/test/Layer0/autocorrect/changeCorrection01-expected.html
new file mode 100644
index 0000000..9d04b6a
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/changeCorrection01-expected.html
@@ -0,0 +1,14 @@
+<html>
+ <head>
+ </head>
+ <body>
+ <p>
+ one a three
+ <span class="uxwrite-autocorrect" original="fourx">four</span>
+ five[]
+ </p>
+ </body>
+</html>
+
+Corrections:
+ fourx -> four
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/changeCorrection01-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/changeCorrection01-input.html b/experiments/editorFramework/test/Layer0/autocorrect/changeCorrection01-input.html
new file mode 100644
index 0000000..45e7519
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/changeCorrection01-input.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="AutoCorrectTests.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ AutoCorrect_init();
+ PostponedActions_perform();
+
+ Cursor_insertCharacter("one");
+ Cursor_insertCharacter(" twox");
+ AutoCorrect_correctPrecedingWord(4,"two");
+ Cursor_insertCharacter(" three");
+ Cursor_insertCharacter(" fourx");
+ AutoCorrect_correctPrecedingWord(5,"four");
+ Cursor_insertCharacter(" five");
+ PostponedActions_perform();
+ showSelection();
+
+ var text = findTextMatching(/two/);
+ text.nodeValue = "a";
+ PostponedActions_perform();
+
+ return showCorrections();
+}
+</script>
+</head>
+<body>
+<p>[]</p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/changeCorrection02-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/changeCorrection02-expected.html b/experiments/editorFramework/test/Layer0/autocorrect/changeCorrection02-expected.html
new file mode 100644
index 0000000..717beb5
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/changeCorrection02-expected.html
@@ -0,0 +1,14 @@
+<html>
+ <head>
+ </head>
+ <body>
+ <p>
+ one
+ <span class="uxwrite-autocorrect" original="twox">two</span>
+ three a five[]
+ </p>
+ </body>
+</html>
+
+Corrections:
+ twox -> two
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/changeCorrection02-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/changeCorrection02-input.html b/experiments/editorFramework/test/Layer0/autocorrect/changeCorrection02-input.html
new file mode 100644
index 0000000..d3b1943
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/changeCorrection02-input.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="AutoCorrectTests.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ AutoCorrect_init();
+ PostponedActions_perform();
+
+ Cursor_insertCharacter("one");
+ Cursor_insertCharacter(" twox");
+ AutoCorrect_correctPrecedingWord(4,"two");
+ Cursor_insertCharacter(" three");
+ Cursor_insertCharacter(" fourx");
+ AutoCorrect_correctPrecedingWord(5,"four");
+ Cursor_insertCharacter(" five");
+ PostponedActions_perform();
+ showSelection();
+
+ var text = findTextMatching(/four/);
+ text.nodeValue = "a";
+ PostponedActions_perform();
+
+ return showCorrections();
+}
+</script>
+</head>
+<body>
+<p>[]</p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/correctPrecedingWord01-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/correctPrecedingWord01-expected.html b/experiments/editorFramework/test/Layer0/autocorrect/correctPrecedingWord01-expected.html
new file mode 100644
index 0000000..f8ac7aa
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/correctPrecedingWord01-expected.html
@@ -0,0 +1,17 @@
+<html>
+ <head>
+ </head>
+ <body>
+ <p>
+ one
+ <span class="uxwrite-autocorrect" original="twox">two</span>
+ three
+ <span class="uxwrite-autocorrect" original="fourx">four</span>
+ five[]
+ </p>
+ </body>
+</html>
+
+Corrections:
+ twox -> two
+ fourx -> four
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/correctPrecedingWord01-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/correctPrecedingWord01-input.html b/experiments/editorFramework/test/Layer0/autocorrect/correctPrecedingWord01-input.html
new file mode 100644
index 0000000..7bb437e
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/correctPrecedingWord01-input.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="AutoCorrectTests.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ AutoCorrect_init();
+ PostponedActions_perform();
+
+ Cursor_insertCharacter("one");
+ Cursor_insertCharacter(" twox");
+ AutoCorrect_correctPrecedingWord(4,"two");
+ Cursor_insertCharacter(" three");
+ Cursor_insertCharacter(" fourx");
+ AutoCorrect_correctPrecedingWord(5,"four");
+ Cursor_insertCharacter(" five");
+ PostponedActions_perform();
+ showSelection();
+
+ return showCorrections();
+}
+</script>
+</head>
+<body>
+<p>[]</p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/removeCorrection01-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/removeCorrection01-expected.html b/experiments/editorFramework/test/Layer0/autocorrect/removeCorrection01-expected.html
new file mode 100644
index 0000000..00dd985
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/removeCorrection01-expected.html
@@ -0,0 +1,15 @@
+<html>
+ <head>
+ </head>
+ <body>
+ <p>
+ one
+ three
+ <span class="uxwrite-autocorrect" original="fourx">four</span>
+ five[]
+ </p>
+ </body>
+</html>
+
+Corrections:
+ fourx -> four
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/removeCorrection01-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/removeCorrection01-input.html b/experiments/editorFramework/test/Layer0/autocorrect/removeCorrection01-input.html
new file mode 100644
index 0000000..929d768
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/removeCorrection01-input.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="AutoCorrectTests.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ AutoCorrect_init();
+ PostponedActions_perform();
+
+ Cursor_insertCharacter("one");
+ Cursor_insertCharacter(" twox");
+ AutoCorrect_correctPrecedingWord(4,"two");
+ Cursor_insertCharacter(" three");
+ Cursor_insertCharacter(" fourx");
+ AutoCorrect_correctPrecedingWord(5,"four");
+ Cursor_insertCharacter(" five");
+ PostponedActions_perform();
+ showSelection();
+
+ var text = findTextMatching(/two/);
+ DOM_deleteNode(text.parentNode);
+ PostponedActions_perform();
+
+ return showCorrections();
+}
+</script>
+</head>
+<body>
+<p>[]</p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/removeCorrection02-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/removeCorrection02-expected.html b/experiments/editorFramework/test/Layer0/autocorrect/removeCorrection02-expected.html
new file mode 100644
index 0000000..350dd7d
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/removeCorrection02-expected.html
@@ -0,0 +1,15 @@
+<html>
+ <head>
+ </head>
+ <body>
+ <p>
+ one
+ <span class="uxwrite-autocorrect" original="twox">two</span>
+ three
+ five[]
+ </p>
+ </body>
+</html>
+
+Corrections:
+ twox -> two
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/removeCorrection02-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/removeCorrection02-input.html b/experiments/editorFramework/test/Layer0/autocorrect/removeCorrection02-input.html
new file mode 100644
index 0000000..59ce3db
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/removeCorrection02-input.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="AutoCorrectTests.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ AutoCorrect_init();
+ PostponedActions_perform();
+
+ Cursor_insertCharacter("one");
+ Cursor_insertCharacter(" twox");
+ AutoCorrect_correctPrecedingWord(4,"two");
+ Cursor_insertCharacter(" three");
+ Cursor_insertCharacter(" fourx");
+ AutoCorrect_correctPrecedingWord(5,"four");
+ Cursor_insertCharacter(" five");
+ PostponedActions_perform();
+ showSelection();
+
+ var text = findTextMatching(/four/);
+ DOM_deleteNode(text.parentNode);
+ PostponedActions_perform();
+
+ return showCorrections();
+}
+</script>
+</head>
+<body>
+<p>[]</p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/removedSpan01-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/removedSpan01-expected.html b/experiments/editorFramework/test/Layer0/autocorrect/removedSpan01-expected.html
new file mode 100644
index 0000000..f56d240
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/removedSpan01-expected.html
@@ -0,0 +1,11 @@
+<html>
+ <head>
+ </head>
+ <body>
+ <p>the</p>
+ <p>
+ []
+ <br/>
+ </p>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/removedSpan01-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/removedSpan01-input.html b/experiments/editorFramework/test/Layer0/autocorrect/removedSpan01-input.html
new file mode 100644
index 0000000..4ce93b7
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/removedSpan01-input.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="AutoCorrectTests.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ AutoCorrect_init();
+ PostponedActions_perform();
+
+ Cursor_insertCharacter("teh");
+ AutoCorrect_correctPrecedingWord(3,"the");
+ Cursor_insertCharacter(" ");
+ PostponedActions_perform();
+ Cursor_deleteCharacter();
+ Cursor_enterPressed();
+ PostponedActions_perform();
+ showSelection();
+}
+</script>
+</head>
+<body>
+[]
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/removedSpan02-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/removedSpan02-expected.html b/experiments/editorFramework/test/Layer0/autocorrect/removedSpan02-expected.html
new file mode 100644
index 0000000..1815348
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/removedSpan02-expected.html
@@ -0,0 +1,7 @@
+<html>
+ <head>
+ </head>
+ <body>
+ <p>th[]</p>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/removedSpan02-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/removedSpan02-input.html b/experiments/editorFramework/test/Layer0/autocorrect/removedSpan02-input.html
new file mode 100644
index 0000000..9870e03
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/removedSpan02-input.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="AutoCorrectTests.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ AutoCorrect_init();
+ PostponedActions_perform();
+
+ Cursor_insertCharacter("teh");
+ AutoCorrect_correctPrecedingWord(3,"the");
+ Cursor_insertCharacter(" ");
+ PostponedActions_perform();
+ Cursor_deleteCharacter();
+ PostponedActions_perform();
+ Cursor_deleteCharacter();
+ PostponedActions_perform();
+ showSelection();
+}
+</script>
+</head>
+<body>
+[]
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/removedSpan03-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/removedSpan03-expected.html b/experiments/editorFramework/test/Layer0/autocorrect/removedSpan03-expected.html
new file mode 100644
index 0000000..b0c230d
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/removedSpan03-expected.html
@@ -0,0 +1,7 @@
+<html>
+ <head>
+ </head>
+ <body>
+ <p>thex[]</p>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/removedSpan03-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/removedSpan03-input.html b/experiments/editorFramework/test/Layer0/autocorrect/removedSpan03-input.html
new file mode 100644
index 0000000..71bcc2c
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/removedSpan03-input.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="AutoCorrectTests.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ AutoCorrect_init();
+ PostponedActions_perform();
+
+ Cursor_insertCharacter("teh");
+ AutoCorrect_correctPrecedingWord(3,"the");
+ Cursor_insertCharacter(" ");
+ PostponedActions_perform();
+ Cursor_deleteCharacter();
+ PostponedActions_perform();
+ Cursor_insertCharacter("x");
+ PostponedActions_perform();
+ showSelection();
+}
+</script>
+</head>
+<body>
+[]
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection-undo-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection-undo-expected.html b/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection-undo-expected.html
new file mode 100644
index 0000000..badefe7
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection-undo-expected.html
@@ -0,0 +1,50 @@
+<html>
+ <head>
+ </head>
+ <body>
+ ==================== Version 0 ====================
+ <body>
+ <p>
+ one
+ <span class="uxwrite-autocorrect" original="twox">two</span>
+ three
+ <span class="uxwrite-autocorrect" original="fourx">four</span>
+ five
+ <span class="uxwrite-autocorrect" original="sixx">six</span>
+ seven[]
+ </p>
+ </body>
+ ==================== Version 1 ====================
+ <body>
+ <p>
+ one
+ <span class="uxwrite-autocorrect" original="twox">two</span>
+ three
+ <span class="uxwrite-autocorrect" original="fourx">four</span>
+ five r1 seven[]
+ </p>
+ </body>
+ ==================== Version 2 ====================
+ <body>
+ <p>
+ one
+ <span class="uxwrite-autocorrect" original="twox">two</span>
+ three r2 five r1 seven[]
+ </p>
+ </body>
+ ==================== Version 3 ====================
+ <body>
+ <p>one r3 three r2 five r1 seven[]</p>
+ </body>
+ ===================================================
+ First undo to version 2: OK
+ First undo to version 1: OK
+ First undo to version 0: OK
+ Redo to version 1: OK
+ Redo to version 2: OK
+ Redo to version 3: OK
+ Second undo to version 2: OK
+ Second undo to version 1: OK
+ Second undo to version 0: OK
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection-undo-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection-undo-input.html b/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection-undo-input.html
new file mode 100644
index 0000000..e08e838
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection-undo-input.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="AutoCorrectTests.js"></script>
+<script src="../undo/UndoTests.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ AutoCorrect_init();
+ PostponedActions_perform();
+
+ Cursor_insertCharacter("one");
+ Cursor_insertCharacter(" twox");
+ AutoCorrect_correctPrecedingWord(4,"two");
+ Cursor_insertCharacter(" three");
+ Cursor_insertCharacter(" fourx");
+ AutoCorrect_correctPrecedingWord(5,"four");
+ Cursor_insertCharacter(" five");
+ Cursor_insertCharacter(" sixx");
+ AutoCorrect_correctPrecedingWord(4,"six");
+ Cursor_insertCharacter(" seven");
+ PostponedActions_perform();
+ showSelection();
+
+ UndoManager_clear();
+ var versions = new Array();
+ versions.push(DOM_cloneNode(document.body,true));
+ for (var i = 0; i < 3; i++) {
+ AutoCorrect_replaceCorrection("r"+(i+1));
+ PostponedActions_perform();
+ versions.push(DOM_cloneNode(document.body,true));
+ }
+
+ testUndo(versions,document.body);
+}
+</script>
+</head>
+<body>
+<p>[]</p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection01-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection01-expected.html b/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection01-expected.html
new file mode 100644
index 0000000..c253fcd
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection01-expected.html
@@ -0,0 +1,14 @@
+<html>
+ <head>
+ </head>
+ <body>
+ <p>
+ one
+ <span class="uxwrite-autocorrect" original="twox">two</span>
+ three A five[]
+ </p>
+ </body>
+</html>
+
+Corrections:
+ twox -> two
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection01-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection01-input.html b/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection01-input.html
new file mode 100644
index 0000000..04574d8
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection01-input.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="AutoCorrectTests.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ AutoCorrect_init();
+ PostponedActions_perform();
+
+ Cursor_insertCharacter("one");
+ Cursor_insertCharacter(" twox");
+ AutoCorrect_correctPrecedingWord(4,"two");
+ Cursor_insertCharacter(" three");
+ Cursor_insertCharacter(" fourx");
+ AutoCorrect_correctPrecedingWord(5,"four");
+ Cursor_insertCharacter(" five");
+ PostponedActions_perform();
+ showSelection();
+
+ AutoCorrect_replaceCorrection("A");
+ PostponedActions_perform();
+
+ return showCorrections();
+}
+</script>
+</head>
+<body>
+<p>[]</p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection02-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection02-expected.html b/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection02-expected.html
new file mode 100644
index 0000000..659ad6f
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection02-expected.html
@@ -0,0 +1,9 @@
+<html>
+ <head>
+ </head>
+ <body>
+ <p>one B three A five[]</p>
+ </body>
+</html>
+
+Corrections:
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection02-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection02-input.html b/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection02-input.html
new file mode 100644
index 0000000..d6fb6d0
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection02-input.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="AutoCorrectTests.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ AutoCorrect_init();
+ PostponedActions_perform();
+
+ Cursor_insertCharacter("one");
+ Cursor_insertCharacter(" twox");
+ AutoCorrect_correctPrecedingWord(4,"two");
+ Cursor_insertCharacter(" three");
+ Cursor_insertCharacter(" fourx");
+ AutoCorrect_correctPrecedingWord(5,"four");
+ Cursor_insertCharacter(" five");
+ PostponedActions_perform();
+ showSelection();
+
+ AutoCorrect_replaceCorrection("A");
+ AutoCorrect_replaceCorrection("B");
+ PostponedActions_perform();
+
+ return showCorrections();
+}
+</script>
+</head>
+<body>
+<p>[]</p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection03-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection03-expected.html b/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection03-expected.html
new file mode 100644
index 0000000..024b644
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection03-expected.html
@@ -0,0 +1,17 @@
+<html>
+ <head>
+ </head>
+ <body>
+ <p>
+ one A three
+ <span class="uxwrite-autocorrect" original="fourx">four</span>
+ five
+ <span class="uxwrite-autocorrect" original="sixx">six</span>
+ seven[]
+ </p>
+ </body>
+</html>
+
+Corrections:
+ fourx -> four
+ sixx -> six
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection03-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection03-input.html b/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection03-input.html
new file mode 100644
index 0000000..7e49201
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection03-input.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="AutoCorrectTests.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ AutoCorrect_init();
+ PostponedActions_perform();
+
+ Cursor_insertCharacter("one");
+ Cursor_insertCharacter(" twox");
+ AutoCorrect_correctPrecedingWord(4,"two");
+ Cursor_insertCharacter(" three");
+ Cursor_insertCharacter(" fourx");
+ AutoCorrect_correctPrecedingWord(5,"four");
+ Cursor_insertCharacter(" five");
+ Cursor_insertCharacter(" sixx");
+ AutoCorrect_correctPrecedingWord(4,"six");
+ Cursor_insertCharacter(" seven");
+ PostponedActions_perform();
+ showSelection();
+
+ var text = findTextMatching("two");
+ Selection_set(text,0,text,0);
+
+ AutoCorrect_replaceCorrection("A");
+ PostponedActions_perform();
+
+ return showCorrections();
+}
+</script>
+</head>
+<body>
+<p>[]</p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection04-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection04-expected.html b/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection04-expected.html
new file mode 100644
index 0000000..ebc4b54
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection04-expected.html
@@ -0,0 +1,17 @@
+<html>
+ <head>
+ </head>
+ <body>
+ <p>
+ one
+ <span class="uxwrite-autocorrect" original="twox">two</span>
+ three A five
+ <span class="uxwrite-autocorrect" original="sixx">six</span>
+ seven[]
+ </p>
+ </body>
+</html>
+
+Corrections:
+ twox -> two
+ sixx -> six
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection04-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection04-input.html b/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection04-input.html
new file mode 100644
index 0000000..9a47a03
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection04-input.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="AutoCorrectTests.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ AutoCorrect_init();
+ PostponedActions_perform();
+
+ Cursor_insertCharacter("one");
+ Cursor_insertCharacter(" twox");
+ AutoCorrect_correctPrecedingWord(4,"two");
+ Cursor_insertCharacter(" three");
+ Cursor_insertCharacter(" fourx");
+ AutoCorrect_correctPrecedingWord(5,"four");
+ Cursor_insertCharacter(" five");
+ Cursor_insertCharacter(" sixx");
+ AutoCorrect_correctPrecedingWord(4,"six");
+ Cursor_insertCharacter(" seven");
+ PostponedActions_perform();
+ showSelection();
+
+ var text = findTextMatching("four");
+ Selection_set(text,0,text,0);
+
+ AutoCorrect_replaceCorrection("A");
+ PostponedActions_perform();
+
+ return showCorrections();
+}
+</script>
+</head>
+<body>
+<p>[]</p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection05-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection05-expected.html b/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection05-expected.html
new file mode 100644
index 0000000..5650843
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection05-expected.html
@@ -0,0 +1,17 @@
+<html>
+ <head>
+ </head>
+ <body>
+ <p>
+ one
+ <span class="uxwrite-autocorrect" original="twox">two</span>
+ three
+ <span class="uxwrite-autocorrect" original="fourx">four</span>
+ five A seven[]
+ </p>
+ </body>
+</html>
+
+Corrections:
+ twox -> two
+ fourx -> four
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection05-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection05-input.html b/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection05-input.html
new file mode 100644
index 0000000..1d3b2ea
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/replaceCorrection05-input.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="AutoCorrectTests.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ AutoCorrect_init();
+ PostponedActions_perform();
+
+ Cursor_insertCharacter("one");
+ Cursor_insertCharacter(" twox");
+ AutoCorrect_correctPrecedingWord(4,"two");
+ Cursor_insertCharacter(" three");
+ Cursor_insertCharacter(" fourx");
+ AutoCorrect_correctPrecedingWord(5,"four");
+ Cursor_insertCharacter(" five");
+ Cursor_insertCharacter(" sixx");
+ AutoCorrect_correctPrecedingWord(4,"six");
+ Cursor_insertCharacter(" seven");
+ PostponedActions_perform();
+ showSelection();
+
+ var text = findTextMatching("six");
+ Selection_set(text,0,text,0);
+
+ AutoCorrect_replaceCorrection("A");
+ PostponedActions_perform();
+
+ return showCorrections();
+}
+</script>
+</head>
+<body>
+<p>[]</p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/undo01-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/undo01-expected.html b/experiments/editorFramework/test/Layer0/autocorrect/undo01-expected.html
new file mode 100644
index 0000000..f8ac7aa
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/undo01-expected.html
@@ -0,0 +1,17 @@
+<html>
+ <head>
+ </head>
+ <body>
+ <p>
+ one
+ <span class="uxwrite-autocorrect" original="twox">two</span>
+ three
+ <span class="uxwrite-autocorrect" original="fourx">four</span>
+ five[]
+ </p>
+ </body>
+</html>
+
+Corrections:
+ twox -> two
+ fourx -> four
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/undo01-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/undo01-input.html b/experiments/editorFramework/test/Layer0/autocorrect/undo01-input.html
new file mode 100644
index 0000000..35900a2
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/undo01-input.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="AutoCorrectTests.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ AutoCorrect_init();
+ PostponedActions_perform();
+
+ Cursor_insertCharacter("one");
+ Cursor_insertCharacter(" twox");
+ AutoCorrect_correctPrecedingWord(4,"two");
+ PostponedActions_perform();
+ Cursor_insertCharacter(" three");
+ Cursor_insertCharacter(" fourx");
+ AutoCorrect_correctPrecedingWord(5,"four");
+ PostponedActions_perform();
+ Cursor_insertCharacter(" five");
+
+ for (var i = 0; i < 0; i++) {
+ UndoManager_undo();
+ }
+
+ showSelection();
+
+ return showCorrections();
+}
+</script>
+</head>
+<body>
+<p>[]</p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/undo02-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/undo02-expected.html b/experiments/editorFramework/test/Layer0/autocorrect/undo02-expected.html
new file mode 100644
index 0000000..52d8d22
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/undo02-expected.html
@@ -0,0 +1,14 @@
+<html>
+ <head>
+ </head>
+ <body>
+ <p>
+ one
+ <span class="uxwrite-autocorrect" original="twox">two</span>
+ []
+ </p>
+ </body>
+</html>
+
+Corrections:
+ twox -> two
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/undo02-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/undo02-input.html b/experiments/editorFramework/test/Layer0/autocorrect/undo02-input.html
new file mode 100644
index 0000000..5dc1bc8
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/undo02-input.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="AutoCorrectTests.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ AutoCorrect_init();
+ PostponedActions_perform();
+
+ Cursor_insertCharacter("one");
+ Cursor_insertCharacter(" twox");
+ AutoCorrect_correctPrecedingWord(4,"two");
+ PostponedActions_perform();
+ Cursor_insertCharacter(" three");
+ Cursor_insertCharacter(" fourx");
+ AutoCorrect_correctPrecedingWord(5,"four");
+ PostponedActions_perform();
+ Cursor_insertCharacter(" five");
+
+ for (var i = 0; i < 3; i++) {
+ UndoManager_undo();
+ }
+
+ showSelection();
+
+ return showCorrections();
+}
+</script>
+</head>
+<body>
+<p>[]</p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/undo03-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/undo03-expected.html b/experiments/editorFramework/test/Layer0/autocorrect/undo03-expected.html
new file mode 100644
index 0000000..0280119
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/undo03-expected.html
@@ -0,0 +1,9 @@
+<html>
+ <head>
+ </head>
+ <body>
+ <p>one twox[]</p>
+ </body>
+</html>
+
+Corrections:
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/undo03-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/undo03-input.html b/experiments/editorFramework/test/Layer0/autocorrect/undo03-input.html
new file mode 100644
index 0000000..3e14c8d
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/undo03-input.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="AutoCorrectTests.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ AutoCorrect_init();
+ PostponedActions_perform();
+
+ Cursor_insertCharacter("one");
+ Cursor_insertCharacter(" twox");
+ AutoCorrect_correctPrecedingWord(4,"two");
+ PostponedActions_perform();
+ Cursor_insertCharacter(" three");
+ Cursor_insertCharacter(" fourx");
+ AutoCorrect_correctPrecedingWord(5,"four");
+ PostponedActions_perform();
+ Cursor_insertCharacter(" five");
+
+ for (var i = 0; i < 4; i++) {
+ UndoManager_undo();
+ }
+
+ showSelection();
+
+ return showCorrections();
+}
+</script>
+</head>
+<body>
+<p>[]</p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/undo04-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/undo04-expected.html b/experiments/editorFramework/test/Layer0/autocorrect/undo04-expected.html
new file mode 100644
index 0000000..f8ac7aa
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/undo04-expected.html
@@ -0,0 +1,17 @@
+<html>
+ <head>
+ </head>
+ <body>
+ <p>
+ one
+ <span class="uxwrite-autocorrect" original="twox">two</span>
+ three
+ <span class="uxwrite-autocorrect" original="fourx">four</span>
+ five[]
+ </p>
+ </body>
+</html>
+
+Corrections:
+ twox -> two
+ fourx -> four
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/undo04-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/undo04-input.html b/experiments/editorFramework/test/Layer0/autocorrect/undo04-input.html
new file mode 100644
index 0000000..84b9809
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/undo04-input.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="AutoCorrectTests.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ AutoCorrect_init();
+ PostponedActions_perform();
+
+ Cursor_insertCharacter("one");
+ Cursor_insertCharacter(" twox");
+ AutoCorrect_correctPrecedingWord(4,"two");
+ PostponedActions_perform();
+ Cursor_insertCharacter(" three");
+ Cursor_insertCharacter(" fourx");
+ AutoCorrect_correctPrecedingWord(5,"four");
+ PostponedActions_perform();
+ Cursor_insertCharacter(" five");
+
+ for (var i = 0; i < 4; i++) {
+ UndoManager_undo();
+ }
+ for (var i = 0; i < 4; i++) {
+ UndoManager_redo();
+ }
+
+ showSelection();
+
+ return showCorrections();
+}
+</script>
+</head>
+<body>
+<p>[]</p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/undo05-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/undo05-expected.html b/experiments/editorFramework/test/Layer0/autocorrect/undo05-expected.html
new file mode 100644
index 0000000..c664a24
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/undo05-expected.html
@@ -0,0 +1,52 @@
+<html>
+ <head>
+ </head>
+ <body>
+ ==================== Version 0 ====================
+ <p></p>
+ ==================== Version 1 ====================
+ <p>one twox</p>
+ ==================== Version 2 ====================
+ <p>
+ one
+ <span class="uxwrite-autocorrect" original="twox">two</span>
+ </p>
+ ==================== Version 3 ====================
+ <p>
+ one
+ <span class="uxwrite-autocorrect" original="twox">two</span>
+ three fourx
+ </p>
+ ==================== Version 4 ====================
+ <p>
+ one
+ <span class="uxwrite-autocorrect" original="twox">two</span>
+ three
+ <span class="uxwrite-autocorrect" original="fourx">four</span>
+ </p>
+ ==================== Version 5 ====================
+ <p>
+ one
+ <span class="uxwrite-autocorrect" original="twox">two</span>
+ three
+ <span class="uxwrite-autocorrect" original="fourx">four</span>
+ five
+ </p>
+ ===================================================
+ First undo to version 4: OK
+ First undo to version 3: OK
+ First undo to version 2: OK
+ First undo to version 1: OK
+ First undo to version 0: OK
+ Redo to version 1: OK
+ Redo to version 2: OK
+ Redo to version 3: OK
+ Redo to version 4: OK
+ Redo to version 5: OK
+ Second undo to version 4: OK
+ Second undo to version 3: OK
+ Second undo to version 2: OK
+ Second undo to version 1: OK
+ Second undo to version 0: OK
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/undo05-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/undo05-input.html b/experiments/editorFramework/test/Layer0/autocorrect/undo05-input.html
new file mode 100644
index 0000000..9acc3db
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/undo05-input.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="AutoCorrectTests.js"></script>
+<script src="../undo/UndoTests.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ AutoCorrect_init();
+ PostponedActions_perform();
+
+ UndoManager_clear();
+ var p = document.getElementsByTagName("P")[0];
+ var versions = new Array();
+ versions.push(DOM_cloneNode(p,true));
+ Cursor_insertCharacter("one");
+ Cursor_insertCharacter(" twox");
+ versions.push(DOM_cloneNode(p,true));
+ AutoCorrect_correctPrecedingWord(4,"two");
+ PostponedActions_perform();
+ versions.push(DOM_cloneNode(p,true));
+ Cursor_insertCharacter(" three");
+ Cursor_insertCharacter(" fourx");
+ versions.push(DOM_cloneNode(p,true));
+ AutoCorrect_correctPrecedingWord(5,"four");
+ PostponedActions_perform();
+ versions.push(DOM_cloneNode(p,true));
+ Cursor_insertCharacter(" five");
+ versions.push(DOM_cloneNode(p,true));
+
+ testUndo(versions,p);
+}
+</script>
+</head>
+<body>
+<p>[]</p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/undo06-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/undo06-expected.html b/experiments/editorFramework/test/Layer0/autocorrect/undo06-expected.html
new file mode 100644
index 0000000..1e48a4f
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/undo06-expected.html
@@ -0,0 +1,62 @@
+<html>
+ <head>
+ </head>
+ <body>
+ ==================== Version 0 ====================
+ <p></p>
+ ==================== Version 1 ====================
+ <p>one twox</p>
+ ==================== Version 2 ====================
+ <p>
+ one
+ <span class="uxwrite-autocorrect" original="twox">two</span>
+ </p>
+ ==================== Version 3 ====================
+ <p>
+ one
+ <span class="uxwrite-autocorrect" original="twox">two</span>
+ three fourx
+ </p>
+ ==================== Version 4 ====================
+ <p>
+ one
+ <span class="uxwrite-autocorrect" original="twox">two</span>
+ three
+ <span class="uxwrite-autocorrect" original="fourx">four</span>
+ </p>
+ ==================== Version 5 ====================
+ <p>
+ one
+ <span class="uxwrite-autocorrect" original="twox">two</span>
+ three
+ <span class="uxwrite-autocorrect" original="fourx">four</span>
+ five
+ </p>
+ ==================== Version 6 ====================
+ <p><br/></p>
+ ==================== Version 7 ====================
+ <p>one two three four five</p>
+ ===================================================
+ First undo to version 6: OK
+ First undo to version 5: OK
+ First undo to version 4: OK
+ First undo to version 3: OK
+ First undo to version 2: OK
+ First undo to version 1: OK
+ First undo to version 0: OK
+ Redo to version 1: OK
+ Redo to version 2: OK
+ Redo to version 3: OK
+ Redo to version 4: OK
+ Redo to version 5: OK
+ Redo to version 6: OK
+ Redo to version 7: OK
+ Second undo to version 6: OK
+ Second undo to version 5: OK
+ Second undo to version 4: OK
+ Second undo to version 3: OK
+ Second undo to version 2: OK
+ Second undo to version 1: OK
+ Second undo to version 0: OK
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/autocorrect/undo06-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/autocorrect/undo06-input.html b/experiments/editorFramework/test/Layer0/autocorrect/undo06-input.html
new file mode 100644
index 0000000..0a09004
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/autocorrect/undo06-input.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="AutoCorrectTests.js"></script>
+<script src="../undo/UndoTests.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ AutoCorrect_init();
+ PostponedActions_perform();
+
+ UndoManager_clear();
+ var versions = new Array();
+ var p = document.getElementsByTagName("P")[0];
+ versions.push(DOM_cloneNode(p,true));
+ Cursor_insertCharacter("one");
+ Cursor_insertCharacter(" twox");
+ versions.push(DOM_cloneNode(p,true));
+ AutoCorrect_correctPrecedingWord(4,"two");
+ PostponedActions_perform();
+ versions.push(DOM_cloneNode(p,true));
+ Cursor_insertCharacter(" three");
+ Cursor_insertCharacter(" fourx");
+ versions.push(DOM_cloneNode(p,true));
+ AutoCorrect_correctPrecedingWord(5,"four");
+ PostponedActions_perform();
+ versions.push(DOM_cloneNode(p,true));
+ Cursor_insertCharacter(" five");
+
+ Selection_set(p,0,p,p.childNodes.length);
+ versions.push(DOM_cloneNode(p,true));
+ var clip = Clipboard_cut();
+ versions.push(DOM_cloneNode(p,true));
+ Clipboard_pasteHTML(clip["text/html"]);
+ versions.push(DOM_cloneNode(p,true));
+
+ testUndo(versions,p);
+}
+</script>
+</head>
+<body>
+<p>[]</p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list01-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list01-expected.html b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list01-expected.html
new file mode 100644
index 0000000..3138070
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list01-expected.html
@@ -0,0 +1,16 @@
+<html>
+ <head>
+ <link href="changetracking.css" rel="stylesheet"/>
+ </head>
+ <body>
+ <ul>
+ <li>[one</li>
+ <li>three]</li>
+ </ul>
+ <ul>
+ <li>ONE</li>
+ <li><del>TWO</del></li>
+ <li>THREE</li>
+ </ul>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list01-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list01-input.html b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list01-input.html
new file mode 100644
index 0000000..bb27cb2
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list01-input.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="changetracking.css" rel="stylesheet"/>
+<script>
+function performTest()
+{
+ ChangeTracking_acceptSelectedChanges();
+ showSelection();
+}
+</script>
+</head>
+<body>
+ <ul>
+ <li>[one</li>
+ <li><del>two</del></li>
+ <li>three]</li>
+ </ul>
+ <ul>
+ <li>ONE</li>
+ <li><del>TWO</del></li>
+ <li>THREE</li>
+ </ul>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list02-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list02-expected.html b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list02-expected.html
new file mode 100644
index 0000000..18ac9e8
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list02-expected.html
@@ -0,0 +1,16 @@
+<html>
+ <head>
+ <link href="changetracking.css" rel="stylesheet"/>
+ </head>
+ <body>
+ <ul>
+ <li>one</li>
+ <li><del>two</del></li>
+ <li>three</li>
+ </ul>
+ <ul>
+ <li>[ONE</li>
+ <li>THREE]</li>
+ </ul>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list02-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list02-input.html b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list02-input.html
new file mode 100644
index 0000000..8cd021d
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list02-input.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="changetracking.css" rel="stylesheet"/>
+<script>
+function performTest()
+{
+ ChangeTracking_acceptSelectedChanges();
+ showSelection();
+}
+</script>
+</head>
+<body>
+ <ul>
+ <li>one</li>
+ <li><del>two</del></li>
+ <li>three</li>
+ </ul>
+ <ul>
+ <li>[ONE</li>
+ <li><del>TWO</del></li>
+ <li>THREE]</li>
+ </ul>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list03-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list03-expected.html b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list03-expected.html
new file mode 100644
index 0000000..dd80260
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list03-expected.html
@@ -0,0 +1,16 @@
+<html>
+ <head>
+ <link href="changetracking.css" rel="stylesheet"/>
+ </head>
+ <body>
+ <ul>
+ <li>one</li>
+ <li>[]three</li>
+ </ul>
+ <ul>
+ <li>ONE</li>
+ <li><del>TWO</del></li>
+ <li>THREE</li>
+ </ul>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list03-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list03-input.html b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list03-input.html
new file mode 100644
index 0000000..0059061
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list03-input.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="changetracking.css" rel="stylesheet"/>
+<script>
+function performTest()
+{
+ ChangeTracking_acceptSelectedChanges();
+ showSelection();
+}
+</script>
+</head>
+<body>
+ <ul>
+ <li>one</li>
+ <li><del>[]two</del></li>
+ <li>three</li>
+ </ul>
+ <ul>
+ <li>ONE</li>
+ <li><del>TWO</del></li>
+ <li>THREE</li>
+ </ul>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list04-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list04-expected.html b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list04-expected.html
new file mode 100644
index 0000000..862fec6
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list04-expected.html
@@ -0,0 +1,15 @@
+<html>
+ <head>
+ <link href="changetracking.css" rel="stylesheet"/>
+ </head>
+ <body>
+ <ul>
+ <li>[one</li>
+ <li>three</li>
+ </ul>
+ <ul>
+ <li>ONE</li>
+ <li>THREE]</li>
+ </ul>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list04-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list04-input.html b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list04-input.html
new file mode 100644
index 0000000..e466ec8
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list04-input.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="changetracking.css" rel="stylesheet"/>
+<script>
+function performTest()
+{
+ ChangeTracking_acceptSelectedChanges();
+ showSelection();
+}
+</script>
+</head>
+<body>
+ [<ul>
+ <li>one</li>
+ <li><del>two</del></li>
+ <li>three</li>
+ </ul>
+ <ul>
+ <li>ONE</li>
+ <li><del>TWO</del></li>
+ <li>THREE</li>
+ </ul>]
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list05-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list05-expected.html b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list05-expected.html
new file mode 100644
index 0000000..e23add4
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list05-expected.html
@@ -0,0 +1,16 @@
+<html>
+ <head>
+ <link href="changetracking.css" rel="stylesheet"/>
+ </head>
+ <body>
+ <ul>
+ <li>one</li>
+ <li>[]three</li>
+ </ul>
+ <ul>
+ <li>ONE</li>
+ <li><del><b><i>TWO</i></b></del></li>
+ <li>THREE</li>
+ </ul>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list05-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list05-input.html b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list05-input.html
new file mode 100644
index 0000000..84e6011
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list05-input.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="changetracking.css" rel="stylesheet"/>
+<script>
+function performTest()
+{
+ ChangeTracking_acceptSelectedChanges();
+ showSelection();
+}
+</script>
+</head>
+<body>
+ <ul>
+ <li>one</li>
+ <li><del><b><i>t[]wo</i></b></del></li>
+ <li>three</li>
+ </ul>
+ <ul>
+ <li>ONE</li>
+ <li><del><b><i>TWO</i></b></del></li>
+ <li>THREE</li>
+ </ul>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list06-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list06-expected.html b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list06-expected.html
new file mode 100644
index 0000000..9facef5
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list06-expected.html
@@ -0,0 +1,19 @@
+<html>
+ <head>
+ <link href="changetracking.css" rel="stylesheet"/>
+ </head>
+ <body>
+ <ul>
+ <li>one</li>
+ <li>[three]</li>
+ <li>five</li>
+ </ul>
+ <ul>
+ <li>ONE</li>
+ <li><del>TWO</del></li>
+ <li>THREE</li>
+ <li><del>FOUR</del></li>
+ <li>FIVE</li>
+ </ul>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list06-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list06-input.html b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list06-input.html
new file mode 100644
index 0000000..2ead4cf
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list06-input.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="changetracking.css" rel="stylesheet"/>
+<script>
+function performTest()
+{
+ ChangeTracking_acceptSelectedChanges();
+ showSelection();
+}
+</script>
+</head>
+<body>
+ <ul>
+ <li>one</li>
+ <li><del>t[wo</del></li>
+ <li>three</li>
+ <li><del>fo]ur</del></li>
+ <li>five</li>
+ </ul>
+ <ul>
+ <li>ONE</li>
+ <li><del>TWO</del></li>
+ <li>THREE</li>
+ <li><del>FOUR</del></li>
+ <li>FIVE</li>
+ </ul>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list07-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list07-expected.html b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list07-expected.html
new file mode 100644
index 0000000..2f4a21f
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list07-expected.html
@@ -0,0 +1,12 @@
+<html>
+ <head>
+ <link href="changetracking.css" rel="stylesheet"/>
+ </head>
+ <body>
+ <ul>
+ <li>[]ONE</li>
+ <li><del>TWO</del></li>
+ <li>THREE</li>
+ </ul>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list07-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list07-input.html b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list07-input.html
new file mode 100644
index 0000000..2c8f282
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list07-input.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="changetracking.css" rel="stylesheet"/>
+<script>
+function performTest()
+{
+ ChangeTracking_acceptSelectedChanges();
+ showSelection();
+}
+</script>
+</head>
+<body>
+ <ul>
+ <li><del>[one</del></li>
+ <li><del>two</del></li>
+ <li><del>three]</del></li>
+ </ul>
+ <ul>
+ <li>ONE</li>
+ <li><del>TWO</del></li>
+ <li>THREE</li>
+ </ul>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list08-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list08-expected.html b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list08-expected.html
new file mode 100644
index 0000000..2f4a21f
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list08-expected.html
@@ -0,0 +1,12 @@
+<html>
+ <head>
+ <link href="changetracking.css" rel="stylesheet"/>
+ </head>
+ <body>
+ <ul>
+ <li>[]ONE</li>
+ <li><del>TWO</del></li>
+ <li>THREE</li>
+ </ul>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list08-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list08-input.html b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list08-input.html
new file mode 100644
index 0000000..12050e3
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list08-input.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="changetracking.css" rel="stylesheet"/>
+<script>
+function performTest()
+{
+ ChangeTracking_acceptSelectedChanges();
+ showSelection();
+}
+</script>
+</head>
+<body>
+ [<ul>
+ <li><del>one</del></li>
+ <li><del>two</del></li>
+ <li><del>three</del></li>
+ </ul>]
+ <ul>
+ <li>ONE</li>
+ <li><del>TWO</del></li>
+ <li>THREE</li>
+ </ul>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list09-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list09-expected.html b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list09-expected.html
new file mode 100644
index 0000000..2974258
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list09-expected.html
@@ -0,0 +1,11 @@
+<html>
+ <head>
+ <link href="changetracking.css" rel="stylesheet"/>
+ </head>
+ <body>
+ <ul>
+ <li>[ONE</li>
+ <li>THREE]</li>
+ </ul>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list09-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list09-input.html b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list09-input.html
new file mode 100644
index 0000000..0feec5d
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/changetracking/acceptDel-list09-input.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="changetracking.css" rel="stylesheet"/>
+<script>
+function performTest()
+{
+ ChangeTracking_acceptSelectedChanges();
+ showSelection();
+}
+</script>
+</head>
+<body>
+ [<ul>
+ <li><del>one</del></li>
+ <li><del>two</del></li>
+ <li><del>three</del></li>
+ </ul>
+ <ul>
+ <li>ONE</li>
+ <li><del>TWO</del></li>
+ <li>THREE</li>
+ </ul>]
+</body>
+</html>