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:41 UTC
[34/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/dom/tracking-mergeWithNeighbours02-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking-mergeWithNeighbours02-input.html b/experiments/editorFramework/test/Layer0/dom/tracking-mergeWithNeighbours02-input.html
new file mode 100644
index 0000000..09fffaf
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking-mergeWithNeighbours02-input.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script type="text/javascript" src="RangeTest.js"></script>
+<script>
+
+function createElementWithId(elementName,id)
+{
+ var element = DOM_createElement(document,elementName);
+ DOM_setAttribute(element,"id",id);
+ return element;
+}
+
+function performTest()
+{
+ // DOM_wrapNode() should not affect any positions, because the node itself remains in the
+ // tree unmodified.
+
+ DOM_deleteAllChildren(document.body);
+
+ var p = DOM_createElement(document,"P");
+
+ var span1 = createElementWithId("SPAN","span1");
+ var span2 = createElementWithId("SPAN","span2");
+ var span3 = createElementWithId("SPAN","span3");
+ var span4 = createElementWithId("SPAN","span4");
+ var span5 = createElementWithId("SPAN","span5");
+ DOM_setAttribute(span1,"style","color: blue");
+ DOM_setAttribute(span5,"style","color: blue");
+
+ DOM_appendChild(document.body,p);
+ DOM_appendChild(p,span1);
+ DOM_appendChild(p,span2);
+ DOM_appendChild(p,span3);
+ DOM_appendChild(p,span4);
+ DOM_appendChild(p,span5);
+
+ DOM_appendChild(span2,createElementWithId("BR","br1"));
+ DOM_appendChild(span2,createElementWithId("BR","br2"));
+ DOM_appendChild(span2,createElementWithId("BR","br3"));
+ DOM_appendChild(span3,createElementWithId("BR","br4"));
+ DOM_appendChild(span3,createElementWithId("BR","br5"));
+ DOM_appendChild(span3,createElementWithId("BR","br6"));
+ DOM_appendChild(span4,createElementWithId("BR","br7"));
+ DOM_appendChild(span4,createElementWithId("BR","br8"));
+ DOM_appendChild(span4,createElementWithId("BR","br9"));
+
+ var result = comparePositionsBeforeAndAfter(function() {
+
+ // Temporarily remove id attributes so that elements will be considered mergeable
+ DOM_removeAttribute(span1,"id");
+ DOM_removeAttribute(span2,"id");
+ DOM_removeAttribute(span3,"id");
+ DOM_removeAttribute(span4,"id");
+ DOM_removeAttribute(span5,"id");
+
+ Formatting_mergeWithNeighbours(span3,Formatting_MERGEABLE_INLINE);
+
+ DOM_setAttribute(span1,"id","span1");
+ DOM_setAttribute(span2,"id","span2");
+ DOM_setAttribute(span3,"id","span3");
+ DOM_setAttribute(span4,"id","span4");
+ DOM_setAttribute(span5,"id","span5");
+
+ });
+
+
+ DOM_deleteAllChildren(document.body);
+ DOM_appendChild(document.body,DOM_createTextNode(document,"-\n"+result+"\n-"));
+}
+</script>
+</head>
+<body>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/tracking-moveNode-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking-moveNode-expected.html b/experiments/editorFramework/test/Layer0/dom/tracking-moveNode-expected.html
new file mode 100644
index 0000000..561690d
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking-moveNode-expected.html
@@ -0,0 +1,179 @@
+<html>
+ <head>
+ </head>
+ <body>
+ -
+Before: positions[0] = (BODY,0)
+Before: positions[1] = (P#p1,0)
+Before: positions[2] = (B,0)
+Before: positions[3] = "|ab"
+Before: positions[4] = "a|b"
+Before: positions[5] = "ab|"
+Before: positions[6] = (B,1)
+Before: positions[7] = (BR,0)
+Before: positions[8] = (B,2)
+Before: positions[9] = (P#p1,1)
+Before: positions[10] = (B,0)
+Before: positions[11] = "|cd"
+Before: positions[12] = "c|d"
+Before: positions[13] = "cd|"
+Before: positions[14] = (B,1)
+Before: positions[15] = (BR,0)
+Before: positions[16] = (B,2)
+Before: positions[17] = (P#p1,2)
+Before: positions[18] = (B,0)
+Before: positions[19] = "|ef"
+Before: positions[20] = "e|f"
+Before: positions[21] = "ef|"
+Before: positions[22] = (B,1)
+Before: positions[23] = (BR,0)
+Before: positions[24] = (B,2)
+Before: positions[25] = (P#p1,3)
+Before: positions[26] = (B,0)
+Before: positions[27] = "|gh"
+Before: positions[28] = "g|h"
+Before: positions[29] = "gh|"
+Before: positions[30] = (B,1)
+Before: positions[31] = (BR,0)
+Before: positions[32] = (B,2)
+Before: positions[33] = (P#p1,4)
+Before: positions[34] = (B,0)
+Before: positions[35] = "|ij"
+Before: positions[36] = "i|j"
+Before: positions[37] = "ij|"
+Before: positions[38] = (B,1)
+Before: positions[39] = (BR,0)
+Before: positions[40] = (B,2)
+Before: positions[41] = (P#p1,5)
+Before: positions[42] = (BODY,1)
+Before: positions[43] = (P#p2,0)
+Before: positions[44] = (B,0)
+Before: positions[45] = "|kl"
+Before: positions[46] = "k|l"
+Before: positions[47] = "kl|"
+Before: positions[48] = (B,1)
+Before: positions[49] = (BR,0)
+Before: positions[50] = (B,2)
+Before: positions[51] = (P#p2,1)
+Before: positions[52] = (B,0)
+Before: positions[53] = "|mn"
+Before: positions[54] = "m|n"
+Before: positions[55] = "mn|"
+Before: positions[56] = (B,1)
+Before: positions[57] = (BR,0)
+Before: positions[58] = (B,2)
+Before: positions[59] = (P#p2,2)
+Before: positions[60] = (B,0)
+Before: positions[61] = "|op"
+Before: positions[62] = "o|p"
+Before: positions[63] = "op|"
+Before: positions[64] = (B,1)
+Before: positions[65] = (BR,0)
+Before: positions[66] = (B,2)
+Before: positions[67] = (P#p2,3)
+Before: positions[68] = (B,0)
+Before: positions[69] = "|qr"
+Before: positions[70] = "q|r"
+Before: positions[71] = "qr|"
+Before: positions[72] = (B,1)
+Before: positions[73] = (BR,0)
+Before: positions[74] = (B,2)
+Before: positions[75] = (P#p2,4)
+Before: positions[76] = (B,0)
+Before: positions[77] = "|st"
+Before: positions[78] = "s|t"
+Before: positions[79] = "st|"
+Before: positions[80] = (B,1)
+Before: positions[81] = (BR,0)
+Before: positions[82] = (B,2)
+Before: positions[83] = (P#p2,5)
+Before: positions[84] = (BODY,2)
+
+After: positions[0] = (BODY,0)
+After: positions[1] = (P#p1,0)
+After: positions[2] = (B,0)
+After: positions[3] = "|ab"
+After: positions[4] = "a|b"
+After: positions[5] = "ab|"
+After: positions[6] = (B,1)
+After: positions[7] = (BR,0)
+After: positions[8] = (B,2)
+After: positions[9] = (P#p2,3) - changed from (P#p1,1)
+After: positions[10] = (B,0)
+After: positions[11] = "|cd"
+After: positions[12] = "c|d"
+After: positions[13] = "cd|"
+After: positions[14] = (B,1)
+After: positions[15] = (BR,0)
+After: positions[16] = (B,2)
+After: positions[17] = (P#p1,1) - changed from (P#p1,2)
+After: positions[18] = (B,0)
+After: positions[19] = "|ef"
+After: positions[20] = "e|f"
+After: positions[21] = "ef|"
+After: positions[22] = (B,1)
+After: positions[23] = (BR,0)
+After: positions[24] = (B,2)
+After: positions[25] = (P#p1,2) - changed from (P#p1,3)
+After: positions[26] = (B,0)
+After: positions[27] = "|gh"
+After: positions[28] = "g|h"
+After: positions[29] = "gh|"
+After: positions[30] = (B,1)
+After: positions[31] = (BR,0)
+After: positions[32] = (B,2)
+After: positions[33] = (P#p1,3) - changed from (P#p1,4)
+After: positions[34] = (B,0)
+After: positions[35] = "|ij"
+After: positions[36] = "i|j"
+After: positions[37] = "ij|"
+After: positions[38] = (B,1)
+After: positions[39] = (BR,0)
+After: positions[40] = (B,2)
+After: positions[41] = (P#p1,4) - changed from (P#p1,5)
+After: positions[42] = (BODY,1)
+After: positions[43] = (P#p2,0)
+After: positions[44] = (B,0)
+After: positions[45] = "|kl"
+After: positions[46] = "k|l"
+After: positions[47] = "kl|"
+After: positions[48] = (B,1)
+After: positions[49] = (BR,0)
+After: positions[50] = (B,2)
+After: positions[51] = (P#p2,1)
+After: positions[52] = (B,0)
+After: positions[53] = "|mn"
+After: positions[54] = "m|n"
+After: positions[55] = "mn|"
+After: positions[56] = (B,1)
+After: positions[57] = (BR,0)
+After: positions[58] = (B,2)
+After: positions[59] = (P#p2,2)
+After: positions[60] = (B,0)
+After: positions[61] = "|op"
+After: positions[62] = "o|p"
+After: positions[63] = "op|"
+After: positions[64] = (B,1)
+After: positions[65] = (BR,0)
+After: positions[66] = (B,2)
+After: positions[67] = (P#p2,3)
+After: positions[68] = (B,0)
+After: positions[69] = "|qr"
+After: positions[70] = "q|r"
+After: positions[71] = "qr|"
+After: positions[72] = (B,1)
+After: positions[73] = (BR,0)
+After: positions[74] = (B,2)
+After: positions[75] = (P#p2,5) - changed from (P#p2,4)
+After: positions[76] = (B,0)
+After: positions[77] = "|st"
+After: positions[78] = "s|t"
+After: positions[79] = "st|"
+After: positions[80] = (B,1)
+After: positions[81] = (BR,0)
+After: positions[82] = (B,2)
+After: positions[83] = (P#p2,6) - changed from (P#p2,5)
+After: positions[84] = (BODY,2)
+-
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/tracking-moveNode-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking-moveNode-input.html b/experiments/editorFramework/test/Layer0/dom/tracking-moveNode-input.html
new file mode 100644
index 0000000..3375f56
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking-moveNode-input.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script type="text/javascript" src="RangeTest.js"></script>
+<script>
+
+function performTest()
+{
+ // DOM_wrapNode() should not affect any positions, because the node itself remains in the
+ // tree unmodified.
+
+ removeWhitespaceAndCommentNodes(document.body);
+
+ var p1 = document.getElementById("p1");
+ var p2 = document.getElementById("p2");
+
+ var result = comparePositionsBeforeAndAfter(function() {
+ DOM_insertBefore(p2,p1.childNodes[1],p2.childNodes[3]);
+ });
+
+ DOM_deleteAllChildren(document.body);
+ DOM_appendChild(document.body,DOM_createTextNode(document,"-\n"+result+"\n-"));
+}
+</script>
+</head>
+<body>
+<p id="p1">
+<b>ab<br></b>
+<b>cd<br></b>
+<b>ef<br></b>
+<b>gh<br></b>
+<b>ij<br></b>
+</p>
+<p id="p2">
+<b>kl<br></b>
+<b>mn<br></b>
+<b>op<br></b>
+<b>qr<br></b>
+<b>st<br></b>
+</p>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/tracking-removeNodeButKeepChildren-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking-removeNodeButKeepChildren-expected.html b/experiments/editorFramework/test/Layer0/dom/tracking-removeNodeButKeepChildren-expected.html
new file mode 100644
index 0000000..95eab37
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking-removeNodeButKeepChildren-expected.html
@@ -0,0 +1,87 @@
+<html>
+ <head>
+ </head>
+ <body>
+ -
+Before: positions[0] = (BODY,0)
+Before: positions[1] = (P#p1,0)
+Before: positions[2] = "|ab"
+Before: positions[3] = "a|b"
+Before: positions[4] = "ab|"
+Before: positions[5] = (P#p1,1)
+Before: positions[6] = (BR,0)
+Before: positions[7] = (P#p1,2)
+Before: positions[8] = (BODY,1)
+Before: positions[9] = (P#p2,0)
+Before: positions[10] = "|cd"
+Before: positions[11] = "c|d"
+Before: positions[12] = "cd|"
+Before: positions[13] = (P#p2,1)
+Before: positions[14] = (B,0)
+Before: positions[15] = "|ef"
+Before: positions[16] = "e|f"
+Before: positions[17] = "ef|"
+Before: positions[18] = (B,1)
+Before: positions[19] = (BR,0)
+Before: positions[20] = (B,2)
+Before: positions[21] = (P#p2,2)
+Before: positions[22] = "|gh"
+Before: positions[23] = "g|h"
+Before: positions[24] = "gh|"
+Before: positions[25] = (P#p2,3)
+Before: positions[26] = (BODY,2)
+Before: positions[27] = (P#p3,0)
+Before: positions[28] = "|ij"
+Before: positions[29] = "i|j"
+Before: positions[30] = "ij|"
+Before: positions[31] = (P#p3,1)
+Before: positions[32] = (BR,0)
+Before: positions[33] = (P#p3,2)
+Before: positions[34] = (BODY,3)
+Before: positions[35] = "|\n\n"
+Before: positions[36] = "\n|\n"
+Before: positions[37] = "\n\n|"
+Before: positions[38] = (BODY,4)
+
+After: positions[0] = (BODY,0)
+After: positions[1] = (P#p1,0)
+After: positions[2] = "|ab"
+After: positions[3] = "a|b"
+After: positions[4] = "ab|"
+After: positions[5] = (P#p1,1)
+After: positions[6] = (BR,0)
+After: positions[7] = (P#p1,2)
+After: positions[8] = (BODY,1)
+After: positions[9] = (BODY,1) - changed from (P#p2,0)
+After: positions[10] = "|cd"
+After: positions[11] = "c|d"
+After: positions[12] = "cd|"
+After: positions[13] = (BODY,2) - changed from (P#p2,1)
+After: positions[14] = (B,0)
+After: positions[15] = "|ef"
+After: positions[16] = "e|f"
+After: positions[17] = "ef|"
+After: positions[18] = (B,1)
+After: positions[19] = (BR,0)
+After: positions[20] = (B,2)
+After: positions[21] = (BODY,3) - changed from (P#p2,2)
+After: positions[22] = "|gh"
+After: positions[23] = "g|h"
+After: positions[24] = "gh|"
+After: positions[25] = (BODY,4) - changed from (P#p2,3)
+After: positions[26] = (BODY,4) - changed from (BODY,2)
+After: positions[27] = (P#p3,0)
+After: positions[28] = "|ij"
+After: positions[29] = "i|j"
+After: positions[30] = "ij|"
+After: positions[31] = (P#p3,1)
+After: positions[32] = (BR,0)
+After: positions[33] = (P#p3,2)
+After: positions[34] = (BODY,5) - changed from (BODY,3)
+After: positions[35] = "|\n\n"
+After: positions[36] = "\n|\n"
+After: positions[37] = "\n\n|"
+After: positions[38] = (BODY,6) - changed from (BODY,4)
+-
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/tracking-removeNodeButKeepChildren-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking-removeNodeButKeepChildren-input.html b/experiments/editorFramework/test/Layer0/dom/tracking-removeNodeButKeepChildren-input.html
new file mode 100644
index 0000000..4ea6bc3
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking-removeNodeButKeepChildren-input.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script type="text/javascript" src="RangeTest.js"></script>
+<script>
+
+function performTest()
+{
+ // DOM_wrapNode() should not affect any positions, because the node itself remains in the
+ // tree unmodified.
+
+ var result = comparePositionsBeforeAndAfter(function() {
+ DOM_removeNodeButKeepChildren(document.getElementById("p2"),"DIV");
+ });
+
+ DOM_deleteAllChildren(document.body);
+ DOM_appendChild(document.body,DOM_createTextNode(document,"-\n"+result+"\n-"));
+}
+</script>
+</head>
+<body><p id="p1">ab<br></p><p id="p2">cd<b>ef<br></b>gh</b></p><p id="p3">ij<br></p></body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/tracking-replaceElement-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking-replaceElement-expected.html b/experiments/editorFramework/test/Layer0/dom/tracking-replaceElement-expected.html
new file mode 100644
index 0000000..a83cfa6
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking-replaceElement-expected.html
@@ -0,0 +1,87 @@
+<html>
+ <head>
+ </head>
+ <body>
+ -
+Before: positions[0] = (BODY,0)
+Before: positions[1] = (P#p1,0)
+Before: positions[2] = "|ab"
+Before: positions[3] = "a|b"
+Before: positions[4] = "ab|"
+Before: positions[5] = (P#p1,1)
+Before: positions[6] = (BR,0)
+Before: positions[7] = (P#p1,2)
+Before: positions[8] = (BODY,1)
+Before: positions[9] = (P#p2,0)
+Before: positions[10] = "|cd"
+Before: positions[11] = "c|d"
+Before: positions[12] = "cd|"
+Before: positions[13] = (P#p2,1)
+Before: positions[14] = (B,0)
+Before: positions[15] = "|ef"
+Before: positions[16] = "e|f"
+Before: positions[17] = "ef|"
+Before: positions[18] = (B,1)
+Before: positions[19] = (BR,0)
+Before: positions[20] = (B,2)
+Before: positions[21] = (P#p2,2)
+Before: positions[22] = "|gh"
+Before: positions[23] = "g|h"
+Before: positions[24] = "gh|"
+Before: positions[25] = (P#p2,3)
+Before: positions[26] = (BODY,2)
+Before: positions[27] = (P#p3,0)
+Before: positions[28] = "|ij"
+Before: positions[29] = "i|j"
+Before: positions[30] = "ij|"
+Before: positions[31] = (P#p3,1)
+Before: positions[32] = (BR,0)
+Before: positions[33] = (P#p3,2)
+Before: positions[34] = (BODY,3)
+Before: positions[35] = "|\n\n"
+Before: positions[36] = "\n|\n"
+Before: positions[37] = "\n\n|"
+Before: positions[38] = (BODY,4)
+
+After: positions[0] = (BODY,0)
+After: positions[1] = (P#p1,0)
+After: positions[2] = "|ab"
+After: positions[3] = "a|b"
+After: positions[4] = "ab|"
+After: positions[5] = (P#p1,1)
+After: positions[6] = (BR,0)
+After: positions[7] = (P#p1,2)
+After: positions[8] = (BODY,1)
+After: positions[9] = (DIV#p2,0) - changed from (P#p2,0)
+After: positions[10] = "|cd"
+After: positions[11] = "c|d"
+After: positions[12] = "cd|"
+After: positions[13] = (DIV#p2,1) - changed from (P#p2,1)
+After: positions[14] = (B,0)
+After: positions[15] = "|ef"
+After: positions[16] = "e|f"
+After: positions[17] = "ef|"
+After: positions[18] = (B,1)
+After: positions[19] = (BR,0)
+After: positions[20] = (B,2)
+After: positions[21] = (DIV#p2,2) - changed from (P#p2,2)
+After: positions[22] = "|gh"
+After: positions[23] = "g|h"
+After: positions[24] = "gh|"
+After: positions[25] = (DIV#p2,3) - changed from (P#p2,3)
+After: positions[26] = (BODY,2)
+After: positions[27] = (P#p3,0)
+After: positions[28] = "|ij"
+After: positions[29] = "i|j"
+After: positions[30] = "ij|"
+After: positions[31] = (P#p3,1)
+After: positions[32] = (BR,0)
+After: positions[33] = (P#p3,2)
+After: positions[34] = (BODY,3)
+After: positions[35] = "|\n\n"
+After: positions[36] = "\n|\n"
+After: positions[37] = "\n\n|"
+After: positions[38] = (BODY,4)
+-
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/tracking-replaceElement-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking-replaceElement-input.html b/experiments/editorFramework/test/Layer0/dom/tracking-replaceElement-input.html
new file mode 100644
index 0000000..f4237b3
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking-replaceElement-input.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script type="text/javascript" src="RangeTest.js"></script>
+<script>
+
+function performTest()
+{
+ // DOM_wrapNode() should not affect any positions, because the node itself remains in the
+ // tree unmodified.
+
+ var result = comparePositionsBeforeAndAfter(function() {
+ DOM_replaceElement(document.getElementById("p2"),"DIV");
+ });
+
+ DOM_deleteAllChildren(document.body);
+ DOM_appendChild(document.body,DOM_createTextNode(document,"-\n"+result+"\n-"));
+}
+</script>
+</head>
+<body><p id="p1">ab<br></p><p id="p2">cd<b>ef<br></b>gh</b></p><p id="p3">ij<br></p></body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/tracking-text1-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking-text1-expected.html b/experiments/editorFramework/test/Layer0/dom/tracking-text1-expected.html
new file mode 100644
index 0000000..964c4f3
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking-text1-expected.html
@@ -0,0 +1,45 @@
+<html>
+ <head></head>
+ <body>
+ -
+Before text change:
+positions[0] = "|Here is some text"
+positions[1] = "H|ere is some text"
+positions[2] = "He|re is some text"
+positions[3] = "Her|e is some text"
+positions[4] = "Here| is some text"
+positions[5] = "Here |is some text"
+positions[6] = "Here i|s some text"
+positions[7] = "Here is| some text"
+positions[8] = "Here is |some text"
+positions[9] = "Here is s|ome text"
+positions[10] = "Here is so|me text"
+positions[11] = "Here is som|e text"
+positions[12] = "Here is some| text"
+positions[13] = "Here is some |text"
+positions[14] = "Here is some t|ext"
+positions[15] = "Here is some te|xt"
+positions[16] = "Here is some tex|t"
+positions[17] = "Here is some text|"
+After text change:
+positions[0] = "|Here is text"
+positions[1] = "H|ere is text"
+positions[2] = "He|re is text"
+positions[3] = "Her|e is text"
+positions[4] = "Here| is text"
+positions[5] = "Here |is text"
+positions[6] = "Here i|s text"
+positions[7] = "Here is| text"
+positions[8] = "Here is |text"
+positions[9] = "Here is |text"
+positions[10] = "Here is |text"
+positions[11] = "Here is |text"
+positions[12] = "Here is |text"
+positions[13] = "Here is |text"
+positions[14] = "Here is t|ext"
+positions[15] = "Here is te|xt"
+positions[16] = "Here is tex|t"
+positions[17] = "Here is text|"
+-
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/tracking-text1-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking-text1-input.html b/experiments/editorFramework/test/Layer0/dom/tracking-text1-input.html
new file mode 100644
index 0000000..aa854c2
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking-text1-input.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+ var p = document.getElementsByTagName("P")[0];
+ var text = p.firstChild;
+ var positions = new Array();
+ for (var i = 0; i <= text.nodeValue.length; i++)
+ positions.push(new Position(text,i));
+
+ var messages = new Array();
+ messages.push("Before text change:");
+ for (var i = 0; i < positions.length; i++)
+ messages.push("positions["+i+"] = "+positions[i]);
+
+ Position_trackWhileExecuting(positions,function() {
+ DOM_deleteCharacters(text,8,13);
+ });
+
+ messages.push("After text change:");
+ for (var i = 0; i < positions.length; i++)
+ messages.push("positions["+i+"] = "+positions[i]);
+
+ DOM_deleteAllChildren(document.body);
+ DOM_appendChild(document.body,DOM_createTextNode(document,"-\n"+messages.join("\n")+"\n-"));
+}
+</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/dom/tracking-text2-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking-text2-expected.html b/experiments/editorFramework/test/Layer0/dom/tracking-text2-expected.html
new file mode 100644
index 0000000..d5c122d
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking-text2-expected.html
@@ -0,0 +1,45 @@
+<html>
+ <head></head>
+ <body>
+ -
+Before text change:
+positions[0] = "|Here is some text"
+positions[1] = "H|ere is some text"
+positions[2] = "He|re is some text"
+positions[3] = "Her|e is some text"
+positions[4] = "Here| is some text"
+positions[5] = "Here |is some text"
+positions[6] = "Here i|s some text"
+positions[7] = "Here is| some text"
+positions[8] = "Here is |some text"
+positions[9] = "Here is s|ome text"
+positions[10] = "Here is so|me text"
+positions[11] = "Here is som|e text"
+positions[12] = "Here is some| text"
+positions[13] = "Here is some |text"
+positions[14] = "Here is some t|ext"
+positions[15] = "Here is some te|xt"
+positions[16] = "Here is some tex|t"
+positions[17] = "Here is some text|"
+After text change:
+positions[0] = "|is some text"
+positions[1] = "|is some text"
+positions[2] = "|is some text"
+positions[3] = "|is some text"
+positions[4] = "|is some text"
+positions[5] = "|is some text"
+positions[6] = "i|s some text"
+positions[7] = "is| some text"
+positions[8] = "is |some text"
+positions[9] = "is s|ome text"
+positions[10] = "is so|me text"
+positions[11] = "is som|e text"
+positions[12] = "is some| text"
+positions[13] = "is some |text"
+positions[14] = "is some t|ext"
+positions[15] = "is some te|xt"
+positions[16] = "is some tex|t"
+positions[17] = "is some text|"
+-
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/tracking-text2-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking-text2-input.html b/experiments/editorFramework/test/Layer0/dom/tracking-text2-input.html
new file mode 100644
index 0000000..f952c17
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking-text2-input.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+ var p = document.getElementsByTagName("P")[0];
+ var text = p.firstChild;
+ var positions = new Array();
+ for (var i = 0; i <= text.nodeValue.length; i++)
+ positions.push(new Position(text,i));
+
+ var messages = new Array();
+ messages.push("Before text change:");
+ for (var i = 0; i < positions.length; i++)
+ messages.push("positions["+i+"] = "+positions[i]);
+
+ Position_trackWhileExecuting(positions,function() {
+ DOM_deleteCharacters(text,0,5);
+ });
+
+ messages.push("After text change:");
+ for (var i = 0; i < positions.length; i++)
+ messages.push("positions["+i+"] = "+positions[i]);
+
+ DOM_deleteAllChildren(document.body);
+ DOM_appendChild(document.body,DOM_createTextNode(document,"-\n"+messages.join("\n")+"\n-"));
+}
+</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/dom/tracking-text3-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking-text3-expected.html b/experiments/editorFramework/test/Layer0/dom/tracking-text3-expected.html
new file mode 100644
index 0000000..1df6e5d
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking-text3-expected.html
@@ -0,0 +1,45 @@
+<html>
+ <head></head>
+ <body>
+ -
+Before text change:
+positions[0] = "|Here is some text"
+positions[1] = "H|ere is some text"
+positions[2] = "He|re is some text"
+positions[3] = "Her|e is some text"
+positions[4] = "Here| is some text"
+positions[5] = "Here |is some text"
+positions[6] = "Here i|s some text"
+positions[7] = "Here is| some text"
+positions[8] = "Here is |some text"
+positions[9] = "Here is s|ome text"
+positions[10] = "Here is so|me text"
+positions[11] = "Here is som|e text"
+positions[12] = "Here is some| text"
+positions[13] = "Here is some |text"
+positions[14] = "Here is some t|ext"
+positions[15] = "Here is some te|xt"
+positions[16] = "Here is some tex|t"
+positions[17] = "Here is some text|"
+After text change:
+positions[0] = "|Here is some"
+positions[1] = "H|ere is some"
+positions[2] = "He|re is some"
+positions[3] = "Her|e is some"
+positions[4] = "Here| is some"
+positions[5] = "Here |is some"
+positions[6] = "Here i|s some"
+positions[7] = "Here is| some"
+positions[8] = "Here is |some"
+positions[9] = "Here is s|ome"
+positions[10] = "Here is so|me"
+positions[11] = "Here is som|e"
+positions[12] = "Here is some|"
+positions[13] = "Here is some|"
+positions[14] = "Here is some|"
+positions[15] = "Here is some|"
+positions[16] = "Here is some|"
+positions[17] = "Here is some|"
+-
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/tracking-text3-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking-text3-input.html b/experiments/editorFramework/test/Layer0/dom/tracking-text3-input.html
new file mode 100644
index 0000000..e19dad9
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking-text3-input.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+ var p = document.getElementsByTagName("P")[0];
+ var text = p.firstChild;
+ var positions = new Array();
+ for (var i = 0; i <= text.nodeValue.length; i++)
+ positions.push(new Position(text,i));
+
+ var messages = new Array();
+ messages.push("Before text change:");
+ for (var i = 0; i < positions.length; i++)
+ messages.push("positions["+i+"] = "+positions[i]);
+
+ Position_trackWhileExecuting(positions,function() {
+ DOM_deleteCharacters(text,12);
+ });
+
+ messages.push("After text change:");
+ for (var i = 0; i < positions.length; i++)
+ messages.push("positions["+i+"] = "+positions[i]);
+
+ DOM_deleteAllChildren(document.body);
+ DOM_appendChild(document.body,DOM_createTextNode(document,"-\n"+messages.join("\n")+"\n-"));
+}
+</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/dom/tracking-text4-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking-text4-expected.html b/experiments/editorFramework/test/Layer0/dom/tracking-text4-expected.html
new file mode 100644
index 0000000..6103a83
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking-text4-expected.html
@@ -0,0 +1,45 @@
+<html>
+ <head></head>
+ <body>
+ -
+Before text change:
+positions[0] = "|Here is some text"
+positions[1] = "H|ere is some text"
+positions[2] = "He|re is some text"
+positions[3] = "Her|e is some text"
+positions[4] = "Here| is some text"
+positions[5] = "Here |is some text"
+positions[6] = "Here i|s some text"
+positions[7] = "Here is| some text"
+positions[8] = "Here is |some text"
+positions[9] = "Here is s|ome text"
+positions[10] = "Here is so|me text"
+positions[11] = "Here is som|e text"
+positions[12] = "Here is some| text"
+positions[13] = "Here is some |text"
+positions[14] = "Here is some t|ext"
+positions[15] = "Here is some te|xt"
+positions[16] = "Here is some tex|t"
+positions[17] = "Here is some text|"
+After text change:
+positions[0] = "|Here is (inserted)some text"
+positions[1] = "H|ere is (inserted)some text"
+positions[2] = "He|re is (inserted)some text"
+positions[3] = "Her|e is (inserted)some text"
+positions[4] = "Here| is (inserted)some text"
+positions[5] = "Here |is (inserted)some text"
+positions[6] = "Here i|s (inserted)some text"
+positions[7] = "Here is| (inserted)some text"
+positions[8] = "Here is |(inserted)some text"
+positions[9] = "Here is (inserted)s|ome text"
+positions[10] = "Here is (inserted)so|me text"
+positions[11] = "Here is (inserted)som|e text"
+positions[12] = "Here is (inserted)some| text"
+positions[13] = "Here is (inserted)some |text"
+positions[14] = "Here is (inserted)some t|ext"
+positions[15] = "Here is (inserted)some te|xt"
+positions[16] = "Here is (inserted)some tex|t"
+positions[17] = "Here is (inserted)some text|"
+-
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/tracking-text4-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking-text4-input.html b/experiments/editorFramework/test/Layer0/dom/tracking-text4-input.html
new file mode 100644
index 0000000..7c1fe7b
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking-text4-input.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+ var p = document.getElementsByTagName("P")[0];
+ var text = p.firstChild;
+ var positions = new Array();
+ for (var i = 0; i <= text.nodeValue.length; i++)
+ positions.push(new Position(text,i));
+
+ var messages = new Array();
+ messages.push("Before text change:");
+ for (var i = 0; i < positions.length; i++)
+ messages.push("positions["+i+"] = "+positions[i]);
+
+ Position_trackWhileExecuting(positions,function() {
+ DOM_insertCharacters(text,8,"(inserted)");
+ });
+
+ messages.push("After text change:");
+ for (var i = 0; i < positions.length; i++)
+ messages.push("positions["+i+"] = "+positions[i]);
+
+ DOM_deleteAllChildren(document.body);
+ DOM_appendChild(document.body,DOM_createTextNode(document,"-\n"+messages.join("\n")+"\n-"));
+}
+</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/dom/tracking-text5-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking-text5-expected.html b/experiments/editorFramework/test/Layer0/dom/tracking-text5-expected.html
new file mode 100644
index 0000000..f935774
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking-text5-expected.html
@@ -0,0 +1,45 @@
+<html>
+ <head></head>
+ <body>
+ -
+Before text change:
+positions[0] = "|Here is some text"
+positions[1] = "H|ere is some text"
+positions[2] = "He|re is some text"
+positions[3] = "Her|e is some text"
+positions[4] = "Here| is some text"
+positions[5] = "Here |is some text"
+positions[6] = "Here i|s some text"
+positions[7] = "Here is| some text"
+positions[8] = "Here is |some text"
+positions[9] = "Here is s|ome text"
+positions[10] = "Here is so|me text"
+positions[11] = "Here is som|e text"
+positions[12] = "Here is some| text"
+positions[13] = "Here is some |text"
+positions[14] = "Here is some t|ext"
+positions[15] = "Here is some te|xt"
+positions[16] = "Here is some tex|t"
+positions[17] = "Here is some text|"
+After text change:
+positions[0] = "|(inserted)Here is some text"
+positions[1] = "(inserted)H|ere is some text"
+positions[2] = "(inserted)He|re is some text"
+positions[3] = "(inserted)Her|e is some text"
+positions[4] = "(inserted)Here| is some text"
+positions[5] = "(inserted)Here |is some text"
+positions[6] = "(inserted)Here i|s some text"
+positions[7] = "(inserted)Here is| some text"
+positions[8] = "(inserted)Here is |some text"
+positions[9] = "(inserted)Here is s|ome text"
+positions[10] = "(inserted)Here is so|me text"
+positions[11] = "(inserted)Here is som|e text"
+positions[12] = "(inserted)Here is some| text"
+positions[13] = "(inserted)Here is some |text"
+positions[14] = "(inserted)Here is some t|ext"
+positions[15] = "(inserted)Here is some te|xt"
+positions[16] = "(inserted)Here is some tex|t"
+positions[17] = "(inserted)Here is some text|"
+-
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/tracking-text5-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking-text5-input.html b/experiments/editorFramework/test/Layer0/dom/tracking-text5-input.html
new file mode 100644
index 0000000..c4b0018
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking-text5-input.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+ var p = document.getElementsByTagName("P")[0];
+ var text = p.firstChild;
+ var positions = new Array();
+ for (var i = 0; i <= text.nodeValue.length; i++)
+ positions.push(new Position(text,i));
+
+ var messages = new Array();
+ messages.push("Before text change:");
+ for (var i = 0; i < positions.length; i++)
+ messages.push("positions["+i+"] = "+positions[i]);
+
+ Position_trackWhileExecuting(positions,function() {
+ DOM_insertCharacters(text,0,"(inserted)");
+ });
+
+ messages.push("After text change:");
+ for (var i = 0; i < positions.length; i++)
+ messages.push("positions["+i+"] = "+positions[i]);
+
+ DOM_deleteAllChildren(document.body);
+ DOM_appendChild(document.body,DOM_createTextNode(document,"-\n"+messages.join("\n")+"\n-"));
+}
+</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/dom/tracking-text6-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking-text6-expected.html b/experiments/editorFramework/test/Layer0/dom/tracking-text6-expected.html
new file mode 100644
index 0000000..0f5ab29
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking-text6-expected.html
@@ -0,0 +1,45 @@
+<html>
+ <head></head>
+ <body>
+ -
+Before text change:
+positions[0] = "|Here is some text"
+positions[1] = "H|ere is some text"
+positions[2] = "He|re is some text"
+positions[3] = "Her|e is some text"
+positions[4] = "Here| is some text"
+positions[5] = "Here |is some text"
+positions[6] = "Here i|s some text"
+positions[7] = "Here is| some text"
+positions[8] = "Here is |some text"
+positions[9] = "Here is s|ome text"
+positions[10] = "Here is so|me text"
+positions[11] = "Here is som|e text"
+positions[12] = "Here is some| text"
+positions[13] = "Here is some |text"
+positions[14] = "Here is some t|ext"
+positions[15] = "Here is some te|xt"
+positions[16] = "Here is some tex|t"
+positions[17] = "Here is some text|"
+After text change:
+positions[0] = "|Here is some text(inserted)"
+positions[1] = "H|ere is some text(inserted)"
+positions[2] = "He|re is some text(inserted)"
+positions[3] = "Her|e is some text(inserted)"
+positions[4] = "Here| is some text(inserted)"
+positions[5] = "Here |is some text(inserted)"
+positions[6] = "Here i|s some text(inserted)"
+positions[7] = "Here is| some text(inserted)"
+positions[8] = "Here is |some text(inserted)"
+positions[9] = "Here is s|ome text(inserted)"
+positions[10] = "Here is so|me text(inserted)"
+positions[11] = "Here is som|e text(inserted)"
+positions[12] = "Here is some| text(inserted)"
+positions[13] = "Here is some |text(inserted)"
+positions[14] = "Here is some t|ext(inserted)"
+positions[15] = "Here is some te|xt(inserted)"
+positions[16] = "Here is some tex|t(inserted)"
+positions[17] = "Here is some text|(inserted)"
+-
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/tracking-text6-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking-text6-input.html b/experiments/editorFramework/test/Layer0/dom/tracking-text6-input.html
new file mode 100644
index 0000000..07b8887
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking-text6-input.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+ var p = document.getElementsByTagName("P")[0];
+ var text = p.firstChild;
+ var positions = new Array();
+ for (var i = 0; i <= text.nodeValue.length; i++)
+ positions.push(new Position(text,i));
+
+ var messages = new Array();
+ messages.push("Before text change:");
+ for (var i = 0; i < positions.length; i++)
+ messages.push("positions["+i+"] = "+positions[i]);
+
+ Position_trackWhileExecuting(positions,function() {
+ DOM_insertCharacters(text,text.nodeValue.length,"(inserted)");
+ });
+
+ messages.push("After text change:");
+ for (var i = 0; i < positions.length; i++)
+ messages.push("positions["+i+"] = "+positions[i]);
+
+ DOM_deleteAllChildren(document.body);
+ DOM_appendChild(document.body,DOM_createTextNode(document,"-\n"+messages.join("\n")+"\n-"));
+}
+</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/dom/tracking-text7-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking-text7-expected.html b/experiments/editorFramework/test/Layer0/dom/tracking-text7-expected.html
new file mode 100644
index 0000000..6e62c11
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking-text7-expected.html
@@ -0,0 +1,45 @@
+<html>
+ <head></head>
+ <body>
+ -
+Before text change:
+positions[0] = "|Here is some text"
+positions[1] = "H|ere is some text"
+positions[2] = "He|re is some text"
+positions[3] = "Her|e is some text"
+positions[4] = "Here| is some text"
+positions[5] = "Here |is some text"
+positions[6] = "Here i|s some text"
+positions[7] = "Here is| some text"
+positions[8] = "Here is |some text"
+positions[9] = "Here is s|ome text"
+positions[10] = "Here is so|me text"
+positions[11] = "Here is som|e text"
+positions[12] = "Here is some| text"
+positions[13] = "Here is some |text"
+positions[14] = "Here is some t|ext"
+positions[15] = "Here is some te|xt"
+positions[16] = "Here is some tex|t"
+positions[17] = "Here is some text|"
+After text change:
+positions[0] = "|Here is (inserted)text"
+positions[1] = "H|ere is (inserted)text"
+positions[2] = "He|re is (inserted)text"
+positions[3] = "Her|e is (inserted)text"
+positions[4] = "Here| is (inserted)text"
+positions[5] = "Here |is (inserted)text"
+positions[6] = "Here i|s (inserted)text"
+positions[7] = "Here is| (inserted)text"
+positions[8] = "Here is |(inserted)text"
+positions[9] = "Here is |(inserted)text"
+positions[10] = "Here is |(inserted)text"
+positions[11] = "Here is |(inserted)text"
+positions[12] = "Here is |(inserted)text"
+positions[13] = "Here is |(inserted)text"
+positions[14] = "Here is (inserted)t|ext"
+positions[15] = "Here is (inserted)te|xt"
+positions[16] = "Here is (inserted)tex|t"
+positions[17] = "Here is (inserted)text|"
+-
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/tracking-text7-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking-text7-input.html b/experiments/editorFramework/test/Layer0/dom/tracking-text7-input.html
new file mode 100644
index 0000000..00942ca
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking-text7-input.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+ var p = document.getElementsByTagName("P")[0];
+ var text = p.firstChild;
+ var positions = new Array();
+ for (var i = 0; i <= text.nodeValue.length; i++)
+ positions.push(new Position(text,i));
+
+ var messages = new Array();
+ messages.push("Before text change:");
+ for (var i = 0; i < positions.length; i++)
+ messages.push("positions["+i+"] = "+positions[i]);
+
+ Position_trackWhileExecuting(positions,function() {
+ DOM_deleteCharacters(text,8,13);
+ DOM_insertCharacters(text,8,"(inserted)");
+ });
+
+ messages.push("After text change:");
+ for (var i = 0; i < positions.length; i++)
+ messages.push("positions["+i+"] = "+positions[i]);
+
+ DOM_deleteAllChildren(document.body);
+ DOM_appendChild(document.body,DOM_createTextNode(document,"-\n"+messages.join("\n")+"\n-"));
+}
+</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/dom/tracking-text8-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking-text8-expected.html b/experiments/editorFramework/test/Layer0/dom/tracking-text8-expected.html
new file mode 100644
index 0000000..7fff8bb
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking-text8-expected.html
@@ -0,0 +1,45 @@
+<html>
+ <head></head>
+ <body>
+ -
+Before text change:
+positions[0] = "|Here is some text"
+positions[1] = "H|ere is some text"
+positions[2] = "He|re is some text"
+positions[3] = "Her|e is some text"
+positions[4] = "Here| is some text"
+positions[5] = "Here |is some text"
+positions[6] = "Here i|s some text"
+positions[7] = "Here is| some text"
+positions[8] = "Here is |some text"
+positions[9] = "Here is s|ome text"
+positions[10] = "Here is so|me text"
+positions[11] = "Here is som|e text"
+positions[12] = "Here is some| text"
+positions[13] = "Here is some |text"
+positions[14] = "Here is some t|ext"
+positions[15] = "Here is some te|xt"
+positions[16] = "Here is some tex|t"
+positions[17] = "Here is some text|"
+After text change:
+positions[0] = "|(inserted) is some text"
+positions[1] = "|(inserted) is some text"
+positions[2] = "|(inserted) is some text"
+positions[3] = "|(inserted) is some text"
+positions[4] = "|(inserted) is some text"
+positions[5] = "(inserted) |is some text"
+positions[6] = "(inserted) i|s some text"
+positions[7] = "(inserted) is| some text"
+positions[8] = "(inserted) is |some text"
+positions[9] = "(inserted) is s|ome text"
+positions[10] = "(inserted) is so|me text"
+positions[11] = "(inserted) is som|e text"
+positions[12] = "(inserted) is some| text"
+positions[13] = "(inserted) is some |text"
+positions[14] = "(inserted) is some t|ext"
+positions[15] = "(inserted) is some te|xt"
+positions[16] = "(inserted) is some tex|t"
+positions[17] = "(inserted) is some text|"
+-
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/tracking-text8-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking-text8-input.html b/experiments/editorFramework/test/Layer0/dom/tracking-text8-input.html
new file mode 100644
index 0000000..d40c4a1
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking-text8-input.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+ var p = document.getElementsByTagName("P")[0];
+ var text = p.firstChild;
+ var positions = new Array();
+ for (var i = 0; i <= text.nodeValue.length; i++)
+ positions.push(new Position(text,i));
+
+ var messages = new Array();
+ messages.push("Before text change:");
+ for (var i = 0; i < positions.length; i++)
+ messages.push("positions["+i+"] = "+positions[i]);
+
+ Position_trackWhileExecuting(positions,function() {
+ DOM_deleteCharacters(text,0,4);
+ DOM_insertCharacters(text,0,"(inserted)");
+ });
+
+ messages.push("After text change:");
+ for (var i = 0; i < positions.length; i++)
+ messages.push("positions["+i+"] = "+positions[i]);
+
+ DOM_deleteAllChildren(document.body);
+ DOM_appendChild(document.body,DOM_createTextNode(document,"-\n"+messages.join("\n")+"\n-"));
+}
+</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/dom/tracking-text9-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking-text9-expected.html b/experiments/editorFramework/test/Layer0/dom/tracking-text9-expected.html
new file mode 100644
index 0000000..369dd26
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking-text9-expected.html
@@ -0,0 +1,45 @@
+<html>
+ <head></head>
+ <body>
+ -
+Before text change:
+positions[0] = "|Here is some text"
+positions[1] = "H|ere is some text"
+positions[2] = "He|re is some text"
+positions[3] = "Her|e is some text"
+positions[4] = "Here| is some text"
+positions[5] = "Here |is some text"
+positions[6] = "Here i|s some text"
+positions[7] = "Here is| some text"
+positions[8] = "Here is |some text"
+positions[9] = "Here is s|ome text"
+positions[10] = "Here is so|me text"
+positions[11] = "Here is som|e text"
+positions[12] = "Here is some| text"
+positions[13] = "Here is some |text"
+positions[14] = "Here is some t|ext"
+positions[15] = "Here is some te|xt"
+positions[16] = "Here is some tex|t"
+positions[17] = "Here is some text|"
+After text change:
+positions[0] = "|text(inserted)"
+positions[1] = "|text(inserted)"
+positions[2] = "|text(inserted)"
+positions[3] = "|text(inserted)"
+positions[4] = "|text(inserted)"
+positions[5] = "|text(inserted)"
+positions[6] = "|text(inserted)"
+positions[7] = "|text(inserted)"
+positions[8] = "|text(inserted)"
+positions[9] = "|text(inserted)"
+positions[10] = "|text(inserted)"
+positions[11] = "|text(inserted)"
+positions[12] = "|text(inserted)"
+positions[13] = "|text(inserted)"
+positions[14] = "t|ext(inserted)"
+positions[15] = "te|xt(inserted)"
+positions[16] = "tex|t(inserted)"
+positions[17] = "text|(inserted)"
+-
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/tracking-text9-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking-text9-input.html b/experiments/editorFramework/test/Layer0/dom/tracking-text9-input.html
new file mode 100644
index 0000000..326c848
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking-text9-input.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+ var p = document.getElementsByTagName("P")[0];
+ var text = p.firstChild;
+ var positions = new Array();
+ for (var i = 0; i <= text.nodeValue.length; i++)
+ positions.push(new Position(text,i));
+
+ var messages = new Array();
+ messages.push("Before text change:");
+ for (var i = 0; i < positions.length; i++)
+ messages.push("positions["+i+"] = "+positions[i]);
+
+ Position_trackWhileExecuting(positions,function() {
+ DOM_deleteCharacters(text,0,13);
+ DOM_insertCharacters(text,text.nodeValue.length,"(inserted)");
+ });
+
+ messages.push("After text change:");
+ for (var i = 0; i < positions.length; i++)
+ messages.push("positions["+i+"] = "+positions[i]);
+
+ DOM_deleteAllChildren(document.body);
+ DOM_appendChild(document.body,DOM_createTextNode(document,"-\n"+messages.join("\n")+"\n-"));
+}
+</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/dom/tracking-wrapNode-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking-wrapNode-expected.html b/experiments/editorFramework/test/Layer0/dom/tracking-wrapNode-expected.html
new file mode 100644
index 0000000..7012054
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking-wrapNode-expected.html
@@ -0,0 +1,67 @@
+<html>
+ <head>
+ </head>
+ <body>
+ -
+Before: positions[0] = (BODY,0)
+Before: positions[1] = (P#p1,0)
+Before: positions[2] = "|ab"
+Before: positions[3] = "a|b"
+Before: positions[4] = "ab|"
+Before: positions[5] = (P#p1,1)
+Before: positions[6] = (BR,0)
+Before: positions[7] = (P#p1,2)
+Before: positions[8] = (BODY,1)
+Before: positions[9] = (P#p2,0)
+Before: positions[10] = "|cd"
+Before: positions[11] = "c|d"
+Before: positions[12] = "cd|"
+Before: positions[13] = (P#p2,1)
+Before: positions[14] = (BR,0)
+Before: positions[15] = (P#p2,2)
+Before: positions[16] = (BODY,2)
+Before: positions[17] = (P#p3,0)
+Before: positions[18] = "|ef"
+Before: positions[19] = "e|f"
+Before: positions[20] = "ef|"
+Before: positions[21] = (P#p3,1)
+Before: positions[22] = (BR,0)
+Before: positions[23] = (P#p3,2)
+Before: positions[24] = (BODY,3)
+Before: positions[25] = "|\n\n"
+Before: positions[26] = "\n|\n"
+Before: positions[27] = "\n\n|"
+Before: positions[28] = (BODY,4)
+
+After: positions[0] = (BODY,0)
+After: positions[1] = (P#p1,0)
+After: positions[2] = "|ab"
+After: positions[3] = "a|b"
+After: positions[4] = "ab|"
+After: positions[5] = (P#p1,1)
+After: positions[6] = (BR,0)
+After: positions[7] = (P#p1,2)
+After: positions[8] = (DIV,0) - changed from (BODY,1)
+After: positions[9] = (P#p2,0)
+After: positions[10] = "|cd"
+After: positions[11] = "c|d"
+After: positions[12] = "cd|"
+After: positions[13] = (P#p2,1)
+After: positions[14] = (BR,0)
+After: positions[15] = (P#p2,2)
+After: positions[16] = (DIV,1) - changed from (BODY,2)
+After: positions[17] = (P#p3,0)
+After: positions[18] = "|ef"
+After: positions[19] = "e|f"
+After: positions[20] = "ef|"
+After: positions[21] = (P#p3,1)
+After: positions[22] = (BR,0)
+After: positions[23] = (P#p3,2)
+After: positions[24] = (BODY,3)
+After: positions[25] = "|\n\n"
+After: positions[26] = "\n|\n"
+After: positions[27] = "\n\n|"
+After: positions[28] = (BODY,4)
+-
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/tracking-wrapNode-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking-wrapNode-input.html b/experiments/editorFramework/test/Layer0/dom/tracking-wrapNode-input.html
new file mode 100644
index 0000000..b38dc71
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking-wrapNode-input.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script type="text/javascript" src="RangeTest.js"></script>
+<script>
+
+function performTest()
+{
+ // DOM_wrapNode() should only affect positions which come directly
+ // before or after the node.
+
+ var result = comparePositionsBeforeAndAfter(function() {
+ DOM_wrapNode(document.getElementById("p2"),"DIV");
+ });
+
+ DOM_deleteAllChildren(document.body);
+ DOM_appendChild(document.body,DOM_createTextNode(document,"-\n"+result+"\n-"));
+}
+</script>
+</head>
+<body><p id="p1">ab<br></p><p id="p2">cd<br></p><p id="p3">ef<br></p></body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/tracking1-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking1-expected.html b/experiments/editorFramework/test/Layer0/dom/tracking1-expected.html
new file mode 100644
index 0000000..a4bd0ab
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking1-expected.html
@@ -0,0 +1,32 @@
+<html>
+ <head></head>
+ <body>
+ -
+posOffset 0, nodeOffset 0: (BODY,0) (BODY,0) (BODY,0)
+posOffset 0, nodeOffset 1: (BODY,0) (BODY,0) (BODY,0)
+posOffset 0, nodeOffset 2: (BODY,0) (BODY,0) (BODY,0)
+posOffset 0, nodeOffset 3: (BODY,0) (BODY,0) (BODY,0)
+posOffset 0, nodeOffset 4: (BODY,0) (BODY,0) (BODY,0)
+posOffset 1, nodeOffset 0: (BODY,1) (BODY,2) (BODY,1)
+posOffset 1, nodeOffset 1: (BODY,1) (BODY,1) (BODY,1)
+posOffset 1, nodeOffset 2: (BODY,1) (BODY,1) (BODY,1)
+posOffset 1, nodeOffset 3: (BODY,1) (BODY,1) (BODY,1)
+posOffset 1, nodeOffset 4: (BODY,1) (BODY,1) (BODY,1)
+posOffset 2, nodeOffset 0: (BODY,2) (BODY,3) (BODY,2)
+posOffset 2, nodeOffset 1: (BODY,2) (BODY,3) (BODY,2)
+posOffset 2, nodeOffset 2: (BODY,2) (BODY,2) (BODY,2)
+posOffset 2, nodeOffset 3: (BODY,2) (BODY,2) (BODY,2)
+posOffset 2, nodeOffset 4: (BODY,2) (BODY,2) (BODY,2)
+posOffset 3, nodeOffset 0: (BODY,3) (BODY,4) (BODY,3)
+posOffset 3, nodeOffset 1: (BODY,3) (BODY,4) (BODY,3)
+posOffset 3, nodeOffset 2: (BODY,3) (BODY,4) (BODY,3)
+posOffset 3, nodeOffset 3: (BODY,3) (BODY,3) (BODY,3)
+posOffset 3, nodeOffset 4: (BODY,3) (BODY,3) (BODY,3)
+posOffset 4, nodeOffset 0: (BODY,4) (BODY,5) (BODY,4)
+posOffset 4, nodeOffset 1: (BODY,4) (BODY,5) (BODY,4)
+posOffset 4, nodeOffset 2: (BODY,4) (BODY,5) (BODY,4)
+posOffset 4, nodeOffset 3: (BODY,4) (BODY,5) (BODY,4)
+posOffset 4, nodeOffset 4: (BODY,4) (BODY,4) (BODY,4)
+-
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/tracking1-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking1-input.html b/experiments/editorFramework/test/Layer0/dom/tracking1-input.html
new file mode 100644
index 0000000..f819e8e
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking1-input.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+ var ps = document.getElementsByTagName("P");
+
+ var messages = new Array();
+ var nodeCount = document.body.childNodes.length;
+ for (var posOffset = 0; posOffset <= nodeCount; posOffset++) {
+ for (var nodeOffset = 0; nodeOffset <= nodeCount; nodeOffset++) {
+ var position = new Position(document.body,posOffset);
+ var temp = DOM_createElement(document,"B");
+ Position_trackWhileExecuting([position],function() {
+ var message = "posOffset "+posOffset+", nodeOffset "+nodeOffset+": "+position;
+ DOM_insertBefore(document.body,temp,document.body.childNodes[nodeOffset]);
+ message += " "+position;
+ DOM_deleteNode(temp);
+ message += " "+position;
+ messages.push(message);
+ });
+ }
+ }
+
+ DOM_deleteAllChildren(document.body);
+ DOM_appendChild(document.body,DOM_createTextNode(document,"-\n"+messages.join("\n")+"\n-"));
+}
+</script>
+</head>
+<body><p>One</p><p>Two</p><p>Three</p></body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/tracking2-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking2-expected.html b/experiments/editorFramework/test/Layer0/dom/tracking2-expected.html
new file mode 100644
index 0000000..bfde537
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking2-expected.html
@@ -0,0 +1,11 @@
+<html>
+ <head></head>
+ <body>
+ -
+Before insertion: position = (BODY,4)
+After insertion: position = (BODY,4)
+Before removal: position = (BODY,4)
+After removal: position = (BODY,4)
+-
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/tracking2-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking2-input.html b/experiments/editorFramework/test/Layer0/dom/tracking2-input.html
new file mode 100644
index 0000000..a17a42b
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking2-input.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+ var messages = new Array();
+
+ var ps = document.getElementsByTagName("P");
+ var position = new Position(document.body,document.body.childNodes.length);
+ messages.push("Before insertion: position = "+position);
+ Position_trackWhileExecuting([position],function() {
+ DOM_appendChild(ps[0],DOM_createTextNode(document,"X"));
+ });
+ messages.push("After insertion: position = "+position);
+
+ var position = new Position(document.body,document.body.childNodes.length);
+ messages.push("Before removal: position = "+position);
+ Position_trackWhileExecuting([position],function() {
+ DOM_deleteNode(ps[0].firstChild);
+ });
+ messages.push("After removal: position = "+position);
+
+ DOM_deleteAllChildren(document.body);
+ DOM_appendChild(document.body,DOM_createTextNode(document,"-\n"+messages.join("\n")+"\n-"));
+}
+</script>
+</head>
+<body><p>One</p><p>Two</p><p>Three</p></body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/tracking3-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking3-expected.html b/experiments/editorFramework/test/Layer0/dom/tracking3-expected.html
new file mode 100644
index 0000000..92d4b24
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking3-expected.html
@@ -0,0 +1,10 @@
+<html>
+ <head></head>
+ <body>
+ <span>Zero</span>
+ <tt/>
+ <span>One</span>
+ <p>Two</p>
+ <p>Three</p>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/tracking3-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking3-input.html b/experiments/editorFramework/test/Layer0/dom/tracking3-input.html
new file mode 100644
index 0000000..609fd52
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking3-input.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+ var ps = document.getElementsByTagName("P");
+ var position = new Position(ps[0],1);
+
+ Position_trackWhileExecuting([position],function() {
+ DOM_removeNodeButKeepChildren(ps[0]);
+ });
+
+ var tt = DOM_createElement(document,"tt");
+ insertAtPosition(position,tt);
+}
+</script>
+</head>
+<body><p><span>Zero</span><span>One</span></p><p>Two</p><p>Three</p></body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/tracking4-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking4-expected.html b/experiments/editorFramework/test/Layer0/dom/tracking4-expected.html
new file mode 100644
index 0000000..bf11c6b
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking4-expected.html
@@ -0,0 +1,13 @@
+<html>
+ <head></head>
+ <body>
+ <p>
+ <b/>
+ <span>Zero</span>
+ <span>One</span>
+ <i/>
+ </p>
+ <p>Two</p>
+ <p>Three</p>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/tracking4-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/tracking4-input.html b/experiments/editorFramework/test/Layer0/dom/tracking4-input.html
new file mode 100644
index 0000000..3f78b47
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/tracking4-input.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+ var ps = document.getElementsByTagName("P");
+ var pos1 = new Position(ps[0],0);
+ var pos2 = new Position(ps[0],2);
+
+ Position_trackWhileExecuting([pos1,pos2],function() {
+ insertAtPosition(pos1,DOM_createElement(document,"b"));
+ insertAtPosition(pos2,DOM_createElement(document,"i"));
+ });
+}
+</script>
+</head>
+<body><p><span>Zero</span><span>One</span></p><p>Two</p><p>Three</p></body></html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/wrapSiblings01-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/wrapSiblings01-expected.html b/experiments/editorFramework/test/Layer0/dom/wrapSiblings01-expected.html
new file mode 100644
index 0000000..30ede3c
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/wrapSiblings01-expected.html
@@ -0,0 +1,26 @@
+<html>
+ <head></head>
+ <body>
+ <p>
+ (P,0)
+ <b>A</b>
+ (P,1)
+ <b>B</b>
+ <i>
+ (I,0)
+ <b>C</b>
+ (I,1)
+ <b>D</b>
+ (I,2)
+ <b>E</b>
+ (I,3)
+ <b>F</b>
+ (I,4)
+ </i>
+ <b>G</b>
+ (P,4)
+ <b>H</b>
+ (P,5)
+ </p>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/wrapSiblings01-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/wrapSiblings01-input.html b/experiments/editorFramework/test/Layer0/dom/wrapSiblings01-input.html
new file mode 100644
index 0000000..4dcb25a
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/wrapSiblings01-input.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+ var p = DOM_createElement(document,"P");
+ var nchildren = 8;
+ var positions = new Array();
+ var baseCode = "A".charCodeAt(0);
+ for (var i = 0; i < nchildren; i++) {
+ var b = DOM_createElement(document,"B");
+ DOM_appendChild(b,DOM_createTextNode(document,String.fromCharCode(baseCode+i)));
+ DOM_appendChild(p,b);
+ positions.push(new Position(p,i));
+ }
+ positions.push(new Position(p,nchildren));
+ DOM_appendChild(document.body,p);
+
+ Position_trackWhileExecuting(positions,function() {
+ DOM_wrapSiblings(p.childNodes[2],p.childNodes[5],"I");
+ });
+
+ var lines = new Array();
+ for (var i = 0; i < positions.length; i++)
+ lines.push(positions[i].toString()+"\n");
+
+ for (var i = positions.length-1; i >= 0; i--) {
+ var pos = positions[i];
+ var text = DOM_createTextNode(document,pos.toString());
+ DOM_insertBefore(pos.node,text,pos.node.childNodes[pos.offset]);
+ }
+}
+</script>
+</head>
+<body>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/wrapSiblings02-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/wrapSiblings02-expected.html b/experiments/editorFramework/test/Layer0/dom/wrapSiblings02-expected.html
new file mode 100644
index 0000000..2152c93
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/wrapSiblings02-expected.html
@@ -0,0 +1,26 @@
+<html>
+ <head></head>
+ <body>
+ <p>
+ (P,0)
+ <b>A</b>
+ (P,1)
+ <b>B</b>
+ <i>
+ (I,0)
+ <b>C</b>
+ (I,1)
+ </i>
+ <b>D</b>
+ (P,4)
+ <b>E</b>
+ (P,5)
+ <b>F</b>
+ (P,6)
+ <b>G</b>
+ (P,7)
+ <b>H</b>
+ (P,8)
+ </p>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/wrapSiblings02-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/wrapSiblings02-input.html b/experiments/editorFramework/test/Layer0/dom/wrapSiblings02-input.html
new file mode 100644
index 0000000..0c70e18
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/wrapSiblings02-input.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+ var p = DOM_createElement(document,"P");
+ var nchildren = 8;
+ var positions = new Array();
+ var baseCode = "A".charCodeAt(0);
+ for (var i = 0; i < nchildren; i++) {
+ var b = DOM_createElement(document,"B");
+ DOM_appendChild(b,DOM_createTextNode(document,String.fromCharCode(baseCode+i)));
+ DOM_appendChild(p,b);
+ positions.push(new Position(p,i));
+ }
+ positions.push(new Position(p,nchildren));
+ DOM_appendChild(document.body,p);
+
+ Position_trackWhileExecuting(positions,function() {
+ DOM_wrapSiblings(p.childNodes[2],p.childNodes[2],"I");
+ });
+
+ var lines = new Array();
+ for (var i = 0; i < positions.length; i++)
+ lines.push(positions[i].toString()+"\n");
+
+ for (var i = positions.length-1; i >= 0; i--) {
+ var pos = positions[i];
+ var text = DOM_createTextNode(document,pos.toString());
+ DOM_insertBefore(pos.node,text,pos.node.childNodes[pos.offset]);
+ }
+}
+</script>
+</head>
+<body>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/wrapSiblings03-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/wrapSiblings03-expected.html b/experiments/editorFramework/test/Layer0/dom/wrapSiblings03-expected.html
new file mode 100644
index 0000000..ffdb792
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/wrapSiblings03-expected.html
@@ -0,0 +1,26 @@
+<html>
+ <head></head>
+ <body>
+ <p>
+ <i>
+ (I,0)
+ <b>A</b>
+ (I,1)
+ <b>B</b>
+ (I,2)
+ <b>C</b>
+ (I,3)
+ <b>D</b>
+ (I,4)
+ <b>E</b>
+ (I,5)
+ </i>
+ <b>F</b>
+ (P,2)
+ <b>G</b>
+ (P,3)
+ <b>H</b>
+ (P,4)
+ </p>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/wrapSiblings03-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/wrapSiblings03-input.html b/experiments/editorFramework/test/Layer0/dom/wrapSiblings03-input.html
new file mode 100644
index 0000000..14dffba
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/wrapSiblings03-input.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+ var p = DOM_createElement(document,"P");
+ var nchildren = 8;
+ var positions = new Array();
+ var baseCode = "A".charCodeAt(0);
+ for (var i = 0; i < nchildren; i++) {
+ var b = DOM_createElement(document,"B");
+ DOM_appendChild(b,DOM_createTextNode(document,String.fromCharCode(baseCode+i)));
+ DOM_appendChild(p,b);
+ positions.push(new Position(p,i));
+ }
+ positions.push(new Position(p,nchildren));
+ DOM_appendChild(document.body,p);
+
+ Position_trackWhileExecuting(positions,function() {
+ DOM_wrapSiblings(p.childNodes[0],p.childNodes[4],"I");
+ });
+
+ var lines = new Array();
+ for (var i = 0; i < positions.length; i++)
+ lines.push(positions[i].toString()+"\n");
+
+ for (var i = positions.length-1; i >= 0; i--) {
+ var pos = positions[i];
+ var text = DOM_createTextNode(document,pos.toString());
+ DOM_insertBefore(pos.node,text,pos.node.childNodes[pos.offset]);
+ }
+}
+</script>
+</head>
+<body>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/wrapSiblings04-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/wrapSiblings04-expected.html b/experiments/editorFramework/test/Layer0/dom/wrapSiblings04-expected.html
new file mode 100644
index 0000000..2de899e
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/wrapSiblings04-expected.html
@@ -0,0 +1,26 @@
+<html>
+ <head></head>
+ <body>
+ <p>
+ (P,0)
+ <b>A</b>
+ (P,1)
+ <b>B</b>
+ (P,2)
+ <b>C</b>
+ <i>
+ (I,0)
+ <b>D</b>
+ (I,1)
+ <b>E</b>
+ (I,2)
+ <b>F</b>
+ (I,3)
+ <b>G</b>
+ (I,4)
+ <b>H</b>
+ (I,5)
+ </i>
+ </p>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/dom/wrapSiblings04-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/dom/wrapSiblings04-input.html b/experiments/editorFramework/test/Layer0/dom/wrapSiblings04-input.html
new file mode 100644
index 0000000..0516d5e
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/dom/wrapSiblings04-input.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+ var p = DOM_createElement(document,"P");
+ var nchildren = 8;
+ var positions = new Array();
+ var baseCode = "A".charCodeAt(0);
+ for (var i = 0; i < nchildren; i++) {
+ var b = DOM_createElement(document,"B");
+ DOM_appendChild(b,DOM_createTextNode(document,String.fromCharCode(baseCode+i)));
+ DOM_appendChild(p,b);
+ positions.push(new Position(p,i));
+ }
+ positions.push(new Position(p,nchildren));
+ DOM_appendChild(document.body,p);
+
+ Position_trackWhileExecuting(positions,function() {
+ DOM_wrapSiblings(p.childNodes[3],p.childNodes[7],"I");
+ });
+
+ var lines = new Array();
+ for (var i = 0; i < positions.length; i++)
+ lines.push(positions[i].toString()+"\n");
+
+ for (var i = positions.length-1; i >= 0; i--) {
+ var pos = positions[i];
+ var text = DOM_createTextNode(document,pos.toString());
+ DOM_insertBefore(pos.node,text,pos.node.childNodes[pos.offset]);
+ }
+}
+</script>
+</head>
+<body>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/figures/FiguresTest.js
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/figures/FiguresTest.js b/experiments/editorFramework/test/Layer0/figures/FiguresTest.js
new file mode 100644
index 0000000..385017a
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/figures/FiguresTest.js
@@ -0,0 +1,35 @@
+// 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 figurePropertiesString(index)
+{
+ var figure = document.getElementsByTagName("FIGURE")[0];
+ var parent = figure.parentNode;
+ var offset = DOM_nodeOffset(figure);
+ Selection_set(parent,offset,parent,offset+1);
+ var properties = Figures_getProperties(Figures_getSelectedFigureId());
+ var strings = new Array();
+ var names = Object.getOwnPropertyNames(properties).sort();
+ for (var i = 0; i < names.length; i++) {
+ var name = names[i];
+ if (properties[name] == null)
+ strings.push(name+" = null");
+ else
+ strings.push(name+" = "+properties[name]);
+ }
+ return strings.join("\n");
+}
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/figures/getProperties01-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/figures/getProperties01-expected.html b/experiments/editorFramework/test/Layer0/figures/getProperties01-expected.html
new file mode 100644
index 0000000..4a2f422
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/figures/getProperties01-expected.html
@@ -0,0 +1,2 @@
+src = nothing.png
+width = null
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/figures/getProperties01-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/figures/getProperties01-input.html b/experiments/editorFramework/test/Layer0/figures/getProperties01-input.html
new file mode 100644
index 0000000..0c79db8
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/figures/getProperties01-input.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="FiguresTest.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ PostponedActions_perform();
+
+ Figures_insertFigure("nothing.png",null,false,null);
+ PostponedActions_perform();
+
+ return figurePropertiesString(0);
+}
+</script>
+</head>
+<body>
+[]
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/figures/getProperties02-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/figures/getProperties02-expected.html b/experiments/editorFramework/test/Layer0/figures/getProperties02-expected.html
new file mode 100644
index 0000000..1de41c6
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/figures/getProperties02-expected.html
@@ -0,0 +1,2 @@
+src = nothing.png
+width = 60%
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/figures/getProperties02-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/figures/getProperties02-input.html b/experiments/editorFramework/test/Layer0/figures/getProperties02-input.html
new file mode 100644
index 0000000..dfa32bd
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/figures/getProperties02-input.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="FiguresTest.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ PostponedActions_perform();
+
+ Figures_insertFigure("nothing.png","60%",false,null);
+ PostponedActions_perform();
+
+ return figurePropertiesString(0);
+}
+</script>
+</head>
+<body>
+[]
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/figures/getProperties03-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/figures/getProperties03-expected.html b/experiments/editorFramework/test/Layer0/figures/getProperties03-expected.html
new file mode 100644
index 0000000..dbe1cb9
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/figures/getProperties03-expected.html
@@ -0,0 +1,2 @@
+src = null
+width = null
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/figures/getProperties03-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/figures/getProperties03-input.html b/experiments/editorFramework/test/Layer0/figures/getProperties03-input.html
new file mode 100644
index 0000000..3f756af
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/figures/getProperties03-input.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="FiguresTest.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ PostponedActions_perform();
+ return figurePropertiesString(0);
+}
+</script>
+</head>
+<body>
+ <figure>
+ </figure>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/figures/getProperties04-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/figures/getProperties04-expected.html b/experiments/editorFramework/test/Layer0/figures/getProperties04-expected.html
new file mode 100644
index 0000000..dbe1cb9
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/figures/getProperties04-expected.html
@@ -0,0 +1,2 @@
+src = null
+width = null
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/figures/getProperties04-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/figures/getProperties04-input.html b/experiments/editorFramework/test/Layer0/figures/getProperties04-input.html
new file mode 100644
index 0000000..2362417
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/figures/getProperties04-input.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="FiguresTest.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ PostponedActions_perform();
+ return figurePropertiesString(0);
+}
+</script>
+</head>
+<body>
+ <figure>
+ Test
+ </figure>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/figures/getProperties05-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/figures/getProperties05-expected.html b/experiments/editorFramework/test/Layer0/figures/getProperties05-expected.html
new file mode 100644
index 0000000..4a2f422
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/figures/getProperties05-expected.html
@@ -0,0 +1,2 @@
+src = nothing.png
+width = null
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/figures/getProperties05-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/figures/getProperties05-input.html b/experiments/editorFramework/test/Layer0/figures/getProperties05-input.html
new file mode 100644
index 0000000..4b37359
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/figures/getProperties05-input.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="FiguresTest.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ PostponedActions_perform();
+ return figurePropertiesString(0);
+}
+</script>
+</head>
+<body>
+ <figure>
+ <span><img src="nothing.png"></span>
+ </figure>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/figures/getProperties06-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/figures/getProperties06-expected.html b/experiments/editorFramework/test/Layer0/figures/getProperties06-expected.html
new file mode 100644
index 0000000..1de41c6
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/figures/getProperties06-expected.html
@@ -0,0 +1,2 @@
+src = nothing.png
+width = 60%
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/figures/getProperties06-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/figures/getProperties06-input.html b/experiments/editorFramework/test/Layer0/figures/getProperties06-input.html
new file mode 100644
index 0000000..127e2d9
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/figures/getProperties06-input.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="FiguresTest.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ PostponedActions_perform();
+ return figurePropertiesString(0);
+}
+</script>
+</head>
+<body>
+ <figure>
+ <span><img src="nothing.png" style="width: 60%"></span>
+ </figure>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/figures/getProperties07-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/figures/getProperties07-expected.html b/experiments/editorFramework/test/Layer0/figures/getProperties07-expected.html
new file mode 100644
index 0000000..1de41c6
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/figures/getProperties07-expected.html
@@ -0,0 +1,2 @@
+src = nothing.png
+width = 60%
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/figures/getProperties07-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/figures/getProperties07-input.html b/experiments/editorFramework/test/Layer0/figures/getProperties07-input.html
new file mode 100644
index 0000000..0318a72
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/figures/getProperties07-input.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="FiguresTest.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ PostponedActions_perform();
+ return figurePropertiesString(0);
+}
+</script>
+</head>
+<body>
+ <figure>
+ <span><img src="nothing.png" width="60%"></span>
+ </figure>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/figures/getProperties08-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/figures/getProperties08-expected.html b/experiments/editorFramework/test/Layer0/figures/getProperties08-expected.html
new file mode 100644
index 0000000..0dc9cd1
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/figures/getProperties08-expected.html
@@ -0,0 +1,2 @@
+src = nothing.png
+width = 100%
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/figures/getProperties08-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/figures/getProperties08-input.html b/experiments/editorFramework/test/Layer0/figures/getProperties08-input.html
new file mode 100644
index 0000000..35e98fa
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/figures/getProperties08-input.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="FiguresTest.js"></script>
+<script>
+function performTest()
+{
+ Outline_init();
+ PostponedActions_perform();
+ return figurePropertiesString(0);
+}
+</script>
+</head>
+<body>
+ <figure>
+ <span><img src="nothing.png" style="width: 100%" width="60%"></span>
+ </figure>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/figures/insertFigure-hierarchy01-expected.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/figures/insertFigure-hierarchy01-expected.html b/experiments/editorFramework/test/Layer0/figures/insertFigure-hierarchy01-expected.html
new file mode 100644
index 0000000..e2892dc
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/figures/insertFigure-hierarchy01-expected.html
@@ -0,0 +1,14 @@
+<html>
+ <head>
+ <link href="../generic.css" rel="stylesheet"/>
+ </head>
+ <body>
+ <figure id="item1">
+ <img src="nothing.png"/>
+ <figcaption>First figure</figcaption>
+ </figure>
+ <figure id="item2">
+ <img src="nothing.png"/>
+ </figure>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/0633908a/experiments/editorFramework/test/Layer0/figures/insertFigure-hierarchy01-input.html
----------------------------------------------------------------------
diff --git a/experiments/editorFramework/test/Layer0/figures/insertFigure-hierarchy01-input.html b/experiments/editorFramework/test/Layer0/figures/insertFigure-hierarchy01-input.html
new file mode 100644
index 0000000..cfcfb6a
--- /dev/null
+++ b/experiments/editorFramework/test/Layer0/figures/insertFigure-hierarchy01-input.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script>
+function performTest()
+{
+ Outline_init();
+ PostponedActions_perform();
+
+ Figures_insertFigure("nothing.png",null,false,null);
+ PostponedActions_perform();
+}
+</script>
+</head>
+<body>
+
+<figure>
+ <img src="nothing.png"/>
+ <figcaption>First figure[]</figcaption>
+</figure>
+
+</body>
+</html>