]> git.pond.sub.org Git - eow/blob - static/dojo-release-1.1.1/dijit/tests/_base/manager.html
add Dojo 1.1.1
[eow] / static / dojo-release-1.1.1 / dijit / tests / _base / manager.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
2                 "http://www.w3.org/TR/html4/strict.dtd">
3 <html>
4 <head>
5         <title>Dijit manager unit test</title>
6         <style type="text/css">
7                 @import "../../../dojo/resources/dojo.css";
8                 @import "../css/dijitTests.css";
9         </style>
10         <script type="text/javascript" src="../../../dojo/dojo.js"
11                 djConfig="isDebug: true, parseOnLoad: true"></script>
12         <script type="text/javascript" src="../_testCommon.js"></script>
13
14         <script type="text/javascript">
15                 dojo.require("doh.runner");
16                 dojo.require("dijit.dijit");
17
18                 dojo.declare("foo", dijit._Widget, {
19                         name: "",
20                         attr1: 0,
21                         attr2: 0
22                 });
23
24                 dojo.declare("bar", dijit._Widget, {
25                         name: "",
26                         attr1: 0,
27                         attr2: 0
28                 });
29
30                 dojo.addOnLoad(function(){
31                         doh.register("dijit._base.manager",
32                                 [
33                                         function forEachTest(t){
34                                                 var names=[];
35                                                 dijit.registry.forEach(function(widget){ names.push(widget.name); });
36                                                 t.is(names.join(" "), "bob is your uncle");
37                                         },
38                                         function filterTest(t){
39                                                 var names=[];
40                                                 dijit.registry.
41                                                         filter(function(widget){ return widget.attr1==10; }).
42                                                         forEach(function(widget){ names.push(widget.name); });
43                                                 t.is(names.join(" "), "bob uncle");
44                                         },
45                                         function byId(t){
46                                                 t.is(dijit.byId("three").name, "your");
47                                         },
48                                         function byClass(t){
49                                                 var names=[];
50                                                 dijit.registry.
51                                                         byClass("bar").
52                                                         forEach(function(widget){ names.push(widget.name); });
53                                                 t.is(names.join(" "), "your uncle");
54                                         },
55                                         function deleteTest(t){
56                                                 var names=[];
57                                                 dijit.byId("two").destroy();
58                                                 dijit.byId("four").destroy();
59                                                 var names=[];
60                                                 dijit.registry.forEach(function(widget){ names.push(widget.name); });
61                                                 t.is(names.join(" "), "bob your");
62                                         },
63                                         function getEnclosingWidgetTest(t){
64                                                 t.is(dijit.getEnclosingWidget(dojo.byId("not-a-widget")), null);
65                                                 t.is(dijit.getEnclosingWidget(dojo.byId("three")).name, "your");
66                                                 t.is(dijit.getEnclosingWidget(dojo.byId("three.one")).name, "your");
67                                                 t.is(dijit.getEnclosingWidget(dojo.byId("three.one.one")).name, "your");
68                                         },
69                                         function isTabNavigable(t){
70                                                 t.t(dijit.isTabNavigable(dojo.byId("a-with-href")));
71                                                 t.f(dijit.isTabNavigable(dojo.byId("a-without-href")));
72                                                 t.t(dijit.isTabNavigable(dojo.byId("area")));
73                                                 t.t(dijit.isTabNavigable(dojo.byId("button")));
74                                                 t.t(dijit.isTabNavigable(dojo.byId("input")));
75                                                 t.t(dijit.isTabNavigable(dojo.byId("object")));
76                                                 t.t(dijit.isTabNavigable(dojo.byId("select")));
77                                                 t.t(dijit.isTabNavigable(dojo.byId("textarea")));
78                                                 t.f(dijit.isTabNavigable(dojo.byId("empty")));
79                                                 t.t(dijit.isTabNavigable(dojo.byId("zero-tabindex-div")));
80                                         },
81                                         function findTabNullOnEmpty(t){
82                                                 t.is(null, dijit.getFirstInTabbingOrder("empty"));
83                                                 t.is(null, dijit.getLastInTabbingOrder("empty"));
84                                         },
85                                         function findTabElements(t){
86                                                 t.is(null, dijit.getFirstInTabbingOrder("div-container"));
87                                                 t.is(null, dijit.getFirstInTabbingOrder("a-without-href-container"));
88                                                 t.is("a-with-href", dijit.getFirstInTabbingOrder("a-with-href-container").id);
89
90                                                 // in Safari area elements are not in the tab order
91                                                 // and their display style property is "none";
92                                                 // therefore it is expected that this test will fail
93                                                 if(!dojo.isSafari){
94                                                         t.is("area", dijit.getFirstInTabbingOrder("area-map").id);
95                                                 }
96
97                                                 t.is("button", dijit.getFirstInTabbingOrder("button-container").id);
98                                                 t.is("input", dijit.getFirstInTabbingOrder("input-container").id);
99                                                 t.is("object", dijit.getFirstInTabbingOrder("object-container").id);
100                                                 t.is("select", dijit.getFirstInTabbingOrder("select-container").id);
101                                                 t.is("textarea", dijit.getFirstInTabbingOrder("textarea-container").id);
102                                                 t.is(null, dijit.getLastInTabbingOrder("div-container"));
103                                                 t.is(null, dijit.getLastInTabbingOrder("a-without-href-container"));
104                                                 t.is("a-with-href", dijit.getLastInTabbingOrder("a-with-href-container").id);
105
106                                                 // in Safari area elements are not in the tab order
107                                                 // and their display style property is "none";
108                                                 // therefore it is expected that this test will fail
109                                                 if(!dojo.isSafari){
110                                                         t.is("area", dijit.getLastInTabbingOrder("area-map").id);
111                                                 }
112
113                                                 t.is("button", dijit.getLastInTabbingOrder("button-container").id);
114                                                 t.is("input", dijit.getLastInTabbingOrder("input-container").id);
115                                                 t.is("object", dijit.getLastInTabbingOrder("object-container").id);
116                                                 t.is("select", dijit.getLastInTabbingOrder("select-container").id);
117                                                 t.is("textarea", dijit.getLastInTabbingOrder("textarea-container").id);
118                                         },
119                                         function findTabOnElementRatherThanString(t){
120                                                 t.is("a-with-href", dijit.getFirstInTabbingOrder(dojo.byId("a-with-href-container")).id);
121                                                 t.is("a-with-href", dijit.getLastInTabbingOrder(dojo.byId("a-with-href-container")).id);
122                                         },
123                                         function findTabSkipDisabled(t){
124                                                 t.is("not-disabled-input", dijit.getFirstInTabbingOrder("skip-disabled").id);
125                                                 t.is("not-disabled-input", dijit.getLastInTabbingOrder("skip-disabled").id);
126                                         },
127                                         function findTabZeroTabindex(t){
128                                                 t.is("zero-tabindex-div", dijit.getFirstInTabbingOrder("zero-tabindex-div-container").id);
129                                                 t.is("zero-tabindex-input", dijit.getFirstInTabbingOrder("zero-tabindex-input-container").id);
130                                                 t.is("zero-tabindex-div", dijit.getLastInTabbingOrder("zero-tabindex-div-container").id);
131                                                 t.is("zero-tabindex-input", dijit.getLastInTabbingOrder("zero-tabindex-input-container").id);
132                                         },
133                                         function findTabPositiveTabindex(t){
134                                                 t.is("positive-tabindex-input1a", dijit.getFirstInTabbingOrder("positive-tabindex-mixed-with-no-tabindex").id);
135                                                 t.is("positive-tabindex-input3a", dijit.getFirstInTabbingOrder("positive-tabindex").id);
136                                                 t.is("no-tabindex-input2", dijit.getLastInTabbingOrder("positive-tabindex-mixed-with-no-tabindex").id);
137                                                 t.is("positive-tabindex-input4b", dijit.getLastInTabbingOrder("positive-tabindex").id);
138                                         },
139                                         function findTabSkipMinusOneTabindex(t){
140                                                 t.is("not-minus-one-input", dijit.getFirstInTabbingOrder("skip-minus-one").id);
141                                                 t.is("not-minus-one-input", dijit.getLastInTabbingOrder("skip-minus-one").id);
142                                         },
143                                         function findTabDescend(t){
144                                                 t.is("child-input1", dijit.getFirstInTabbingOrder("descend").id);
145                                                 t.is("child-input2", dijit.getLastInTabbingOrder("descend").id);
146                                         },
147                                         function findTabOuterInner(t){
148                                                 t.is("outer1", dijit.getFirstInTabbingOrder("outer-inner-container").id);
149                                                 t.is("inner2", dijit.getLastInTabbingOrder("outer-inner-container").id);
150                                         },
151                                         function skipNotShown(t){
152                                                 t.is(null, dijit.getFirstInTabbingOrder("hidden-element-container"));
153                                                 t.is(null, dijit.getFirstInTabbingOrder("hidden-container-tabindex-zero"));
154                                                 t.is(null, dijit.getFirstInTabbingOrder("hidden-container-no-tabindex"));
155                                                 t.is(null, dijit.getFirstInTabbingOrder("container-with-hidden-containers"));
156
157                                                 t.is(null, dijit.getFirstInTabbingOrder("display-none-element-container"));
158                                                 t.is(null, dijit.getFirstInTabbingOrder("display-none-container-tabindex-zero"));
159                                                 t.is(null, dijit.getFirstInTabbingOrder("display-none-container-no-tabindex"));
160                                                 t.is(null, dijit.getFirstInTabbingOrder("container-with-display-none-containers"));
161                                         }
162                                 ]
163                         );
164                         doh.run();
165                 });
166
167         </script>
168 </head>
169 <body>
170         <h1>Dijit Manager Unit Test</h1>
171         <div dojoType="foo" id="one" name="bob" attr1="10" attr2="10"></div>
172         <div dojoType="foo" id="two" name="is" attr1="5" attr2="10"></div>
173         <div dojoType="bar" id="three" name="your" attr1="5" attr2="5">
174                 <div id="three.one">
175                         <div id="three.one.one"></div>
176                 </div>
177         </div>
178         <div dojoType="bar" id="four" name="uncle" attr1="10" attr2="5"></div>
179         <div id="not-a-widget"></div>
180
181         <div id="empty"></div>
182
183         <div id="div-container">
184                 <div id="div"></div>
185         </div>
186         <div id="a-without-href-container">
187                 <a id="a-without-href" name="named-link-anchor"></a>
188         </div>
189         <div id="a-with-href-container">
190                 <a id="a-with-href" href="#named-link-anchor"></a>
191         </div>
192
193         <div><img src="../images/flatScreen.gif" alt="picture of a flat-screen monitor" usemap="#area-map"></div>
194         <map id="area-map" name="area-map">
195                 <area id="area" href="#" alt="example area" shape="rect" coords="0,0,8,8">
196         </map>
197
198         <div id="button-container">
199                 <button id="button"></button>
200         </div>
201         <div id="input-container">
202                 <input id="input">
203         </div>
204         <div id="object-container">
205                 <object id="object"></object>
206         </div>
207         <div id="select-container">
208                 <select id="select"></select>
209         </div>
210         <div id="textarea-container">
211                 <textarea id="textarea"></textarea>
212         </div>
213
214         <div id="skip-disabled">
215                 <input id="disabled-input1" disabled="disabled">
216                 <input id="not-disabled-input">
217                 <input id="disabled-input2" disabled="disabled">
218         </div>
219
220         <div id="zero-tabindex-div-container">
221                 <div id="zero-tabindex-div" tabindex="0"></div>
222         </div>
223
224         <div id="zero-tabindex-input-container">
225                 <input id="zero-tabindex-input" tabindex="0">
226         </div>
227
228         <div id="positive-tabindex-mixed-with-no-tabindex">
229                 <input id="no-tabindex-input1">
230                 <input id="no-tabindex-input2">
231                 <input id="positive-tabindex-input1a" tabindex="1">
232                 <input id="positive-tabindex-input1b" tabindex="1">
233                 <input id="positive-tabindex-input2a" tabindex="2">
234                 <input id="positive-tabindex-input2b" tabindex="2">
235         </div>
236
237         <div id="positive-tabindex">
238                 <input id="positive-tabindex-input3a" tabindex="3">
239                 <input id="positive-tabindex-input3b" tabindex="3">
240                 <input id="positive-tabindex-input4a" tabindex="4">
241                 <input id="positive-tabindex-input4b" tabindex="4">
242         </div>
243
244         <div id="skip-minus-one">
245                 <input id="minus-one-input1" tabindex="-1">
246                 <input id="not-minus-one-input">
247                 <input id="minus-one-input2" tabindex="-1">
248         </div>
249
250         <div id="descend">
251                 <input disabled="disabled">
252                 <div>
253                         <input disabled="disabled">
254                         <div>
255                                 <input disabled="disabled">
256                         </div>
257                 </div>
258                 <div>
259                         <input disabled="disabled">
260                         <div>
261                                 <input disabled="disabled">
262                         </div>
263                         <div>
264                                 <input id="child-input1">
265                         </div>
266                         <div>
267                                 <input id="child-input2">
268                         </div>
269                 </div>
270                 <div>
271                         <div>
272                                 <input disabled="disabled">
273                         </div>
274                         <input disabled="disabled">
275                 </div>
276                 <input disabled="disabled">
277         </div>
278
279         <div id="outer-inner-container">
280                 <div id="outer1" tabindex="0">
281                         <div id="inner1" tabindex="0"></div>
282                 </div>
283                 <div id="outer2" tabindex="0">
284                         <div id="inner2" tabindex="0"></div>
285                 </div>
286         </div>
287
288         <div id="hidden-element-container">
289                 <div id="hidden-element" tabindex="0" style="visibility: hidden;">
290                 </div>  
291         </div>
292
293         <div id="container-with-hidden-containers">
294                 <div id="hidden-container-tabindex-zero" tabindex="0" style="visibility: hidden;">
295                         <div id="inside-hidden-container-tabindex-zero" tabindex="0">
296                         </div>  
297                 </div>
298                 
299                 <div id="hidden-container-no-tabindex" style="visibility: hidden;">
300                         <div id="inside-hidden-container-no-tabindex" tabindex="0">
301                         </div>  
302                 </div>
303         </div>
304
305         <div id="display-none-element-container">
306                 <div id="display-none-element" tabindex="0" style="display: none;">
307                 </div>  
308         </div>
309
310         <div id="container-with-display-none-containers">
311                 <div id="display-none-container-tabindex-zero" tabindex="0" style="display: none;">
312                         <div id="inside-display-none-container-tabindex-zero" tabindex="0">
313                         </div>  
314                 </div>
315                 
316                 <div id="display-none-container-no-tabindex" style="display: none;">
317                         <div id="inside-display-none-container-no-tabindex" tabindex="0">
318                         </div>  
319                 </div>
320         </div>
321 </body>
322 </html>