diff options
Diffstat (limited to 'dom/xul/templates/tests/chrome/test_tmpl_treeelementquerysyntaxrecursivemultiplerules.xul')
-rw-r--r-- | dom/xul/templates/tests/chrome/test_tmpl_treeelementquerysyntaxrecursivemultiplerules.xul | 268 |
1 files changed, 268 insertions, 0 deletions
diff --git a/dom/xul/templates/tests/chrome/test_tmpl_treeelementquerysyntaxrecursivemultiplerules.xul b/dom/xul/templates/tests/chrome/test_tmpl_treeelementquerysyntaxrecursivemultiplerules.xul new file mode 100644 index 000000000..282beb69d --- /dev/null +++ b/dom/xul/templates/tests/chrome/test_tmpl_treeelementquerysyntaxrecursivemultiplerules.xul @@ -0,0 +1,268 @@ +<?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"?> + +<!-- + tree element - query syntax recursive multiple rules +--> + +<window title="XUL Template Tests" width="500" height="600" + onload="test_template();" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> + <script type="application/javascript" + src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> + + <body xmlns="http://www.w3.org/1999/xhtml" style="height: 300px; overflow: auto;"/> + + <data id="output"> + <treecols id="treecols" orient="horizontal"> + <treecol id="treecol" primary="true" label="Name" ordinal="1"/> + <treecol label="Species" ordinal="3"/> + </treecols> + <treechildren> + <treeitem id="http://www.some-fictitious-zoo.com/humans/sarah"> + <treerow> + <treecell label="Sarah"/> + <treecell/> + </treerow> + </treeitem> + <treeitem step="-1" id="http://www.some-fictitious-zoo.com/mammals" container="true" empty="false"> + <treerow> + <treecell/> + <treecell label="Is this cool: Mammals?"/> + </treerow> + </treeitem> + <treeitem step="1" id="http://www.some-fictitious-zoo.com/mammals" container="true" empty="false" open="true"> + <treerow> + <treecell/> + <treecell label="Is this cool: Mammals?"/> + </treerow> + <treechildren> + <treeitem id="http://www.some-fictitious-zoo.com/mammals/lion"> + <treerow> + <treecell/> + <treecell label="Is this cool: Lion?"/> + </treerow> + </treeitem> + <treeitem id="http://www.some-fictitious-zoo.com/mammals/hippopotamus"> + <treerow> + <treecell label="HIPPOPOTAMUS"/> + <treecell/> + </treerow> + </treeitem> + <treeitem id="http://www.some-fictitious-zoo.com/mammals/africanelephant"> + <treerow> + <treecell/> + <treecell label="Is this cool: African Elephant?"/> + </treerow> + </treeitem> + <treeitem step="2" id="http://www.some-fictitious-zoo.com/mammals/koala"> + <treerow> + <treecell/> + <treecell label="Is this cool: Koala?"/> + </treerow> + </treeitem> + <treeitem id="http://www.some-fictitious-zoo.com/mammals/llama"> + <treerow> + <treecell/> + <treecell label="Is this cool: LLAMA?"/> + </treerow> + </treeitem> + <treeitem id="http://www.some-fictitious-zoo.com/mammals/polarbear"> + <treerow> + <treecell/> + <treecell label="Is this cool: Polar Bear?"/> + </treerow> + </treeitem> + <treeitem id="http://www.some-fictitious-zoo.com/mammals/aardvark"> + <treerow> + <treecell label="aardvark"/> + <treecell/> + </treerow> + </treeitem> + <treeitem id="http://www.some-fictitious-zoo.com/mammals/ninebandedarmadillo"> + <treerow> + <treecell/> + <treecell label="Is this cool: Nine-banded Armadillo?"/> + </treerow> + </treeitem> + <treeitem id="http://www.some-fictitious-zoo.com/mammals/gorilla"> + <treerow> + <treecell/> + <treecell label="Is this cool: Gorilla?"/> + </treerow> + </treeitem> + </treechildren> + </treeitem> + <treeitem step="-3" id="http://www.some-fictitious-zoo.com/crustaceans" container="true" empty="true"> + <treerow> + <treecell label="Crustaceans"/> + <treecell/> + </treerow> + </treeitem> + <treeitem step="3,-4" id="http://www.some-fictitious-zoo.com/crustaceans" container="true" empty="false"> + <treerow> + <treecell label="Crustaceans"/> + <treecell/> + </treerow> + </treeitem> + <treeitem step="5" id="http://www.some-fictitious-zoo.com/crustaceans" container="true" empty="false" open="true"> + <treerow> + <treecell label="Crustaceans"/> + <treecell/> + </treerow> + <treechildren> + <treeitem id="http://www.some-fictitious-zoo.com/crustaceans/lobster"> + <treerow> + <treecell/> + <treecell label="Is this cool: Lobster?"/> + </treerow> + </treeitem> + <treeitem id="http://www.some-fictitious-zoo.com/crustaceans/crayfish"> + <treerow> + <treecell label="Crayfish"/> + <treecell/> + </treerow> + </treeitem> + </treechildren> + </treeitem> + <treeitem id="http://www.some-fictitious-zoo.com/birds/emu"> + <treerow> + <treecell label="Emu"/> + <treecell/> + </treerow> + </treeitem> + </treechildren> + </data> + +<script src="templates_shared.js"/> + +<script> +<![CDATA[ +SimpleTest.waitForExplicitFinish(); + +var testid ="tree element - query syntax recursive multiple rules"; +var queryType = "rdf"; +var isTreeBuilder = false; +var needsOpen = false; +var notWorkingYet = false; +var notWorkingYetDynamic = true; +var expectedOutput = document.getElementById("output"); + +var changes = [ + // step 1 + function(targetds, root) { + if (root.view && 1 < root.view.rowCount && root.view.isContainer(1)) + root.view.toggleOpenState(1); + expectConsoleMessage(ZOO_NS + 'mammals', ZOO_NS + 'mammals/lion', true, true, + '1 matching rule 1'); + expectConsoleMessage(ZOO_NS + 'mammals', ZOO_NS + 'mammals/hippopotamus', true, true, + '1 matching rule 2'); + expectConsoleMessage(ZOO_NS + 'mammals', ZOO_NS + 'mammals/africanelephant', true, true, + '1 matching rule 1'); + expectConsoleMessage(ZOO_NS + 'mammals', ZOO_NS + 'mammals/llama', true, true, + '1 matching rule 1'); + expectConsoleMessage(ZOO_NS + 'mammals', ZOO_NS + 'mammals/polarbear', true, true, + '1 matching rule 1'); + expectConsoleMessage(ZOO_NS + 'mammals', ZOO_NS + 'mammals/aardvark', true, true, + '1 matching rule 2'); + expectConsoleMessage(ZOO_NS + 'mammals', ZOO_NS + 'mammals/ninebandedarmadillo', true, true, + '1 matching rule 1'); + expectConsoleMessage(ZOO_NS + 'mammals', ZOO_NS + 'mammals/gorilla', true, true, + '1 matching rule 1'); + }, + // step 2 + function(targetds, root) { + var newnode = RDF.GetResource(ZOO_NS + 'mammals/koala'); + targetds.Assert(newnode, RDF.GetResource(ZOO_NS + 'rdf#name'), + RDF.GetLiteral('Koala'), true); + var container = ContainerUtils.MakeSeq(targetds, + RDF.GetResource(ZOO_NS + 'mammals')); + container.InsertElementAt(newnode, '4', true); + expectConsoleMessage(ZOO_NS + 'mammals', ZOO_NS + 'mammals/koala', true, true, + '1 matching rule 1'); + }, + // step 3 + function(targetds, root) { + var newnode = RDF.GetResource(ZOO_NS + 'crustaceans/lobster'); + targetds.Assert(newnode, RDF.GetResource(ZOO_NS + 'rdf#name'), + RDF.GetLiteral('Lobster'), true); + var container = ContainerUtils.MakeSeq(targetds, + RDF.GetResource(ZOO_NS + 'crustaceans')); + container.AppendElement(newnode); + }, + // step 4 + function(targetds, root) { + var newnode = RDF.GetResource(ZOO_NS + 'crustaceans/crayfish'); + targetds.Assert(newnode, RDF.GetResource(ZOO_NS + 'rdf#name'), + RDF.GetLiteral('Crayfish'), true); + var container = ContainerUtils.MakeSeq(targetds, + RDF.GetResource(ZOO_NS + 'crustaceans')); + container.AppendElement(newnode); + }, + // step 5 + function(targetds, root) { + if (root.view && 11 < root.view.rowCount && root.view.isContainer(11)) + root.view.toggleOpenState(11); + expectConsoleMessage(ZOO_NS + 'crustaceans', ZOO_NS + 'crustaceans/lobster', true, true, + '1 matching rule 1'); + expectConsoleMessage(ZOO_NS + 'crustaceans', ZOO_NS + 'crustaceans/crayfish', true, true, + '1 matching rule 2'); + }, + // step 6 + function(targetds, root) { + if (root.view && 11 < root.view.rowCount && root.view.isContainer(11)) + root.view.toggleOpenState(11); + }, + // step 7 + function(targetds, root) { + if (root.view && 1 < root.view.rowCount && root.view.isContainer(1)) + root.view.toggleOpenState(1); + } +]; +]]> +</script> + +<tree xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" hidevscroll="true" hidehscroll="true" + flags="logging" datasources="rdf:null" ref="http://www.some-fictitious-zoo.com/marked" id="root"> +<treecols orient="horizontal" id="treecols"> +<treecol id="treecol" primary="true" label="Name"/> +<treecol label="Species"/> +</treecols> +<template id="template"> +<query> +<content uri="?uri"/> +<member container="?uri" child="?child"/> +<triple subject="?child" predicate="http://www.some-fictitious-zoo.com/rdf#name" object="?name"/> +</query> +<rule> +<conditions> +<where subject="?name" rel="contains" value="l" ignorecase="true"/> +</conditions> +<action> +<treechildren> +<treeitem uri="?child"> +<treerow> +<treecell/> +<treecell label="Is this cool: ?name^??"/> +</treerow> +</treeitem> +</treechildren> +</action> +</rule> +<rule> +<action> +<treechildren> +<treeitem uri="?child"> +<treerow> +<treecell label="?name"/> +<treecell/> +</treerow> +</treeitem> +</treechildren> +</action> +</rule> +</template> +</tree> + +</window> |