You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@corinthia.apache.org by pm...@apache.org on 2015/02/24 06:08:09 UTC

incubator-corinthia git commit: Fix deletion of empty captions/footnotes/endnotes

Repository: incubator-corinthia
Updated Branches:
  refs/heads/master 227d59d94 -> 60e51ed6a


Fix deletion of empty captions/footnotes/endnotes

If backspace is pressed when the cursor is inside an empty caption,
delete the caption and place the cursor immediately after the containing
figure or table.

If backspace is pressed when the cursor is inside or directly after an
empty footnote or endnote, delete the note.


Project: http://git-wip-us.apache.org/repos/asf/incubator-corinthia/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-corinthia/commit/60e51ed6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-corinthia/tree/60e51ed6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-corinthia/diff/60e51ed6

Branch: refs/heads/master
Commit: 60e51ed6a9a5b817345d2d64c4987324c627a93a
Parents: 227d59d
Author: Peter Kelly <pe...@uxproductivity.com>
Authored: Tue Feb 24 12:07:02 2015 +0700
Committer: Peter Kelly <pe...@uxproductivity.com>
Committed: Tue Feb 24 12:07:02 2015 +0700

----------------------------------------------------------------------
 Editor/src/Cursor.js                            | 44 ++++++++++++++++++++
 Editor/src/Position.js                          | 21 ++++++++--
 .../deleteCharacter-endnote01-expected.html     | 11 +++++
 .../cursor/deleteCharacter-endnote01-input.html | 16 +++++++
 .../deleteCharacter-endnote02-expected.html     | 11 +++++
 .../cursor/deleteCharacter-endnote02-input.html | 16 +++++++
 .../deleteCharacter-endnote03-expected.html     |  6 +++
 .../cursor/deleteCharacter-endnote03-input.html | 16 +++++++
 .../deleteCharacter-endnote04-expected.html     |  6 +++
 .../cursor/deleteCharacter-endnote04-input.html | 16 +++++++
 .../deleteCharacter-endnote05-expected.html     |  9 ++++
 .../cursor/deleteCharacter-endnote05-input.html | 17 ++++++++
 .../deleteCharacter-endnote06-expected.html     | 11 +++++
 .../cursor/deleteCharacter-endnote06-input.html | 16 +++++++
 .../deleteCharacter-endnote07-expected.html     | 11 +++++
 .../cursor/deleteCharacter-endnote07-input.html | 16 +++++++
 .../deleteCharacter-endnote08-expected.html     | 11 +++++
 .../cursor/deleteCharacter-endnote08-input.html | 16 +++++++
 .../deleteCharacter-endnote09-expected.html     |  6 +++
 .../cursor/deleteCharacter-endnote09-input.html | 16 +++++++
 .../deleteCharacter-endnote10-expected.html     |  9 ++++
 .../cursor/deleteCharacter-endnote10-input.html | 17 ++++++++
 .../deleteCharacter-figcaption03-expected.html  |  9 ++++
 .../deleteCharacter-figcaption03-input.html     | 19 +++++++++
 .../deleteCharacter-figcaption04-expected.html  |  9 ++++
 .../deleteCharacter-figcaption04-input.html     | 19 +++++++++
 .../deleteCharacter-footnote01-expected.html    | 11 +++++
 .../deleteCharacter-footnote01-input.html       | 16 +++++++
 .../deleteCharacter-footnote02-expected.html    | 11 +++++
 .../deleteCharacter-footnote02-input.html       | 16 +++++++
 .../deleteCharacter-footnote03-expected.html    |  6 +++
 .../deleteCharacter-footnote03-input.html       | 16 +++++++
 .../deleteCharacter-footnote04-expected.html    |  6 +++
 .../deleteCharacter-footnote04-input.html       | 16 +++++++
 .../deleteCharacter-footnote05-expected.html    |  9 ++++
 .../deleteCharacter-footnote05-input.html       | 17 ++++++++
 .../deleteCharacter-footnote06-expected.html    | 11 +++++
 .../deleteCharacter-footnote06-input.html       | 16 +++++++
 .../deleteCharacter-footnote07-expected.html    | 11 +++++
 .../deleteCharacter-footnote07-input.html       | 16 +++++++
 .../deleteCharacter-footnote08-expected.html    | 11 +++++
 .../deleteCharacter-footnote08-input.html       | 16 +++++++
 .../deleteCharacter-footnote09-expected.html    |  6 +++
 .../deleteCharacter-footnote09-input.html       | 16 +++++++
 .../deleteCharacter-footnote10-expected.html    |  9 ++++
 .../deleteCharacter-footnote10-input.html       | 17 ++++++++
 ...deleteCharacter-tablecaption01-expected.html | 18 ++++++++
 .../deleteCharacter-tablecaption01-input.html   | 25 +++++++++++
 ...deleteCharacter-tablecaption02-expected.html | 18 ++++++++
 .../deleteCharacter-tablecaption02-input.html   | 25 +++++++++++
 Editor/tests/index.js                           | 24 +++++++++++
 51 files changed, 733 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/src/Cursor.js
