summaryrefslogtreecommitdiffstats
path: root/dom/tests/js/tables/changeCell.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/tests/js/tables/changeCell.js')
-rw-r--r--dom/tests/js/tables/changeCell.js104
1 files changed, 104 insertions, 0 deletions
diff --git a/dom/tests/js/tables/changeCell.js b/dom/tests/js/tables/changeCell.js
new file mode 100644
index 000000000..d65a4c3d0
--- /dev/null
+++ b/dom/tests/js/tables/changeCell.js
@@ -0,0 +1,104 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+function findBody(node)
+{
+ if (node.nodeType != Node.ELEMENT_NODE) {
+ return null;
+ }
+ var children = node.childNodes;
+ if (children == null) {
+ return null;
+ }
+ var length = children.length;
+ var child = null;
+ var count = 0;
+ while (count < length) {
+ child = children[count];
+ if (child.tagName == "BODY") {
+ dump("BODY found");
+ return child;
+ }
+ var body = findBody(child);
+ if (null != body) {
+ return body;
+ }
+ count++;
+ }
+ return null;
+}
+
+// Given the body element, find the first table element
+function findTable(body)
+{
+ // XXX A better way to do this would be to use getElementsByTagName(), but
+ // it isn't implemented yet...
+ var children = body.childNodes
+ if (children == null) {
+ return null;
+ }
+ var length = children.length;
+ var child = null;
+ var count = 0;
+ while (count < length) {
+ child = children[count];
+ if (child.nodeType == Node.ELEMENT_NODE) {
+ if (child.tagName == "TABLE") {
+ dump("TABLE found");
+ break;
+ }
+ }
+ count++;
+ }
+
+ return child;
+}
+
+// Given a table element, find the first table body
+function findTableBody(table)
+{
+ // XXX A better way to do this would be to use getElementsByTagName(), but
+ // it isn't implemented yet...
+ var children = table.childNodes
+ if (children == null) {
+ return null;
+ }
+ var length = children.length;
+ var child = null;
+ var count = 0;
+ while (count < length) {
+ child = children[count];
+ if (child.nodeType == Node.ELEMENT_NODE) {
+ if (child.tagName == "TBODY") {
+ break;
+ }
+ }
+ count++;
+ }
+
+ return child;
+}
+
+// Change the text of the first table cell
+function changeCell(table)
+{
+ // Get a table body
+ var body = findTableBody(table)
+
+ // The table body's first child is a table row
+ var row = body.firstChild
+
+ // The row's first child is a table cell
+ var cell = row.firstChild
+
+ // Get the cell's text
+ var text = cell.firstChild
+
+ // Append some text
+ text.append(" NEW TEXT")
+}
+
+changeCell(findTable(findBody(document.documentElement)))
+