summaryrefslogtreecommitdiffstats
path: root/toolkit/content/tests/chrome/test_tree_view.xhtml
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/content/tests/chrome/test_tree_view.xhtml')
-rw-r--r--toolkit/content/tests/chrome/test_tree_view.xhtml113
1 files changed, 113 insertions, 0 deletions
diff --git a/toolkit/content/tests/chrome/test_tree_view.xhtml b/toolkit/content/tests/chrome/test_tree_view.xhtml
new file mode 100644
index 0000000000..5e45161c6c
--- /dev/null
+++ b/toolkit/content/tests/chrome/test_tree_view.xhtml
@@ -0,0 +1,113 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
+<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
+<!--
+ XUL Widget Test for tree using a custom nsITreeView
+ -->
+<window title="Tree" onload="init()"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
+ <script src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"></script>
+
+<script src="tree_shared.js"/>
+
+<script>
+<![CDATA[
+/* import-globals-from ../widgets/tree_shared.js */
+// This is our custom view, based on the treeview interface
+var view =
+{
+ treeData: [["Mary", "206 Garden Avenue"],
+ ["Chris", "19 Marion Street"],
+ ["Sarah", "702 Fern Avenue"],
+ ["John", "99 Westminster Avenue"]],
+ value: "",
+ rowCount: 8,
+ getCellText(row, column) { return this.treeData[row % 4][column.index]; },
+ getCellValue(row, column) { return this.value; },
+ setCellText(row, column, val) { this.treeData[row % 4][column.index] = val; },
+ setCellValue(row, column, val) { this.value = val; },
+ setTree(tree) { this.tree = tree; },
+ isContainer(row) { return false; },
+ isContainerOpen(row) { return false; },
+ isContainerEmpty(row) { return false; },
+ isSeparator(row) { return false; },
+ isSorted(row) { return false; },
+ isEditable(row, column) { return row != 2 || column.index != 1; },
+ getParentIndex(row, column) { return -1; },
+ getLevel(row) { return 0; },
+ hasNextSibling(row, column) { return row != this.rowCount - 1; },
+ getImageSrc(row, column) { return ""; },
+ cycleHeader(column) { },
+ getRowProperties(row) { return ""; },
+ getCellProperties(row, column) { return ""; },
+ getColumnProperties(column)
+ {
+ if (!column.index) {
+ return "one two";
+ }
+
+ return "";
+ }
+}
+
+function getCustomTreeViewCellInfo()
+{
+ var obj = { rows: [] };
+
+ for (var row = 0; row < view.rowCount; row++) {
+ var cellInfo = [ ];
+ for (var column = 0; column < 1; column++) {
+ cellInfo.push({ label: "" + view.treeData[row % 4][column],
+ value: "",
+ properties: "",
+ editable: row != 2 || column.index != 1,
+ selectable: true,
+ image: "" });
+ }
+
+ obj.rows.push({ cells: cellInfo,
+ properties: "",
+ container: false,
+ separator: false,
+ children: null,
+ level: 0,
+ parent: -1 });
+ }
+
+ return obj;
+}
+
+function init()
+{
+ var tree = document.getElementById("tree-view");
+ tree.view = view;
+ tree.ensureRowIsVisible(0);
+ is(tree.getFirstVisibleRow(), 0, "first visible after ensureRowIsVisible on load");
+
+ setTimeout(testtag_tree, 0, "tree-view", "treechildren-view", "multiple", "simple", "tree view");
+}
+
+]]>
+</script>
+
+<tree id="tree-view" rows="4">
+ <treecols>
+ <treecol id="name" label="Name" sort="label" flex="1"/>
+ <treecol id="address" label="Address" flex="1"/>
+ </treecols>
+ <treechildren id="treechildren-view"/>
+</tree>
+
+ <!-- test results are displayed in the html:body -->
+ <body xmlns="http://www.w3.org/1999/xhtml" style="height: 300px; overflow: auto;"/>
+
+ <!-- test code goes here -->
+ <script type="application/javascript"><![CDATA[
+
+SimpleTest.waitForExplicitFinish();
+
+]]>
+</script>
+
+</window>