----------------------------------------------------------------------
diff --git a/Editor/src/Cursor.js b/Editor/src/Cursor.js
index a545477..fcc5280 100644
--- a/Editor/src/Cursor.js
+++ b/Editor/src/Cursor.js
@@ -497,6 +497,39 @@ var Cursor_insertEndnote;
         Cursor_ensureCursorVisible();
     }
 
+    function tryDeleteEmptyCaption(pos)
+    {
+        var caption = Position_captionAncestor(pos);
+        if ((caption == null) || nodeHasContent(caption))
+            return false;
+
+        var container = Position_figureOrTableAncestor(pos);
+        if (container == null)
+            return false;
+
+        Cursor_set(container.parentNode,DOM_nodeOffset(container)+1);
+        Selection_preserveWhileExecuting(function() {
+            DOM_deleteNode(caption);
+        });
+
+        return true;
+    }
+
+    function tryDeleteEmptyNote(pos)
+    {
+        var note = Position_noteAncestor(pos);
+        if ((note == null) || nodeHasContent(note))
+            return false;
+
+        var parent = note.parentNode;
+        Cursor_set(note.parentNode,DOM_nodeOffset(note)+1);
+        Selection_preserveWhileExecuting(function() {
+            DOM_deleteNode(note);
+        });
+
+        return true;
+    }
+
     // public
     Cursor_deleteCharacter = function()
     {
@@ -536,8 +569,19 @@ var Cursor_insertEndnote;
                 }
             }
 
+            // Backspace inside an empty figure or table caption
+            if (tryDeleteEmptyCaption(currentPos))
+                return;
+
             currentPos = Position_preferTextPosition(currentPos);
             var prevPos = Position_prevMatch(currentPos,Position_okForMovement);
+
+            // Backspace inside or just after a footnote or endnote
+            if (tryDeleteEmptyNote(currentPos))
+                return;
+            if ((prevPos != null) && tryDeleteEmptyNote(prevPos))
+                return;
+
             if (prevPos != null) {
                 var startBlock = firstBlockAncestor(Position_closestActualNode(prevPos));
                 var endBlock = firstBlockAncestor(Position_closestActualNode(selRange.end));

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/src/Position.js
----------------------------------------------------------------------
diff --git a/Editor/src/Position.js b/Editor/src/Position.js
index 9751743..2db9c03 100644
--- a/Editor/src/Position.js
+++ b/Editor/src/Position.js
@@ -30,6 +30,9 @@ var Position_closestMatchBackwards;
 var Position_track;
 var Position_untrack;
 var Position_rectAtPos;
+var Position_noteAncestor;
+var Position_captionAncestor;
+var Position_figureOrTableAncestor;
 var Position_displayRectAtPos;
 var Position_preferTextPosition;
 var Position_preferElementPosition;
@@ -701,7 +704,7 @@ var Position_atPoint;
                  height: rect.height };
     }
 
