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:17 UTC

[10/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/range/cloneContents18-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/cloneContents18-input.html b/experiments/editorFramework/test/Layer0/range/cloneContents18-input.html
new file mode 100644
index 0000000..74545ac
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/cloneContents18-input.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    var selectionRange = Selection_get();
+    var clonedElements = Range_cloneContents(selectionRange);
+    Selection_clear();
+    DOM_deleteAllChildren(document.body);
+
+    for (var i = 0; i < clonedElements.length; i++)
+        DOM_appendChild(document.body,clonedElements[i]);
+}
+</script>
+</head>
+<body>
+[<p>Here <b><i><u>is some</u></i></b>] text</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/cloneContents19-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/cloneContents19-expected.html b/experiments/editorFramework/test/Layer0/range/cloneContents19-expected.html
new file mode 100644
index 0000000..838dc52
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/cloneContents19-expected.html
@@ -0,0 +1,9 @@
+<html>
+  <head></head>
+  <body>
+    <p>
+      <b><i><u>is some</u></i></b>
+      text
+    </p>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/cloneContents19-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/cloneContents19-input.html b/experiments/editorFramework/test/Layer0/range/cloneContents19-input.html
new file mode 100644
index 0000000..c170bc6
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/cloneContents19-input.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    var selectionRange = Selection_get();
+    var clonedElements = Range_cloneContents(selectionRange);
+    Selection_clear();
+    DOM_deleteAllChildren(document.body);
+
+    for (var i = 0; i < clonedElements.length; i++)
+        DOM_appendChild(document.body,clonedElements[i]);
+}
+</script>
+</head>
+<body>
+<p>Here [<b><i><u>is some</u></i></b> text</p>]
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/cloneContents20-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/cloneContents20-expected.html b/experiments/editorFramework/test/Layer0/range/cloneContents20-expected.html
new file mode 100644
index 0000000..74d757e
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/cloneContents20-expected.html
@@ -0,0 +1,7 @@
+<html>
+  <head></head>
+  <body>
+    <p>some text</p>
+    <p>And more text</p>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/cloneContents20-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/cloneContents20-input.html b/experiments/editorFramework/test/Layer0/range/cloneContents20-input.html
new file mode 100644
index 0000000..9e1d63b
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/cloneContents20-input.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    var selectionRange = Selection_get();
+    var clonedElements = Range_cloneContents(selectionRange);
+    Selection_clear();
+    DOM_deleteAllChildren(document.body);
+
+    for (var i = 0; i < clonedElements.length; i++)
+        DOM_appendChild(document.body,clonedElements[i]);
+}
+</script>
+</head>
+<body>
+<p>Here is [some text</p>
+<p>And more text] in another paragraph</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText01-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText01-expected.html b/experiments/editorFramework/test/Layer0/range/getText01-expected.html
new file mode 100644
index 0000000..f1aeccd
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText01-expected.html
@@ -0,0 +1 @@
+"Here is some text"

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText01-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText01-input.html b/experiments/editorFramework/test/Layer0/range/getText01-input.html
new file mode 100644
index 0000000..b3ca344
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText01-input.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    var range = Selection_get();
+    var text = Range_getText(range);
+    return JSON.stringify(text);
+}
+</script>
+</head>
+<body>
+<p>[Here is some text]</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText02-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText02-expected.html b/experiments/editorFramework/test/Layer0/range/getText02-expected.html
new file mode 100644
index 0000000..7dcad30
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText02-expected.html
@@ -0,0 +1 @@
+"is some"

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText02-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText02-input.html b/experiments/editorFramework/test/Layer0/range/getText02-input.html
new file mode 100644
index 0000000..57d00a1
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText02-input.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    var range = Selection_get();
+    var text = Range_getText(range);
+    return JSON.stringify(text);
+}
+</script>
+</head>
+<body>
+<p>Here [is some] text</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText03-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText03-expected.html b/experiments/editorFramework/test/Layer0/range/getText03-expected.html
new file mode 100644
index 0000000..1dfaab6
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText03-expected.html
@@ -0,0 +1 @@
+" is some "

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText03-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText03-input.html b/experiments/editorFramework/test/Layer0/range/getText03-input.html
new file mode 100644
index 0000000..5860eeb
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText03-input.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    var range = Selection_get();
+    var text = Range_getText(range);
+    return JSON.stringify(text);
+}
+</script>
+</head>
+<body>
+<p>Here[ is some ]text</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText04-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText04-expected.html b/experiments/editorFramework/test/Layer0/range/getText04-expected.html
new file mode 100644
index 0000000..bf9fd33
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText04-expected.html
@@ -0,0 +1 @@
+"Here is some text\nAnd some more"

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText04-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText04-input.html b/experiments/editorFramework/test/Layer0/range/getText04-input.html
new file mode 100644
index 0000000..2452223
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText04-input.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    var range = Selection_get();
+    var text = Range_getText(range);
+    return JSON.stringify(text);
+}
+</script>
+</head>
+<body>
+<p>[Here is some text</p>
+<p>And some more]</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText05-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText05-expected.html b/experiments/editorFramework/test/Layer0/range/getText05-expected.html
new file mode 100644
index 0000000..0d2c6ae
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText05-expected.html
@@ -0,0 +1 @@
+"text\nAnd some"

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText05-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText05-input.html b/experiments/editorFramework/test/Layer0/range/getText05-input.html
new file mode 100644
index 0000000..e15aadf
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText05-input.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    var range = Selection_get();
+    var text = Range_getText(range);
+    return JSON.stringify(text);
+}
+</script>
+</head>
+<body>
+<p>Here is some [text</p>
+<p>And some] more</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText06-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText06-expected.html b/experiments/editorFramework/test/Layer0/range/getText06-expected.html
new file mode 100644
index 0000000..81f9138
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText06-expected.html
@@ -0,0 +1 @@
+" text\nAnd some "

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText06-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText06-input.html b/experiments/editorFramework/test/Layer0/range/getText06-input.html
new file mode 100644
index 0000000..41f177e
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText06-input.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    var range = Selection_get();
+    var text = Range_getText(range);
+    return JSON.stringify(text);
+}
+</script>
+</head>
+<body>
+<p>Here is some[ text</p>
+<p>And some ]more</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText07-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText07-expected.html b/experiments/editorFramework/test/Layer0/range/getText07-expected.html
new file mode 100644
index 0000000..15b463a
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText07-expected.html
@@ -0,0 +1 @@
+"Here is some text\n"

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText07-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText07-input.html b/experiments/editorFramework/test/Layer0/range/getText07-input.html
new file mode 100644
index 0000000..e84e03e
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText07-input.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    var range = Selection_get();
+    var text = Range_getText(range);
+    return JSON.stringify(text);
+}
+</script>
+</head>
+<body>
+<p>[Here is some text</p>
+<p>]And some more</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText08-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText08-expected.html b/experiments/editorFramework/test/Layer0/range/getText08-expected.html
new file mode 100644
index 0000000..25af782
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText08-expected.html
@@ -0,0 +1 @@
+"\nAnd some more"

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText08-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText08-input.html b/experiments/editorFramework/test/Layer0/range/getText08-input.html
new file mode 100644
index 0000000..6c0580c
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText08-input.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    var range = Selection_get();
+    var text = Range_getText(range);
+    return JSON.stringify(text);
+}
+</script>
+</head>
+<body>
+<p>Here is some text[</p>
+<p>And some more]</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText09-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText09-expected.html b/experiments/editorFramework/test/Layer0/range/getText09-expected.html
new file mode 100644
index 0000000..bf9fd33
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText09-expected.html
@@ -0,0 +1 @@
+"Here is some text\nAnd some more"

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText09-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText09-input.html b/experiments/editorFramework/test/Layer0/range/getText09-input.html
new file mode 100644
index 0000000..9a655ee
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText09-input.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    var range = Selection_get();
+    var text = Range_getText(range);
+    return JSON.stringify(text);
+}
+</script>
+</head>
+<body>
+<p>[Here is some text</p>
+        
+<p>And some more]</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText10-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText10-expected.html b/experiments/editorFramework/test/Layer0/range/getText10-expected.html
new file mode 100644
index 0000000..b4e560c
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText10-expected.html
@@ -0,0 +1 @@
+"Here is some text\n x \nAnd some more"

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText10-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText10-input.html b/experiments/editorFramework/test/Layer0/range/getText10-input.html
new file mode 100644
index 0000000..7d865b9
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText10-input.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    var range = Selection_get();
+    var text = Range_getText(range);
+    return JSON.stringify(text);
+}
+</script>
+</head>
+<body>
+<p>[Here is some text</p>
+   x     
+<p>And some more]</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText11-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText11-expected.html b/experiments/editorFramework/test/Layer0/range/getText11-expected.html
new file mode 100644
index 0000000..bf9fd33
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText11-expected.html
@@ -0,0 +1 @@
+"Here is some text\nAnd some more"

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText11-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText11-input.html b/experiments/editorFramework/test/Layer0/range/getText11-input.html
new file mode 100644
index 0000000..8283d95
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText11-input.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    var range = Selection_get();
+    var text = Range_getText(range);
+    return JSON.stringify(text);
+}
+</script>
+</head>
+<body>
+<p><b><i>[Here is some text</i></b></p>
+<p><u><s>And some more]</s></u></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText12-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText12-expected.html b/experiments/editorFramework/test/Layer0/range/getText12-expected.html
new file mode 100644
index 0000000..15b463a
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText12-expected.html
@@ -0,0 +1 @@
+"Here is some text\n"

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText12-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText12-input.html b/experiments/editorFramework/test/Layer0/range/getText12-input.html
new file mode 100644
index 0000000..14b4fe8
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText12-input.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    var range = Selection_get();
+    var text = Range_getText(range);
+    return JSON.stringify(text);
+}
+</script>
+</head>
+<body>
+<p><b><i>[Here is some text</i></b></p>
+<p><u><s>]And some more</s></u></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText13-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText13-expected.html b/experiments/editorFramework/test/Layer0/range/getText13-expected.html
new file mode 100644
index 0000000..25af782
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText13-expected.html
@@ -0,0 +1 @@
+"\nAnd some more"

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText13-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText13-input.html b/experiments/editorFramework/test/Layer0/range/getText13-input.html
new file mode 100644
index 0000000..ed462dc
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText13-input.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    var range = Selection_get();
+    var text = Range_getText(range);
+    return JSON.stringify(text);
+}
+</script>
+</head>
+<body>
+<p><b><i>Here is some text[</i></b></p>
+<p><u><s>And some more]</s></u></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText14-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText14-expected.html b/experiments/editorFramework/test/Layer0/range/getText14-expected.html
new file mode 100644
index 0000000..063ee22
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText14-expected.html
@@ -0,0 +1 @@
+"Here is some text\nAnd some more\nNow the final paragraph"

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText14-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText14-input.html b/experiments/editorFramework/test/Layer0/range/getText14-input.html
new file mode 100644
index 0000000..7d866a1
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText14-input.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    var range = Selection_get();
+    var text = Range_getText(range);
+    return JSON.stringify(text);
+}
+</script>
+</head>
+<body>
+<p>[Here is some text</p>
+<p>And some more</p>
+<p>Now the final paragraph]</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText15-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText15-expected.html b/experiments/editorFramework/test/Layer0/range/getText15-expected.html
new file mode 100644
index 0000000..a443d62
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText15-expected.html
@@ -0,0 +1 @@
+"Here is some text\nAnd some more\n"

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText15-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText15-input.html b/experiments/editorFramework/test/Layer0/range/getText15-input.html
new file mode 100644
index 0000000..673baf9
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText15-input.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    var range = Selection_get();
+    var text = Range_getText(range);
+    return JSON.stringify(text);
+}
+</script>
+</head>
+<body>
+<p>[Here is some text</p>
+<p>And some more</p>
+<p>]Now the final paragraph</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText16-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText16-expected.html b/experiments/editorFramework/test/Layer0/range/getText16-expected.html
new file mode 100644
index 0000000..6a891e8
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText16-expected.html
@@ -0,0 +1 @@
+"\nAnd some more\nNow the final paragraph"

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText16-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText16-input.html b/experiments/editorFramework/test/Layer0/range/getText16-input.html
new file mode 100644
index 0000000..7e03b4d
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText16-input.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    var range = Selection_get();
+    var text = Range_getText(range);
+    return JSON.stringify(text);
+}
+</script>
+</head>
+<body>
+<p>Here is some text[</p>
+<p>And some more</p>
+<p>Now the final paragraph]</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText17-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText17-expected.html b/experiments/editorFramework/test/Layer0/range/getText17-expected.html
new file mode 100644
index 0000000..8e63e56
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText17-expected.html
@@ -0,0 +1 @@
+"some text\nAnd some more\nNow the final paragraph"

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText17-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText17-input.html b/experiments/editorFramework/test/Layer0/range/getText17-input.html
new file mode 100644
index 0000000..17fa4ef
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText17-input.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    var range = Selection_get();
+    var text = Range_getText(range);
+    return JSON.stringify(text);
+}
+</script>
+</head>
+<body>
+<p>Here is [some text</p>
+<p>And some more</p>
+<p>Now the final paragraph]</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText18-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText18-expected.html b/experiments/editorFramework/test/Layer0/range/getText18-expected.html
new file mode 100644
index 0000000..0a4b29e
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText18-expected.html
@@ -0,0 +1 @@
+"Here is some text\nAnd some more\nNow the final"

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText18-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText18-input.html b/experiments/editorFramework/test/Layer0/range/getText18-input.html
new file mode 100644
index 0000000..c9a4625
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText18-input.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    var range = Selection_get();
+    var text = Range_getText(range);
+    return JSON.stringify(text);
+}
+</script>
+</head>
+<body>
+<p>[Here is some text</p>
+<p>And some more</p>
+<p>Now the final] paragraph</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText19-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText19-expected.html b/experiments/editorFramework/test/Layer0/range/getText19-expected.html
new file mode 100644
index 0000000..2de0c30
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText19-expected.html
@@ -0,0 +1 @@
+"some text\nAnd some more\nNow the final"

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText19-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText19-input.html b/experiments/editorFramework/test/Layer0/range/getText19-input.html
new file mode 100644
index 0000000..35a988a
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText19-input.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    var range = Selection_get();
+    var text = Range_getText(range);
+    return JSON.stringify(text);
+}
+</script>
+</head>
+<body>
+<p>Here is [some text</p>
+<p>And some more</p>
+<p>Now the final] paragraph</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText20-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText20-expected.html b/experiments/editorFramework/test/Layer0/range/getText20-expected.html
new file mode 100644
index 0000000..25f009d
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText20-expected.html
@@ -0,0 +1 @@
+"some text\none two \nAnd some more\nthree \nNow the final"

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText20-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText20-input.html b/experiments/editorFramework/test/Layer0/range/getText20-input.html
new file mode 100644
index 0000000..d52006d
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText20-input.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    var range = Selection_get();
+    var text = Range_getText(range);
+    return JSON.stringify(text);
+}
+</script>
+</head>
+<body>
+<p>Here is [some text</p>
+
+  <span>one</span>
+  <span>two</span>
+
+<p>And some more</p>
+
+  <span>three</span>
+
+<p>Now the final] paragraph</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText21-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText21-expected.html b/experiments/editorFramework/test/Layer0/range/getText21-expected.html
new file mode 100644
index 0000000..8028402
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText21-expected.html
@@ -0,0 +1,6 @@
+At offset 0: ""
+At offset 1: ""
+At offset 2: ""
+At offset 3: ""
+At offset 4: ""
+At offset 5: ""

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/getText21-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/getText21-input.html b/experiments/editorFramework/test/Layer0/range/getText21-input.html
new file mode 100644
index 0000000..a4752d5
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/getText21-input.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    var p = document.getElementsByTagName("P")[0];
+    var output = new Array();
+    for (var i = 0; i <= p.childNodes.length; i++) {
+        var range = new Range(p,i,p,i);
+        output.push("At offset "+i+": "+JSON.stringify(Range_getText(range)));
+    }
+    return output.join("\n");
+}
+</script>
+</head>
+<body>
+<p>One <b>two</b> three <i>four</i> five</p>
+<p>Here is some text</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/rangeHasContent01-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/rangeHasContent01-expected.html b/experiments/editorFramework/test/Layer0/range/rangeHasContent01-expected.html
new file mode 100644
index 0000000..27ba77d
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/rangeHasContent01-expected.html
@@ -0,0 +1 @@
+true

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/rangeHasContent01-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/rangeHasContent01-input.html b/experiments/editorFramework/test/Layer0/range/rangeHasContent01-input.html
new file mode 100644
index 0000000..b0786a7
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/rangeHasContent01-input.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    var range = Selection_get();
+    return ""+Range_hasContent(range);
+}
+</script>
+</head>
+<body>
+<p>[This is a test]</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/rangeHasContent02-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/rangeHasContent02-expected.html b/experiments/editorFramework/test/Layer0/range/rangeHasContent02-expected.html
new file mode 100644
index 0000000..27ba77d
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/rangeHasContent02-expected.html
@@ -0,0 +1 @@
+true

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/rangeHasContent02-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/rangeHasContent02-input.html b/experiments/editorFramework/test/Layer0/range/rangeHasContent02-input.html
new file mode 100644
index 0000000..a72791a
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/rangeHasContent02-input.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    var range = Selection_get();
+    return ""+Range_hasContent(range);
+}
+</script>
+</head>
+<body>
+<p>This is [a] test</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/rangeHasContent03-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/rangeHasContent03-expected.html b/experiments/editorFramework/test/Layer0/range/rangeHasContent03-expected.html
new file mode 100644
index 0000000..c508d53
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/rangeHasContent03-expected.html
@@ -0,0 +1 @@
+false

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/rangeHasContent03-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/rangeHasContent03-input.html b/experiments/editorFramework/test/Layer0/range/rangeHasContent03-input.html
new file mode 100644
index 0000000..17ab443
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/rangeHasContent03-input.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    var range = Selection_get();
+    return ""+Range_hasContent(range);
+}
+</script>
+</head>
+<body>
+<p>This is a[ ]test</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/rangeHasContent04-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/rangeHasContent04-expected.html b/experiments/editorFramework/test/Layer0/range/rangeHasContent04-expected.html
new file mode 100644
index 0000000..27ba77d
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/rangeHasContent04-expected.html
@@ -0,0 +1 @@
+true

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/rangeHasContent04-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/rangeHasContent04-input.html b/experiments/editorFramework/test/Layer0/range/rangeHasContent04-input.html
new file mode 100644
index 0000000..329cf1f
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/rangeHasContent04-input.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    var range = Selection_get();
+    return ""+Range_hasContent(range);
+}
+</script>
+</head>
+<body>
+<p><b>This [is   </b><b>   a] test</b></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/rangeHasContent05-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/rangeHasContent05-expected.html b/experiments/editorFramework/test/Layer0/range/rangeHasContent05-expected.html
new file mode 100644
index 0000000..27ba77d
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/rangeHasContent05-expected.html
@@ -0,0 +1 @@
+true

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/rangeHasContent05-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/rangeHasContent05-input.html b/experiments/editorFramework/test/Layer0/range/rangeHasContent05-input.html
new file mode 100644
index 0000000..c4d3c18
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/rangeHasContent05-input.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    var range = Selection_get();
+    return ""+Range_hasContent(range);
+}
+</script>
+</head>
+<body>
+<p><b>This is[   </b><b>   a] test</b></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/rangeHasContent06-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/rangeHasContent06-expected.html b/experiments/editorFramework/test/Layer0/range/rangeHasContent06-expected.html
new file mode 100644
index 0000000..27ba77d
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/rangeHasContent06-expected.html
@@ -0,0 +1 @@
+true

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/rangeHasContent06-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/rangeHasContent06-input.html b/experiments/editorFramework/test/Layer0/range/rangeHasContent06-input.html
new file mode 100644
index 0000000..7a30453
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/rangeHasContent06-input.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    var range = Selection_get();
+    return ""+Range_hasContent(range);
+}
+</script>
+</head>
+<body>
+<p><b>This [is   </b><b>   ]a test</b></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/rangeHasContent07-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/rangeHasContent07-expected.html b/experiments/editorFramework/test/Layer0/range/rangeHasContent07-expected.html
new file mode 100644
index 0000000..c508d53
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/rangeHasContent07-expected.html
@@ -0,0 +1 @@
+false

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/range/rangeHasContent07-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/range/rangeHasContent07-input.html b/experiments/editorFramework/test/Layer0/range/rangeHasContent07-input.html
new file mode 100644
index 0000000..e1800ef
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/range/rangeHasContent07-input.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    var range = Selection_get();
+    return ""+Range_hasContent(range);
+}
+</script>
+</head>
+<body>
+<p><b>This is[   </b><b>   ]a test</b></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/ScanTests.js
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/ScanTests.js b/experiments/editorFramework/test/Layer0/scan/ScanTests.js
new file mode 100644
index 0000000..15fb875
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/ScanTests.js
@@ -0,0 +1,34 @@
+// 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 testNext()
+{
+    var result = new Array();
+    Scan_reset();
+    var index = 0;
+    while (true) {
+        var paragraph = Scan_next();
+        if (paragraph == null)
+            break;
+        if (paragraph.sectionId != null)
+            result.push(index+" ("+paragraph.sectionId+"): "+JSON.stringify(paragraph.text));
+        else
+            result.push(index+": "+JSON.stringify(paragraph.text));
+        index++;
+    }
+    return result.join("\n");
+}

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/next01-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/next01-expected.html b/experiments/editorFramework/test/Layer0/scan/next01-expected.html
new file mode 100644
index 0000000..fab096d
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/next01-expected.html
@@ -0,0 +1,4 @@
+0: "Paragraph 1"
+1: "Paragraph 2"
+2: "Paragraph 3"
+3: "Paragraph 4"

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/next01-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/next01-input.html b/experiments/editorFramework/test/Layer0/scan/next01-input.html
new file mode 100644
index 0000000..f18246d
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/next01-input.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="ScanTests.js"></script>
+<script>
+function performTest()
+{
+    return testNext();
+}
+</script>
+</head>
+<body>
+<p>Paragraph 1</p>
+<p>Paragraph 2</p>
+<p>Paragraph 3</p>
+<p>Paragraph 4</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/next02-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/next02-expected.html b/experiments/editorFramework/test/Layer0/scan/next02-expected.html
new file mode 100644
index 0000000..fab096d
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/next02-expected.html
@@ -0,0 +1,4 @@
+0: "Paragraph 1"
+1: "Paragraph 2"
+2: "Paragraph 3"
+3: "Paragraph 4"

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/next02-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/next02-input.html b/experiments/editorFramework/test/Layer0/scan/next02-input.html
new file mode 100644
index 0000000..706ef07
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/next02-input.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="ScanTests.js"></script>
+<script>
+function performTest()
+{
+    return testNext();
+}
+</script>
+</head>
+<body>
+
+<p>Paragraph 1</p>
+
+<p>Paragraph 2</p>
+
+<p>Paragraph 3</p>
+
+<p>Paragraph 4</p>
+
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/next03-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/next03-expected.html b/experiments/editorFramework/test/Layer0/scan/next03-expected.html
new file mode 100644
index 0000000..7d6e3e5
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/next03-expected.html
@@ -0,0 +1,7 @@
+0: "Paragraph 1"
+1: "\n\none\n\n"
+2: "Paragraph 2"
+3: "\n\none\ntwo\n\n"
+4: "Paragraph 3"
+5: "\n\none\ntwo\nthree\n\n"
+6: "Paragraph 4"

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/next03-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/next03-input.html b/experiments/editorFramework/test/Layer0/scan/next03-input.html
new file mode 100644
index 0000000..e6cc426
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/next03-input.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="ScanTests.js"></script>
+<script>
+function performTest()
+{
+    return testNext();
+}
+</script>
+</head>
+<body>
+
+<p>Paragraph 1</p>
+
+one
+
+<p>Paragraph 2</p>
+
+<b>one</b>
+two
+
+<p>Paragraph 3</p>
+
+<b>one</b>
+two
+<i>three</i>
+
+<p>Paragraph 4</p>
+
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/next04-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/next04-expected.html b/experiments/editorFramework/test/Layer0/scan/next04-expected.html
new file mode 100644
index 0000000..57f32de
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/next04-expected.html
@@ -0,0 +1,5 @@
+0: "\n\nBefore\n\n"
+1: "Item 1"
+2: "Item 2"
+3: "Item 3"
+4: "\n\nAfter\n\n\n\n"

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/next04-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/next04-input.html b/experiments/editorFramework/test/Layer0/scan/next04-input.html
new file mode 100644
index 0000000..c09a938
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/next04-input.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="ScanTests.js"></script>
+<script>
+function performTest()
+{
+    return testNext();
+}
+</script>
+</head>
+<body>
+
+Before
+
+<ul>
+  <li>Item 1</li>
+  <li>Item 2</li>
+  <li>Item 3</li>
+</ul>
+
+After
+
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/next05-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/next05-expected.html b/experiments/editorFramework/test/Layer0/scan/next05-expected.html
new file mode 100644
index 0000000..182255b
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/next05-expected.html
@@ -0,0 +1,7 @@
+0: "\n\nBefore\n\n"
+1: "Cell 1,1"
+2: "Cell 1,2"
+3: "Cell 2,1"
+4: "Cell 2,2"
+5: "Table caption"
+6: "\n\nAfter\n\n\n\n"

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/next05-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/next05-input.html b/experiments/editorFramework/test/Layer0/scan/next05-input.html
new file mode 100644
index 0000000..b8b2bf0
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/next05-input.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="ScanTests.js"></script>
+<script>
+function performTest()
+{
+    return testNext();
+}
+</script>
+</head>
+<body>
+
+Before
+
+<table>
+  <caption>Table caption</caption>
+  <tr>
+    <td>Cell 1,1</td>
+  </tr>
+  <tr>
+    <td>Cell 1,2</td>
+  </tr>
+  <tr>
+    <td>Cell 2,1</td>
+  </tr>
+  <tr>
+    <td>Cell 2,2</td>
+  </tr>
+</table>
+
+After
+
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/next06-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/next06-expected.html b/experiments/editorFramework/test/Layer0/scan/next06-expected.html
new file mode 100644
index 0000000..0af6556
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/next06-expected.html
@@ -0,0 +1,3 @@
+0: "\n\nBefore\n\n"
+1: "Figure caption"
+2: "\n\nAfter\n\n\n\n"

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/next06-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/next06-input.html b/experiments/editorFramework/test/Layer0/scan/next06-input.html
new file mode 100644
index 0000000..272c2c9
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/next06-input.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="ScanTests.js"></script>
+<script>
+function performTest()
+{
+    return testNext();
+}
+</script>
+</head>
+<body>
+
+Before
+
+<figure>
+  <img src="../figures/nothing.png">
+  <figcaption>Figure caption</figcaption>
+</figure>
+
+After
+
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/next07-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/next07-expected.html b/experiments/editorFramework/test/Layer0/scan/next07-expected.html
new file mode 100644
index 0000000..0df7a06
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/next07-expected.html
@@ -0,0 +1,4 @@
+0 (item1): "Section 1"
+1: "Content 1"
+2 (item2): "Section 2"
+3: "Content 2"

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/next07-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/next07-input.html b/experiments/editorFramework/test/Layer0/scan/next07-input.html
new file mode 100644
index 0000000..26dd1c6
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/next07-input.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="ScanTests.js"></script>
+<script>
+function performTest()
+{
+    return testNext();
+}
+</script>
+</head>
+<body>
+<h1 id="item1">Section 1</h1>
+<p>Content 1</p>
+<h1 id="item2">Section 2</h1>
+<p>Content 2</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/replaceMatch01-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/replaceMatch01-expected.html b/experiments/editorFramework/test/Layer0/scan/replaceMatch01-expected.html
new file mode 100644
index 0000000..a058d93
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/replaceMatch01-expected.html
@@ -0,0 +1,10 @@
+<html>
+  <head>
+    <link href="../generic.css" rel="stylesheet"/>
+  </head>
+  <body>
+    <p>FIRST quick brown</p>
+    <p>fox SECOND over</p>
+    <p>the lazy THIRD</p>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/replaceMatch01-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/replaceMatch01-input.html b/experiments/editorFramework/test/Layer0/scan/replaceMatch01-input.html
new file mode 100644
index 0000000..a7543fc
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/replaceMatch01-input.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script src="ScanTests.js"></script>
+<script>
+function performTest()
+{
+    Scan_reset();
+    Scan_next();
+    var id1 = Scan_addMatch(0,3);
+    Scan_showMatch(id1);
+    Scan_next();
+    var id2 = Scan_addMatch(4,9);
+    Scan_showMatch(id2);
+    Scan_next();
+    var id3 = Scan_addMatch(9,12);
+    Scan_showMatch(id3);
+
+    Scan_replaceMatch(id1,"FIRST");
+    Scan_replaceMatch(id2,"SECOND");
+    Scan_replaceMatch(id3,"THIRD");
+}
+</script>
+</head>
+<body>
+<p>The quick brown</p>
+<p>fox jumps over</p>
+<p>the lazy dog</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/replaceMatch02-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/replaceMatch02-expected.html b/experiments/editorFramework/test/Layer0/scan/replaceMatch02-expected.html
new file mode 100644
index 0000000..20c6760
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/replaceMatch02-expected.html
@@ -0,0 +1,10 @@
+<html>
+  <head>
+    <link href="../generic.css" rel="stylesheet"/>
+  </head>
+  <body>
+    <p>FIRST quick SECOND</p>
+    <p>THIRD jumps FOURTH</p>
+    <p>FIFTH lazy SIXTH</p>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/replaceMatch02-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/replaceMatch02-input.html b/experiments/editorFramework/test/Layer0/scan/replaceMatch02-input.html
new file mode 100644
index 0000000..46f4412
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/replaceMatch02-input.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script src="ScanTests.js"></script>
+<script>
+function performTest()
+{
+    Scan_reset();
+    Scan_next();
+    var id1 = Scan_addMatch(0,3);
+    var id2 = Scan_addMatch(10,15);
+    Scan_showMatch(id1);
+    Scan_showMatch(id2);
+
+    Scan_next();
+    var id3 = Scan_addMatch(0,3);
+    var id4 = Scan_addMatch(10,14);
+    Scan_showMatch(id3);
+    Scan_showMatch(id4);
+
+    Scan_next();
+    var id5 = Scan_addMatch(0,3);
+    var id6 = Scan_addMatch(9,12);
+    Scan_showMatch(id5);
+    Scan_showMatch(id6);
+
+    Scan_replaceMatch(id1,"FIRST");
+    Scan_replaceMatch(id2,"SECOND");
+    Scan_replaceMatch(id3,"THIRD");
+    Scan_replaceMatch(id4,"FOURTH");
+    Scan_replaceMatch(id5,"FIFTH");
+    Scan_replaceMatch(id6,"SIXTH");
+}
+</script>
+</head>
+<body>
+<p>The quick brown</p>
+<p>fox jumps over</p>
+<p>the lazy dog</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/replaceMatch03-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/replaceMatch03-expected.html b/experiments/editorFramework/test/Layer0/scan/replaceMatch03-expected.html
new file mode 100644
index 0000000..f3e8b8d
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/replaceMatch03-expected.html
@@ -0,0 +1,20 @@
+<html>
+  <head>
+    <link href="../generic.css" rel="stylesheet"/>
+  </head>
+  <body>
+    <p>
+      <u>FIRST</u>
+      quick brown
+    </p>
+    <p>
+      fox
+      <u>SECOND</u>
+      over
+    </p>
+    <p>
+      the lazy
+      <u>THIRD</u>
+    </p>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/replaceMatch03-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/replaceMatch03-input.html b/experiments/editorFramework/test/Layer0/scan/replaceMatch03-input.html
new file mode 100644
index 0000000..461ba78
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/replaceMatch03-input.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script src="ScanTests.js"></script>
+<script>
+function performTest()
+{
+    Scan_reset();
+    Scan_next();
+    var id1 = Scan_addMatch(0,3);
+    Scan_showMatch(id1);
+    Scan_next();
+    var id2 = Scan_addMatch(4,9);
+    Scan_showMatch(id2);
+    Scan_next();
+    var id3 = Scan_addMatch(9,12);
+    Scan_showMatch(id3);
+
+    Scan_replaceMatch(id1,"FIRST");
+    Scan_replaceMatch(id2,"SECOND");
+    Scan_replaceMatch(id3,"THIRD");
+}
+</script>
+</head>
+<body>
+<p><u>The</u> quick brown</p>
+<p>fox <u>jumps</u> over</p>
+<p>the lazy <u>dog</u></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/replaceMatch04-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/replaceMatch04-expected.html b/experiments/editorFramework/test/Layer0/scan/replaceMatch04-expected.html
new file mode 100644
index 0000000..29cd44c
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/replaceMatch04-expected.html
@@ -0,0 +1,16 @@
+<html>
+  <head>
+    <link href="../generic.css" rel="stylesheet"/>
+  </head>
+  <body>
+    <p>
+      <u>FIRST quick</u>
+      brown
+    </p>
+    <p><u>fox SECOND over</u></p>
+    <p>
+      the
+      <u>lazy THIRD</u>
+    </p>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/replaceMatch04-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/replaceMatch04-input.html b/experiments/editorFramework/test/Layer0/scan/replaceMatch04-input.html
new file mode 100644
index 0000000..3b50989
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/replaceMatch04-input.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script src="ScanTests.js"></script>
+<script>
+function performTest()
+{
+    Scan_reset();
+    Scan_next();
+    var id1 = Scan_addMatch(0,3);
+    Scan_showMatch(id1);
+    Scan_next();
+    var id2 = Scan_addMatch(4,9);
+    Scan_showMatch(id2);
+    Scan_next();
+    var id3 = Scan_addMatch(9,12);
+    Scan_showMatch(id3);
+
+    Scan_replaceMatch(id1,"FIRST");
+    Scan_replaceMatch(id2,"SECOND");
+    Scan_replaceMatch(id3,"THIRD");
+}
+</script>
+</head>
+<body>
+<p><u>The quick</u> brown</p>
+<p><u>fox jumps over</u></p>
+<p>the <u>lazy dog</u></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/replaceMatch05-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/replaceMatch05-expected.html b/experiments/editorFramework/test/Layer0/scan/replaceMatch05-expected.html
new file mode 100644
index 0000000..eecf8a4
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/replaceMatch05-expected.html
@@ -0,0 +1,13 @@
+<html>
+  <head>
+    <link href="../generic.css" rel="stylesheet"/>
+  </head>
+  <body>
+    <p>
+      <u>FIRST</u>
+      quick brown
+    </p>
+    <p>fox SECOND over</p>
+    <p>the lazy THIRD</p>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/replaceMatch05-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/replaceMatch05-input.html b/experiments/editorFramework/test/Layer0/scan/replaceMatch05-input.html
new file mode 100644
index 0000000..1ee73ab
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/replaceMatch05-input.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script src="ScanTests.js"></script>
+<script>
+function performTest()
+{
+    Scan_reset();
+    Scan_next();
+    var id1 = Scan_addMatch(0,3);
+    Scan_showMatch(id1);
+    Scan_next();
+    var id2 = Scan_addMatch(4,9);
+    Scan_showMatch(id2);
+    Scan_next();
+    var id3 = Scan_addMatch(9,12);
+    Scan_showMatch(id3);
+
+    Scan_replaceMatch(id1,"FIRST");
+    Scan_replaceMatch(id2,"SECOND");
+    Scan_replaceMatch(id3,"THIRD");
+}
+</script>
+</head>
+<body>
+<p><u>Th</u>e quick brown</p>
+<p>fox j<u>ump</u>s over</p>
+<p>the lazy d<u>og</u></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/showMatch01-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/showMatch01-expected.html b/experiments/editorFramework/test/Layer0/scan/showMatch01-expected.html
new file mode 100644
index 0000000..838844f
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/showMatch01-expected.html
@@ -0,0 +1,20 @@
+<html>
+  <head>
+    <link href="../generic.css" rel="stylesheet"/>
+  </head>
+  <body>
+    <p>
+      <span class="uxwrite-match">The</span>
+      quick brown
+    </p>
+    <p>
+      fox
+      <span class="uxwrite-match">jumps</span>
+      over
+    </p>
+    <p>
+      the lazy
+      <span class="uxwrite-match">dog</span>
+    </p>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/showMatch01-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/showMatch01-input.html b/experiments/editorFramework/test/Layer0/scan/showMatch01-input.html
new file mode 100644
index 0000000..409468f
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/showMatch01-input.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script src="ScanTests.js"></script>
+<script>
+function performTest()
+{
+    Scan_reset();
+    Scan_next();
+    var id1 = Scan_addMatch(0,3);
+    Scan_showMatch(id1);
+    Scan_next();
+    var id2 = Scan_addMatch(4,9);
+    Scan_showMatch(id2);
+    Scan_next();
+    var id3 = Scan_addMatch(9,12);
+    Scan_showMatch(id3);
+}
+</script>
+</head>
+<body>
+<p>The quick brown</p>
+<p>fox jumps over</p>
+<p>the lazy dog</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/showMatch02-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/showMatch02-expected.html b/experiments/editorFramework/test/Layer0/scan/showMatch02-expected.html
new file mode 100644
index 0000000..3e28704
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/showMatch02-expected.html
@@ -0,0 +1,22 @@
+<html>
+  <head>
+    <link href="../generic.css" rel="stylesheet"/>
+  </head>
+  <body>
+    <p>
+      <span class="uxwrite-match">The</span>
+      quick
+      <span class="uxwrite-match">brown</span>
+    </p>
+    <p>
+      <span class="uxwrite-match">fox</span>
+      jumps
+      <span class="uxwrite-match">over</span>
+    </p>
+    <p>
+      <span class="uxwrite-match">the</span>
+      lazy
+      <span class="uxwrite-match">dog</span>
+    </p>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/showMatch02-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/showMatch02-input.html b/experiments/editorFramework/test/Layer0/scan/showMatch02-input.html
new file mode 100644
index 0000000..c0b29ef
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/showMatch02-input.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script src="ScanTests.js"></script>
+<script>
+function performTest()
+{
+    Scan_reset();
+    Scan_next();
+    var id1 = Scan_addMatch(0,3);
+    var id2 = Scan_addMatch(10,15);
+    Scan_showMatch(id1);
+    Scan_showMatch(id2);
+
+    Scan_next();
+    var id3 = Scan_addMatch(0,3);
+    var id4 = Scan_addMatch(10,14);
+    Scan_showMatch(id3);
+    Scan_showMatch(id4);
+
+    Scan_next();
+    var id5 = Scan_addMatch(0,3);
+    var id6 = Scan_addMatch(9,12);
+    Scan_showMatch(id5);
+    Scan_showMatch(id6);
+}
+</script>
+</head>
+<body>
+<p>The quick brown</p>
+<p>fox jumps over</p>
+<p>the lazy dog</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/showMatch03-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/showMatch03-expected.html b/experiments/editorFramework/test/Layer0/scan/showMatch03-expected.html
new file mode 100644
index 0000000..74daee2
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/showMatch03-expected.html
@@ -0,0 +1,20 @@
+<html>
+  <head>
+    <link href="../generic.css" rel="stylesheet"/>
+  </head>
+  <body>
+    <p>
+      <u><span class="uxwrite-match">The</span></u>
+      quick brown
+    </p>
+    <p>
+      fox
+      <u><span class="uxwrite-match">jumps</span></u>
+      over
+    </p>
+    <p>
+      the lazy
+      <u><span class="uxwrite-match">dog</span></u>
+    </p>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/showMatch03-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/showMatch03-input.html b/experiments/editorFramework/test/Layer0/scan/showMatch03-input.html
new file mode 100644
index 0000000..a8a2fb2
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/showMatch03-input.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script src="ScanTests.js"></script>
+<script>
+function performTest()
+{
+    Scan_reset();
+    Scan_next();
+    var id1 = Scan_addMatch(0,3);
+    Scan_showMatch(id1);
+    Scan_next();
+    var id2 = Scan_addMatch(4,9);
+    Scan_showMatch(id2);
+    Scan_next();
+    var id3 = Scan_addMatch(9,12);
+    Scan_showMatch(id3);
+}
+</script>
+</head>
+<body>
+<p><u>The</u> quick brown</p>
+<p>fox <u>jumps</u> over</p>
+<p>the lazy <u>dog</u></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/showMatch04-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/showMatch04-expected.html b/experiments/editorFramework/test/Layer0/scan/showMatch04-expected.html
new file mode 100644
index 0000000..4987119
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/showMatch04-expected.html
@@ -0,0 +1,22 @@
+<html>
+  <head>
+    <link href="../generic.css" rel="stylesheet"/>
+  </head>
+  <body>
+    <p>
+      <u><span class="uxwrite-match">The</span></u>
+      <u>quick</u>
+      brown
+    </p>
+    <p>
+      <u>fox</u>
+      <u><span class="uxwrite-match">jumps</span></u>
+      <u>over</u>
+    </p>
+    <p>
+      the
+      <u>lazy</u>
+      <u><span class="uxwrite-match">dog</span></u>
+    </p>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/showMatch04-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/showMatch04-input.html b/experiments/editorFramework/test/Layer0/scan/showMatch04-input.html
new file mode 100644
index 0000000..42e7efb
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/showMatch04-input.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script src="ScanTests.js"></script>
+<script>
+function performTest()
+{
+    Scan_reset();
+    Scan_next();
+    var id1 = Scan_addMatch(0,3);
+    Scan_showMatch(id1);
+    Scan_next();
+    var id2 = Scan_addMatch(4,9);
+    Scan_showMatch(id2);
+    Scan_next();
+    var id3 = Scan_addMatch(9,12);
+    Scan_showMatch(id3);
+}
+</script>
+</head>
+<body>
+<p><u>The quick</u> brown</p>
+<p><u>fox jumps over</u></p>
+<p>the <u>lazy dog</u></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/showMatch05-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/showMatch05-expected.html b/experiments/editorFramework/test/Layer0/scan/showMatch05-expected.html
new file mode 100644
index 0000000..73bfded
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/showMatch05-expected.html
@@ -0,0 +1,24 @@
+<html>
+  <head>
+    <link href="../generic.css" rel="stylesheet"/>
+  </head>
+  <body>
+    <p>
+      <u><span class="uxwrite-match">Th</span></u>
+      <span class="uxwrite-match">e</span>
+      quick brown
+    </p>
+    <p>
+      fox
+      <span class="uxwrite-match">j</span>
+      <span class="uxwrite-match"><u>ump</u></span>
+      <span class="uxwrite-match">s</span>
+      over
+    </p>
+    <p>
+      the lazy
+      <span class="uxwrite-match">d</span>
+      <u><span class="uxwrite-match">og</span></u>
+    </p>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/scan/showMatch05-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/scan/showMatch05-input.html b/experiments/editorFramework/test/Layer0/scan/showMatch05-input.html
new file mode 100644
index 0000000..256fac6
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/scan/showMatch05-input.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script src="ScanTests.js"></script>
+<script>
+function performTest()
+{
+    Scan_reset();
+    Scan_next();
+    var id1 = Scan_addMatch(0,3);
+    Scan_showMatch(id1);
+    Scan_next();
+    var id2 = Scan_addMatch(4,9);
+    Scan_showMatch(id2);
+    Scan_next();
+    var id3 = Scan_addMatch(9,12);
+    Scan_showMatch(id3);
+}
+</script>
+</head>
+<body>
+<p><u>Th</u>e quick brown</p>
+<p>fox j<u>ump</u>s over</p>
+<p>the lazy d<u>og</u></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/selection/PositionTests.js
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/selection/PositionTests.js b/experiments/editorFramework/test/Layer0/selection/PositionTests.js
new file mode 100644
index 0000000..5b7810e
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/selection/PositionTests.js
@@ -0,0 +1,147 @@
+// 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 pad(str,length)
+{
+    str = ""+str;
+    while (str.length < length)
+        str += " ";
+    return str;
+}
+
+function selectRange(p,start,end)
+{
+    var paragraph = Text_analyseParagraph(new Position(p,0));
+    var startPos = Paragraph_positionAtOffset(paragraph,start);
+    var endPos = Paragraph_positionAtOffset(paragraph,end);
+    Selection_set(startPos.node,startPos.offset,endPos.node,endPos.offset);
+}
+
+function makeStringArray(input)
+{
+    var result = new Array();
+    for (var i = 0; i < input.length; i++)
+        result.push(input[i].toString());
+    return result;
+}
+
+function createTable(arrays)
+{
+    var maxLength = 0;
+    for (var col = 0; col < arrays.length; col++) {
+        if (maxLength < arrays[col].length)
+            maxLength = arrays[col].length;
+    }
+    var colWidths = new Array();
+    for (var col = 0; col < arrays.length; col++) {
+        var width = 0;
+        for (var row = 0; row < arrays[col].length; row++) {
+            if (width < arrays[col][row].length)
+                width = arrays[col][row].length;
+        }
+        colWidths.push(width);
+    }
+
+    var output = new Array();
+    var spacer = "   ->   ";
+    for (var row = 0; row < maxLength; row++) {
+        for (var col = 0; col < arrays.length; col++) {
+            if (col > 0)
+                output.push(spacer);
+            output.push(pad(arrays[col][row],colWidths[col]));
+        }
+        output.push("\n");
+    }
+    return output.join("");
+}
+
+function rangeString(text,start,end)
+{
+    return JSON.stringify(text.substring(0,start) + "[" +
+                          text.substring(start,end) + "]" +
+                          text.substring(end));
+}
+
+var positionList = null
+
+function setPositionList(newList)
+{
+    UndoManager_addAction(setPositionList,positionList);
+    if (newList == null)
+        positionList = null;
+    else
+        positionList = newList.map(function (pos) { return new Position(pos.node,pos.offset); });
+}
+
+function getPositionList()
+{
+    return positionList;
+}
+
+function positionTest(start1,end1,start2,end2)
+{
+    var ps = document.getElementsByTagName("P");
+
+    var p = ps[0];
+    var text = p.firstChild;
+
+    var testDescription = "From "+rangeString(text.nodeValue,start1,end1) + "\n" +
+                          "To   "+rangeString(text.nodeValue,start2,end2) + "\n";
+
+    var positions = new Array();
+    for (var i = 0; i <= text.length; i++)
+        positions.push(new Position(text,i));
+    setPositionList(positions);
+
+    var origStrings = makeStringArray(positions);
+    UndoManager_newGroup();
+
+    Position_trackWhileExecuting(positions,function() { selectRange(p,start1,end1); });
+    setPositionList(positions);
+    var strings1 = makeStringArray(positions);
+
+    UndoManager_newGroup();
+
+    Position_trackWhileExecuting(positions,function() { selectRange(p,start2,end2); });
+    setPositionList(positions);
+    var strings2 = makeStringArray(positions);
+
+    UndoManager_undo();
+    positions = getPositionList();
+    var undo1 = makeStringArray(positions);
+
+    UndoManager_undo();
+    positions = getPositionList();
+    var undo2 = makeStringArray(positions);
+
+    var checks = new Array();
+    for (var i = 0; i < positions.length; i++) {
+        var str = "";
+        if (undo1[i] == strings1[i])
+            str += "YES";
+        else
+            str += "NO";
+
+        if (undo2[i] == origStrings[i])
+            str += "/YES";
+        else
+            str += "/NO";
+        checks.push(str);
+    }
+
+    return testDescription + "\n" + createTable([origStrings,strings1,strings2,checks]);
+}

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/selection/boundaries-table01-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/selection/boundaries-table01-expected.html b/experiments/editorFramework/test/Layer0/selection/boundaries-table01-expected.html
new file mode 100644
index 0000000..a10ae78
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/selection/boundaries-table01-expected.html
@@ -0,0 +1,20 @@
+<html>
+  <head></head>
+  <body>
+    <p>Text [before</p>
+    <table>
+      <tbody>
+        <tr>
+          <td>One</td>
+          <td>Two</td>
+        </tr>
+        <tr>
+          <td>Three</td>
+          <td>Four</td>
+        </tr>
+      </tbody>
+    </table>
+    ]
+    <p>Text after</p>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/selection/boundaries-table01-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/selection/boundaries-table01-input.html b/experiments/editorFramework/test/Layer0/selection/boundaries-table01-input.html
new file mode 100644
index 0000000..3d4a006
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/selection/boundaries-table01-input.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    showSelection();
+}
+</script>
+</head>
+<body>
+<p>Text [before</p>
+<table>
+  <tr>
+    <td>One</td>
+    <td>Tw]o</td>
+  </tr>
+  <tr>
+    <td>Three</td>
+    <td>Four</td>
+  </tr>
+</table>
+<p>Text after</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/selection/boundaries-table02-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/selection/boundaries-table02-expected.html b/experiments/editorFramework/test/Layer0/selection/boundaries-table02-expected.html
new file mode 100644
index 0000000..81c8769
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/selection/boundaries-table02-expected.html
@@ -0,0 +1,20 @@
+<html>
+  <head></head>
+  <body>
+    <p>Text before</p>
+    [
+    <table>
+      <tbody>
+        <tr>
+          <td>One</td>
+          <td>Two</td>
+        </tr>
+        <tr>
+          <td>Three</td>
+          <td>Four</td>
+        </tr>
+      </tbody>
+    </table>
+    <p>Text] after</p>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/selection/boundaries-table02-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/selection/boundaries-table02-input.html b/experiments/editorFramework/test/Layer0/selection/boundaries-table02-input.html
new file mode 100644
index 0000000..86fcafc
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/selection/boundaries-table02-input.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    showSelection();
+}
+</script>
+</head>
+<body>
+<p>Text before</p>
+<table>
+  <tr>
+    <td>One</td>
+    <td>Tw[o</td>
+  </tr>
+  <tr>
+    <td>Three</td>
+    <td>Four</td>
+  </tr>
+</table>
+<p>Text] after</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/selection/boundaries-table03-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/selection/boundaries-table03-expected.html b/experiments/editorFramework/test/Layer0/selection/boundaries-table03-expected.html
new file mode 100644
index 0000000..492d9d9
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/selection/boundaries-table03-expected.html
@@ -0,0 +1,19 @@
+<html>
+  <head></head>
+  <body>
+    <p>Text before</p>
+    <table>
+      <tbody>
+        <tr>
+          <td>One</td>
+          <td>Tw[o</td>
+        </tr>
+        <tr>
+          <td>Three</td>
+          <td>F]our</td>
+        </tr>
+      </tbody>
+    </table>
+    <p>Text after</p>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/selection/boundaries-table03-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/selection/boundaries-table03-input.html b/experiments/editorFramework/test/Layer0/selection/boundaries-table03-input.html
new file mode 100644
index 0000000..3e08247
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/selection/boundaries-table03-input.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    showSelection();
+}
+</script>
+</head>
+<body>
+<p>Text before</p>
+<table>
+  <tr>
+    <td>One</td>
+    <td>Tw[o</td>
+  </tr>
+  <tr>
+    <td>Three</td>
+    <td>F]our</td>
+  </tr>
+</table>
+<p>Text after</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/selection/boundaries-table04-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/selection/boundaries-table04-expected.html b/experiments/editorFramework/test/Layer0/selection/boundaries-table04-expected.html
new file mode 100644
index 0000000..1e5725f
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/selection/boundaries-table04-expected.html
@@ -0,0 +1,19 @@
+<html>
+  <head></head>
+  <body>
+    <p>Text [before</p>
+    <table>
+      <tbody>
+        <tr>
+          <td>One</td>
+          <td>Two</td>
+        </tr>
+        <tr>
+          <td>Three</td>
+          <td>Four</td>
+        </tr>
+      </tbody>
+    </table>
+    <p>Text] after</p>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/selection/boundaries-table04-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/selection/boundaries-table04-input.html b/experiments/editorFramework/test/Layer0/selection/boundaries-table04-input.html
new file mode 100644
index 0000000..6b97c8f
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/selection/boundaries-table04-input.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    showSelection();
+}
+</script>
+</head>
+<body>
+<p>Text [before</p>
+<table>
+  <tr>
+    <td>One</td>
+    <td>Two</td>
+  </tr>
+  <tr>
+    <td>Three</td>
+    <td>Four</td>
+  </tr>
+</table>
+<p>Text] after</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/selection/boundaries-table05-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/selection/boundaries-table05-expected.html b/experiments/editorFramework/test/Layer0/selection/boundaries-table05-expected.html
new file mode 100644
index 0000000..334ceb0
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/selection/boundaries-table05-expected.html
@@ -0,0 +1,41 @@
+<html>
+  <head></head>
+  <body>
+    <p>Text before</p>
+    <table>
+      <tbody>
+        <tr>
+          <td>
+            [
+            <table>
+              <tbody>
+                <tr>
+                  <td>One</td>
+                  <td>Two</td>
+                </tr>
+                <tr>
+                  <td>Three</td>
+                  <td>Four</td>
+                </tr>
+              </tbody>
+            </table>
+            <table>
+              <tbody>
+                <tr>
+                  <td>Five</td>
+                  <td>Six</td>
+                </tr>
+                <tr>
+                  <td>Seven</td>
+                  <td>Eight</td>
+                </tr>
+              </tbody>
+            </table>
+            ]
+          </td>
+        </tr>
+      </tbody>
+    </table>
+    <p>Text after</p>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/selection/boundaries-table05-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/selection/boundaries-table05-input.html b/experiments/editorFramework/test/Layer0/selection/boundaries-table05-input.html
new file mode 100644
index 0000000..2ec8be1
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/selection/boundaries-table05-input.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    showSelection();
+}
+</script>
+</head>
+<body>
+
+<p>Text before</p>
+
+<table>
+  <tbody>
+    <tr>
+      <td>
+
+        <table>
+          <tbody>
+            <tr>
+              <td>One</td>
+              <td>T[wo</td>
+            </tr>
+            <tr>
+              <td>Three</td>
+              <td>Four</td>
+            </tr>
+          </tbody>
+        </table>
+
+        <table>
+          <tbody>
+            <tr>
+              <td>Five</td>
+              <td>Six</td>
+            </tr>
+            <tr>
+              <td>S]even</td>
+              <td>Eight</td>
+            </tr>
+          </tbody>
+        </table>
+
+      </td>
+    </tr>
+  </tbody>
+</table>
+
+<p>Text after</p>
+
+</body>
+</html>