Sat, 03 Jan 2015 20:18:00 +0100
Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.
1 <?xml version="1.0"?>
2 <?xml-stylesheet href="chrome://global/skin" type="text/css"?>
3 <?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
5 <!--
6 where - startswith
7 -->
9 <window title="XUL Template Tests" width="500" height="600"
10 onload="test_template();"
11 xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
12 <script type="application/javascript"
13 src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
15 <body xmlns="http://www.w3.org/1999/xhtml" style="height: 300px; overflow: auto;"/>
17 <data id="output">
18 <label id="http://www.some-fictitious-zoo.com/mammals/aardvark" value="aardvark"/>
19 </data>
21 <script src="templates_shared.js"/>
23 <script>
24 <![CDATA[
25 SimpleTest.waitForExplicitFinish();
27 var testid ="where - startswith";
28 var queryType = "rdf";
29 var isTreeBuilder = false;
30 var needsOpen = false;
31 var notWorkingYet = false;
32 var notWorkingYetDynamic = false;
33 var expectedOutput = document.getElementById("output");
35 var changes = [
36 // step 1
37 function(targetds, root) {
38 var newnode = RDF.GetResource(ZOO_NS + 'mammals/arctichare');
39 targetds.Assert(newnode, RDF.GetResource(ZOO_NS + 'rdf#name'),
40 RDF.GetLiteral('Arctic Hare'), true);
41 var container = ContainerUtils.MakeSeq(targetds,
42 RDF.GetResource(ZOO_NS + 'mammals'));
43 container.AppendElement(newnode);
44 },
45 // step 2
46 function(targetds, root) {
47 var newnode = RDF.GetResource(ZOO_NS + 'mammals/koala');
48 targetds.Assert(newnode, RDF.GetResource(ZOO_NS + 'rdf#name'),
49 RDF.GetLiteral('Koala'), true);
50 var container = ContainerUtils.MakeSeq(targetds,
51 RDF.GetResource(ZOO_NS + 'mammals'));
52 container.InsertElementAt(newnode, '4', true);
53 },
54 // step 3
55 function(targetds, root) {
56 var newnode = RDF.GetResource(ZOO_NS + 'mammals/zebra');
57 targetds.Assert(newnode, RDF.GetResource(ZOO_NS + 'rdf#name'),
58 RDF.GetLiteral('Zebra'), true);
59 var container = ContainerUtils.MakeSeq(targetds,
60 RDF.GetResource(ZOO_NS + 'mammals'));
61 container.InsertElementAt(newnode, '1', true);
62 },
63 // step 4
64 function(targetds, root) {
65 var container = ContainerUtils.MakeSeq(targetds,
66 RDF.GetResource(ZOO_NS + 'mammals'));
67 var removednode = container.RemoveElementAt('4', true);
68 targetds.Unassert(removednode, RDF.GetResource(ZOO_NS + 'rdf#name'),
69 RDF.GetLiteral('African Elephant'), true);
70 },
71 // step 5
72 function(targetds, root) {
73 var newnode = RDF.GetResource(ZOO_NS + 'mammals/africanelephant');
74 targetds.Assert(newnode, RDF.GetResource(ZOO_NS + 'rdf#name'),
75 RDF.GetLiteral('African Elephant'), true);
76 var container = ContainerUtils.MakeSeq(targetds,
77 RDF.GetResource(ZOO_NS + 'mammals'));
78 container.AppendElement(newnode);
79 },
80 // step 6
81 function(targetds, root) {
82 targetds.Assert(RDF.GetResource(ZOO_NS + 'mammals/koala'),
83 RDF.GetResource(ZOO_NS + 'rdf#specimensAsString'),
84 RDF.GetLiteral('8'), true);
85 }
86 ];
87 ]]>
88 </script>
90 <vbox xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" id="root" datasources="rdf:null" ref="http://www.some-fictitious-zoo.com/mammals">
91 <template id="template">
92 <query id="query">
93 <content uri="?uri"/>
94 <member container="?uri" child="?animal"/>
95 <triple subject="?animal" predicate="http://www.some-fictitious-zoo.com/rdf#name" object="?name"/>
96 </query>
97 <rule>
98 <conditions id="conditions">
99 <where subject="?name" rel="startswith" value="a"/>
100 </conditions>
101 <action id="action">
102 <label uri="?animal" value="?name"/>
103 </action>
104 </rule>
105 </template>
106 </vbox>
108 </window>