-    function findNoteContainingPos(pos)
+    Position_noteAncestor = function(pos)
     {
         var node = Position_closestActualNode(pos);
         for (; node != null; node = node.parentNode) {
@@ -711,7 +714,7 @@ var Position_atPoint;
         return null;
     }
 
-    function findCaptionContainingPos(pos)
+    Position_captionAncestor = function(pos)
     {
         var node = Position_closestActualNode(pos);
         for (; node != null; node = node.parentNode) {
@@ -721,6 +724,16 @@ var Position_atPoint;
         return null;
     }
 
+    Position_figureOrTableAncestor = function(pos)
+    {
+        var node = Position_closestActualNode(pos);
+        for (; node != null; node = node.parentNode) {
+            if ((node._type == HTML_FIGURE) || (node._type == HTML_TABLE))
+                return node;
+        }
+        return null;
+    }
+
     function exactRectAtPos(pos)
     {
         var node = pos.node;
@@ -784,11 +797,11 @@ var Position_atPoint;
         if (rect != null)
             return rect;
 
-        var noteNode = findNoteContainingPos(pos);
+        var noteNode = Position_noteAncestor(pos);
         if ((noteNode != null) && !nodeHasContent(noteNode)) // In empty footnote or endnote
             return zeroWidthMidRect(noteNode.getBoundingClientRect());
 
-        var captionNode = findCaptionContainingPos(pos);
+        var captionNode = Position_captionAncestor(pos);
         if ((captionNode != null) && !nodeHasContent(captionNode)) {
             // Even if an empty caption has generated content (e.g. "Figure X: ") preceding it,
             // we can't directly get the rect of that generated content. So we temporarily insert

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-endnote01-expected.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-endnote01-expected.html b/Editor/tests/cursor/deleteCharacter-endnote01-expected.html
new file mode 100644
index 0000000..225c9b4
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-endnote01-expected.html
@@ -0,0 +1,11 @@
+<html>
+  <head>
+    <link href="../generic.css" rel="stylesheet"/>
+  </head>
+  <body>
+    <p>
+      before
+      []after
+    </p>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-endnote01-input.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-endnote01-input.html b/Editor/tests/cursor/deleteCharacter-endnote01-input.html
new file mode 100644
index 0000000..0757734
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-endnote01-input.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script>
+function performTest()
+{
+    Cursor_deleteCharacter();
+    showSelection();
+}
+</script>
+</head>
+<body>
+  <p>before<span class="endnote">[]</span>after</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-endnote02-expected.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-endnote02-expected.html b/Editor/tests/cursor/deleteCharacter-endnote02-expected.html
new file mode 100644
index 0000000..225c9b4
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-endnote02-expected.html
@@ -0,0 +1,11 @@
+<html>
+  <head>
+    <link href="../generic.css" rel="stylesheet"/>
+  </head>
+  <body>
+    <p>
+      before
+      []after
+    </p>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-endnote02-input.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-endnote02-input.html b/Editor/tests/cursor/deleteCharacter-endnote02-input.html
new file mode 100644
index 0000000..b55d7d2
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-endnote02-input.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script>
+function performTest()
+{
+    Cursor_deleteCharacter();
+    showSelection();
+}
+</script>
+</head>
+<body>
+  <p>before<span class="endnote"><b>[]</b></span>after</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-endnote03-expected.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-endnote03-expected.html b/Editor/tests/cursor/deleteCharacter-endnote03-expected.html
new file mode 100644
index 0000000..d9c7a82
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-endnote03-expected.html
@@ -0,0 +1,6 @@
+<html>
+  <head>
+    <link href="../generic.css" rel="stylesheet"/>
+  </head>
+  <body><p>before[]</p></body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-endnote03-input.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-endnote03-input.html b/Editor/tests/cursor/deleteCharacter-endnote03-input.html
new file mode 100644
index 0000000..d94a572
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-endnote03-input.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script>
+function performTest()
+{
+    Cursor_deleteCharacter();
+    showSelection();
+}
+</script>
+</head>
+<body>
+  <p>before<span class="endnote">[]</span></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-endnote04-expected.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-endnote04-expected.html b/Editor/tests/cursor/deleteCharacter-endnote04-expected.html
new file mode 100644
index 0000000..ef893e1
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-endnote04-expected.html
@@ -0,0 +1,6 @@
+<html>
+  <head>
+    <link href="../generic.css" rel="stylesheet"/>
+  </head>
+  <body><p>[]after</p></body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-endnote04-input.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-endnote04-input.html b/Editor/tests/cursor/deleteCharacter-endnote04-input.html
new file mode 100644
index 0000000..f6ad6e1
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-endnote04-input.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script>
+function performTest()
+{
+    Cursor_deleteCharacter();
+    showSelection();
+}
+</script>
+</head>
+<body>
+  <p><span class="endnote">[]</span>after</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-endnote05-expected.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-endnote05-expected.html b/Editor/tests/cursor/deleteCharacter-endnote05-expected.html
new file mode 100644
index 0000000..0abd902
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-endnote05-expected.html
@@ -0,0 +1,9 @@
+<html>
+  <head>
+    <link href="../generic.css" rel="stylesheet"/>
+  </head>
+  <body>
+    <p>Initial paragraph</p>
+    <p>[]after</p>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-endnote05-input.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-endnote05-input.html b/Editor/tests/cursor/deleteCharacter-endnote05-input.html
new file mode 100644
index 0000000..0f82b31
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-endnote05-input.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script>
+function performTest()
+{
+    Cursor_deleteCharacter();
+    showSelection();
+}
+</script>
+</head>
+<body>
+  <p>Initial paragraph</p>
+  <p><span class="endnote">[]</span>after</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-endnote06-expected.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-endnote06-expected.html b/Editor/tests/cursor/deleteCharacter-endnote06-expected.html
new file mode 100644
index 0000000..225c9b4
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-endnote06-expected.html
@@ -0,0 +1,11 @@
+<html>
+  <head>
+    <link href="../generic.css" rel="stylesheet"/>
+  </head>
+  <body>
+    <p>
+      before
+      []after
+    </p>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-endnote06-input.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-endnote06-input.html b/Editor/tests/cursor/deleteCharacter-endnote06-input.html
new file mode 100644
index 0000000..bcaeeb1
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-endnote06-input.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script>
+function performTest()
+{
+    Cursor_deleteCharacter();
+    showSelection();
+}
+</script>
+</head>
+<body>
+  <p>before<span class="endnote"></span>[]after</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-endnote07-expected.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-endnote07-expected.html b/Editor/tests/cursor/deleteCharacter-endnote07-expected.html
new file mode 100644
index 0000000..225c9b4
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-endnote07-expected.html
@@ -0,0 +1,11 @@
+<html>
+  <head>
+    <link href="../generic.css" rel="stylesheet"/>
+  </head>
+  <body>
+    <p>
+      before
+      []after
+    </p>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-endnote07-input.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-endnote07-input.html b/Editor/tests/cursor/deleteCharacter-endnote07-input.html
new file mode 100644
index 0000000..efd68bc
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-endnote07-input.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script>
+function performTest()
+{
+    Cursor_deleteCharacter();
+    showSelection();
+}
+</script>
+</head>
+<body>
+  <p>before<span class="endnote"><b></b></span>[]after</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-endnote08-expected.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-endnote08-expected.html b/Editor/tests/cursor/deleteCharacter-endnote08-expected.html
new file mode 100644
index 0000000..e2952bf
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-endnote08-expected.html
@@ -0,0 +1,11 @@
+<html>
+  <head>
+    <link href="../generic.css" rel="stylesheet"/>
+  </head>
+  <body>
+    <p>
+      before
+      []
+    </p>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-endnote08-input.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-endnote08-input.html b/Editor/tests/cursor/deleteCharacter-endnote08-input.html
new file mode 100644
index 0000000..bff2f51
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-endnote08-input.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script>
+function performTest()
+{
+    Cursor_deleteCharacter();
+    showSelection();
+}
+</script>
+</head>
+<body>
+  <p>before<span class="endnote"></span>[]</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-endnote09-expected.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-endnote09-expected.html b/Editor/tests/cursor/deleteCharacter-endnote09-expected.html
new file mode 100644
index 0000000..ef893e1
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-endnote09-expected.html
@@ -0,0 +1,6 @@
+<html>
+  <head>
+    <link href="../generic.css" rel="stylesheet"/>
+  </head>
+  <body><p>[]after</p></body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-endnote09-input.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-endnote09-input.html b/Editor/tests/cursor/deleteCharacter-endnote09-input.html
new file mode 100644
index 0000000..ab3f8ac
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-endnote09-input.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script>
+function performTest()
+{
+    Cursor_deleteCharacter();
+    showSelection();
+}
+</script>
+</head>
+<body>
+  <p><span class="endnote"></span>[]after</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-endnote10-expected.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-endnote10-expected.html b/Editor/tests/cursor/deleteCharacter-endnote10-expected.html
new file mode 100644
index 0000000..0abd902
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-endnote10-expected.html
@@ -0,0 +1,9 @@
+<html>
+  <head>
+    <link href="../generic.css" rel="stylesheet"/>
+  </head>
+  <body>
+    <p>Initial paragraph</p>
+    <p>[]after</p>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-endnote10-input.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-endnote10-input.html b/Editor/tests/cursor/deleteCharacter-endnote10-input.html
new file mode 100644
index 0000000..8f7aa92
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-endnote10-input.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script>
+function performTest()
+{
+    Cursor_deleteCharacter();
+    showSelection();
+}
+</script>
+</head>
+<body>
+  <p>Initial paragraph</p>
+  <p><span class="endnote"></span>[]after</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-figcaption03-expected.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-figcaption03-expected.html b/Editor/tests/cursor/deleteCharacter-figcaption03-expected.html
new file mode 100644
index 0000000..b74d5ba
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-figcaption03-expected.html
@@ -0,0 +1,9 @@
+<html>
+  <head>
+    <link href="../generic.css" rel="stylesheet"/>
+  </head>
+  <body>
+    <figure><img src="../figures/nothing.png"/></figure>
+    []
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-figcaption03-input.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-figcaption03-input.html b/Editor/tests/cursor/deleteCharacter-figcaption03-input.html
new file mode 100644
index 0000000..0b9dced
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-figcaption03-input.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script>
+function performTest()
+{
+    Cursor_deleteCharacter();
+    showSelection();
+}
+</script>
+</head>
+<body>
+  <figure>
+    <img src="../figures/nothing.png">
+    <figcaption>[]</figcaption>
+  </figure>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-figcaption04-expected.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-figcaption04-expected.html b/Editor/tests/cursor/deleteCharacter-figcaption04-expected.html
new file mode 100644
index 0000000..b74d5ba
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-figcaption04-expected.html
@@ -0,0 +1,9 @@
+<html>
+  <head>
+    <link href="../generic.css" rel="stylesheet"/>
+  </head>
+  <body>
+    <figure><img src="../figures/nothing.png"/></figure>
+    []
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-figcaption04-input.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-figcaption04-input.html b/Editor/tests/cursor/deleteCharacter-figcaption04-input.html
new file mode 100644
index 0000000..9aa4617
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-figcaption04-input.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script>
+function performTest()
+{
+    Cursor_deleteCharacter();
+    showSelection();
+}
+</script>
+</head>
+<body>
+  <figure>
+    <img src="../figures/nothing.png">
+    <figcaption><b>[]</b></figcaption>
+  </figure>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-footnote01-expected.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-footnote01-expected.html b/Editor/tests/cursor/deleteCharacter-footnote01-expected.html
new file mode 100644
index 0000000..225c9b4
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-footnote01-expected.html
@@ -0,0 +1,11 @@
+<html>
+  <head>
+    <link href="../generic.css" rel="stylesheet"/>
+  </head>
+  <body>
+    <p>
+      before
+      []after
+    </p>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-footnote01-input.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-footnote01-input.html b/Editor/tests/cursor/deleteCharacter-footnote01-input.html
new file mode 100644
index 0000000..cf02a9e
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-footnote01-input.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script>
+function performTest()
+{
+    Cursor_deleteCharacter();
+    showSelection();
+}
+</script>
+</head>
+<body>
+  <p>before<span class="footnote">[]</span>after</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-footnote02-expected.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-footnote02-expected.html b/Editor/tests/cursor/deleteCharacter-footnote02-expected.html
new file mode 100644
index 0000000..225c9b4
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-footnote02-expected.html
@@ -0,0 +1,11 @@
+<html>
+  <head>
+    <link href="../generic.css" rel="stylesheet"/>
+  </head>
+  <body>
+    <p>
+      before
+      []after
+    </p>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-footnote02-input.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-footnote02-input.html b/Editor/tests/cursor/deleteCharacter-footnote02-input.html
new file mode 100644
index 0000000..495be1c
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-footnote02-input.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script>
+function performTest()
+{
+    Cursor_deleteCharacter();
+    showSelection();
+}
+</script>
+</head>
+<body>
+  <p>before<span class="footnote"><b>[]</b></span>after</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-footnote03-expected.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-footnote03-expected.html b/Editor/tests/cursor/deleteCharacter-footnote03-expected.html
new file mode 100644
index 0000000..d9c7a82
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-footnote03-expected.html
@@ -0,0 +1,6 @@
+<html>
+  <head>
+    <link href="../generic.css" rel="stylesheet"/>
+  </head>
+  <body><p>before[]</p></body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-footnote03-input.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-footnote03-input.html b/Editor/tests/cursor/deleteCharacter-footnote03-input.html
new file mode 100644
index 0000000..6ecd381
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-footnote03-input.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script>
+function performTest()
+{
+    Cursor_deleteCharacter();
+    showSelection();
+}
+</script>
+</head>
+<body>
+  <p>before<span class="footnote">[]</span></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-footnote04-expected.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-footnote04-expected.html b/Editor/tests/cursor/deleteCharacter-footnote04-expected.html
new file mode 100644
index 0000000..ef893e1
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-footnote04-expected.html
@@ -0,0 +1,6 @@
+<html>
+  <head>
+    <link href="../generic.css" rel="stylesheet"/>
+  </head>
+  <body><p>[]after</p></body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-footnote04-input.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-footnote04-input.html b/Editor/tests/cursor/deleteCharacter-footnote04-input.html
new file mode 100644
index 0000000..c84d178
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-footnote04-input.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script>
+function performTest()
+{
+    Cursor_deleteCharacter();
+    showSelection();
+}
+</script>
+</head>
+<body>
+  <p><span class="footnote">[]</span>after</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-footnote05-expected.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-footnote05-expected.html b/Editor/tests/cursor/deleteCharacter-footnote05-expected.html
new file mode 100644
index 0000000..0abd902
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-footnote05-expected.html
@@ -0,0 +1,9 @@
+<html>
+  <head>
+    <link href="../generic.css" rel="stylesheet"/>
+  </head>
+  <body>
+    <p>Initial paragraph</p>
+    <p>[]after</p>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-footnote05-input.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-footnote05-input.html b/Editor/tests/cursor/deleteCharacter-footnote05-input.html
new file mode 100644
index 0000000..5f7eb34
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-footnote05-input.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script>
+function performTest()
+{
+    Cursor_deleteCharacter();
+    showSelection();
+}
+</script>
+</head>
+<body>
+  <p>Initial paragraph</p>
+  <p><span class="footnote">[]</span>after</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-footnote06-expected.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-footnote06-expected.html b/Editor/tests/cursor/deleteCharacter-footnote06-expected.html
new file mode 100644
index 0000000..225c9b4
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-footnote06-expected.html
@@ -0,0 +1,11 @@
+<html>
+  <head>
+    <link href="../generic.css" rel="stylesheet"/>
+  </head>
+  <body>
+    <p>
+      before
+      []after
+    </p>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-footnote06-input.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-footnote06-input.html b/Editor/tests/cursor/deleteCharacter-footnote06-input.html
new file mode 100644
index 0000000..3496595
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-footnote06-input.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script>
+function performTest()
+{
+    Cursor_deleteCharacter();
+    showSelection();
+}
+</script>
+</head>
+<body>
+  <p>before<span class="footnote"></span>[]after</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-footnote07-expected.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-footnote07-expected.html b/Editor/tests/cursor/deleteCharacter-footnote07-expected.html
new file mode 100644
index 0000000..225c9b4
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-footnote07-expected.html
@@ -0,0 +1,11 @@
+<html>
+  <head>
+    <link href="../generic.css" rel="stylesheet"/>
+  </head>
+  <body>
+    <p>
+      before
+      []after
+    </p>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-footnote07-input.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-footnote07-input.html b/Editor/tests/cursor/deleteCharacter-footnote07-input.html
new file mode 100644
index 0000000..141f5d8
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-footnote07-input.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script>
+function performTest()
+{
+    Cursor_deleteCharacter();
+    showSelection();
+}
+</script>
+</head>
+<body>
+  <p>before<span class="footnote"><b></b></span>[]after</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-footnote08-expected.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-footnote08-expected.html b/Editor/tests/cursor/deleteCharacter-footnote08-expected.html
new file mode 100644
index 0000000..e2952bf
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-footnote08-expected.html
@@ -0,0 +1,11 @@
+<html>
+  <head>
+    <link href="../generic.css" rel="stylesheet"/>
+  </head>
+  <body>
+    <p>
+      before
+      []
+    </p>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-footnote08-input.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-footnote08-input.html b/Editor/tests/cursor/deleteCharacter-footnote08-input.html
new file mode 100644
index 0000000..9b637e2
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-footnote08-input.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script>
+function performTest()
+{
+    Cursor_deleteCharacter();
+    showSelection();
+}
+</script>
+</head>
+<body>
+  <p>before<span class="footnote"></span>[]</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-footnote09-expected.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-footnote09-expected.html b/Editor/tests/cursor/deleteCharacter-footnote09-expected.html
new file mode 100644
index 0000000..ef893e1
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-footnote09-expected.html
@@ -0,0 +1,6 @@
+<html>
+  <head>
+    <link href="../generic.css" rel="stylesheet"/>
+  </head>
+  <body><p>[]after</p></body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-footnote09-input.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-footnote09-input.html b/Editor/tests/cursor/deleteCharacter-footnote09-input.html
new file mode 100644
index 0000000..6f74db3
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-footnote09-input.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script>
+function performTest()
+{
+    Cursor_deleteCharacter();
+    showSelection();
+}
+</script>
+</head>
+<body>
+  <p><span class="footnote"></span>[]after</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-footnote10-expected.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-footnote10-expected.html b/Editor/tests/cursor/deleteCharacter-footnote10-expected.html
new file mode 100644
index 0000000..0abd902
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-footnote10-expected.html
@@ -0,0 +1,9 @@
+<html>
+  <head>
+    <link href="../generic.css" rel="stylesheet"/>
+  </head>
+  <body>
+    <p>Initial paragraph</p>
+    <p>[]after</p>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-footnote10-input.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-footnote10-input.html b/Editor/tests/cursor/deleteCharacter-footnote10-input.html
new file mode 100644
index 0000000..ad5a014
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-footnote10-input.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../generic.css" rel="stylesheet"/>
+<script>
+function performTest()
+{
+    Cursor_deleteCharacter();
+    showSelection();
+}
+</script>
+</head>
+<body>
+  <p>Initial paragraph</p>
+  <p><span class="footnote"></span>[]after</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-tablecaption01-expected.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-tablecaption01-expected.html b/Editor/tests/cursor/deleteCharacter-tablecaption01-expected.html
new file mode 100644
index 0000000..02fd8e0
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-tablecaption01-expected.html
@@ -0,0 +1,18 @@
+<html>
+  <head></head>
+  <body>
+    <table width="100%">
+      <tbody>
+        <tr>
+          <td>One</td>
+          <td>Two</td>
+        </tr>
+        <tr>
+          <td>Three</td>
+          <td>Four</td>
+        </tr>
+      </tbody>
+    </table>
+    []
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-tablecaption01-input.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-tablecaption01-input.html b/Editor/tests/cursor/deleteCharacter-tablecaption01-input.html
new file mode 100644
index 0000000..5089a5d
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-tablecaption01-input.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    Cursor_deleteCharacter();
+    showSelection();
+}
+</script>
+</head>
+<body>
+<table width="100%">
+  <caption>[]</caption>
+  <tr>
+    <td>One</td>
+    <td>Two</td>
+  </tr>
+  <tr>
+    <td>Three</td>
+    <td>Four</td>
+  </tr>
+</table>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-tablecaption02-expected.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-tablecaption02-expected.html b/Editor/tests/cursor/deleteCharacter-tablecaption02-expected.html
new file mode 100644
index 0000000..02fd8e0
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-tablecaption02-expected.html
@@ -0,0 +1,18 @@
+<html>
+  <head></head>
+  <body>
+    <table width="100%">
+      <tbody>
+        <tr>
+          <td>One</td>
+          <td>Two</td>
+        </tr>
+        <tr>
+          <td>Three</td>
+          <td>Four</td>
+        </tr>
+      </tbody>
+    </table>
+    []
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/cursor/deleteCharacter-tablecaption02-input.html
----------------------------------------------------------------------
diff --git a/Editor/tests/cursor/deleteCharacter-tablecaption02-input.html b/Editor/tests/cursor/deleteCharacter-tablecaption02-input.html
new file mode 100644
index 0000000..402c13b
--- /dev/null
+++ b/Editor/tests/cursor/deleteCharacter-tablecaption02-input.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function performTest()
+{
+    Cursor_deleteCharacter();
+    showSelection();
+}
+</script>
+</head>
+<body>
+<table width="100%">
+  <caption><b>[]</b></caption>
+  <tr>
+    <td>One</td>
+    <td>Two</td>
+  </tr>
+  <tr>
+    <td>Three</td>
+    <td>Four</td>
+  </tr>
+</table>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/60e51ed6/Editor/tests/index.js
----------------------------------------------------------------------
diff --git a/Editor/tests/index.js b/Editor/tests/index.js
index b0dedac..22f01b6 100644
--- a/Editor/tests/index.js
+++ b/Editor/tests/index.js
@@ -257,12 +257,34 @@ var tests = [
             "deleteCharacter-emoji06",
             "deleteCharacter-emoji07",
             "deleteCharacter-emoji08",
+            "deleteCharacter-endnote01",
+            "deleteCharacter-endnote02",
+            "deleteCharacter-endnote03",
+            "deleteCharacter-endnote04",
+            "deleteCharacter-endnote05",
+            "deleteCharacter-endnote06",
+            "deleteCharacter-endnote07",
+            "deleteCharacter-endnote08",
+            "deleteCharacter-endnote09",
+            "deleteCharacter-endnote10",
             "deleteCharacter-figcaption01",
             "deleteCharacter-figcaption02",
+            "deleteCharacter-figcaption03",
+            "deleteCharacter-figcaption04",
             "deleteCharacter-figure01",
             "deleteCharacter-figure02",
             "deleteCharacter-figure03",
             "deleteCharacter-figure04",
+            "deleteCharacter-footnote01",
+            "deleteCharacter-footnote02",
+            "deleteCharacter-footnote03",
+            "deleteCharacter-footnote04",
+            "deleteCharacter-footnote05",
+            "deleteCharacter-footnote06",
+            "deleteCharacter-footnote07",
+            "deleteCharacter-footnote08",
+            "deleteCharacter-footnote09",
+            "deleteCharacter-footnote10",
             "deleteCharacter-last01",
             "deleteCharacter-last02",
             "deleteCharacter-last03",
@@ -303,6 +325,8 @@ var tests = [
             "deleteCharacter-table02",
             "deleteCharacter-table03",
             "deleteCharacter-table04",
+            "deleteCharacter-tablecaption01",
+            "deleteCharacter-tablecaption02",
             "deleteCharacter-toc01",
             "deleteCharacter-toc02",
             "deleteCharacter-toc03",