Bug 385536, add test for clicking in a tree in a popup, r=gavin
--- a/toolkit/content/tests/widgets/Makefile.in
+++ b/toolkit/content/tests/widgets/Makefile.in
@@ -72,16 +72,17 @@ include $(topsrcdir)/config/rules.mk
test_statusbar.xul \
test_datepicker.xul \
test_timepicker.xul \
test_textbox_number.xul \
xul_selectcontrol.js \
test_panelfrommenu.xul \
test_hiddenitems.xul \
test_hiddenpaging.xul \
+ test_popup_tree.xul \
$(NULL)
ifeq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT)))
_TEST_FILES += test_menubar.xul \
window_menubar.xul
endif
libs:: $(_TEST_FILES)
new file mode 100644
--- /dev/null
+++ b/toolkit/content/tests/widgets/test_popup_tree.xul
@@ -0,0 +1,74 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
+<?xml-stylesheet href="/tests/SimpleTest/test.css" type="text/css"?>
+
+<window title="Tree in Popup Test"
+ onload="setTimeout(runTests, 0);"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+
+ <script type="application/javascript" src="/MochiKit/packed.js"></script>
+ <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
+ <script type="application/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
+
+<panel id="panel" onpopupshown="treeClick()" onpopuphidden="SimpleTest.finish()">
+ <tree id="tree" width="350" rows="5">
+ <treecols>
+ <treecol id="name" label="Name" flex="1"/>
+ <treecol id="address" label="Street" flex="1"/>
+ </treecols>
+ <treechildren id="treechildren">
+ <treeitem>
+ <treerow>
+ <treecell label="Justin Thyme"/>
+ <treecell label="800 Bay Street"/>
+ </treerow>
+ </treeitem>
+ <treeitem>
+ <treerow>
+ <treecell label="Mary Goround"/>
+ <treecell label="47 University Avenue"/>
+ </treerow>
+ </treeitem>
+ </treechildren>
+ </tree>
+</panel>
+
+<script class="testbody" type="application/javascript">
+<![CDATA[
+
+SimpleTest.waitForExplicitFinish();
+
+function runTests()
+{
+ $("panel").openPopup(null, "overlap", 2, 2);
+}
+
+function treeClick()
+{
+ var tree = $("tree");
+ is(tree.currentIndex, -1, "selectedIndex before click");
+ synthesizeMouseExpectEvent($("treechildren"), 2, 2, { }, $("treechildren"), "click", "");
+ is(tree.currentIndex, 0, "selectedIndex after click");
+
+ var x = { }, y = { }, width = { }, height = { };
+ tree.treeBoxObject.getCoordsForCellItem(1, tree.columns.address, "", x, y, width, height);
+ synthesizeMouseExpectEvent($("treechildren"), x.value, y.value + 2,
+ { }, $("treechildren"), "click", "");
+ is(tree.currentIndex, 1, "selectedIndex after second click " + x.value + "," + y.value);
+
+ $("panel").hidePopup();
+}
+
+]]>
+</script>
+
+<body xmlns="http://www.w3.org/1999/xhtml">
+<p id="display">
+</p>
+<div id="content" style="display: none">
+</div>
+<pre id="test">
+</pre>
+</body>
+
+</window>