1 | <!DOCTYPE html> |
---|
2 | <html> |
---|
3 | <head> |
---|
4 | <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no"/> |
---|
5 | <meta http-equiv="Content-type" content="text/html; charset=utf-8"> |
---|
6 | <title>mobile ComboBox tests</title> |
---|
7 | |
---|
8 | <style type="text/css"> |
---|
9 | @import "../themes/iphone/TextBox.css"; |
---|
10 | @import "../themes/iphone/ComboBox.css"; |
---|
11 | </style> |
---|
12 | |
---|
13 | <script type="text/javascript" src="../../../dojo/dojo.js" |
---|
14 | data-dojo-config="parseOnLoad: true, isDebug: true"></script> |
---|
15 | |
---|
16 | <script type="text/javascript"> |
---|
17 | dojo.require("doh.runner"); |
---|
18 | dojo.require("dojox.mobile"); // This is a mobile app. |
---|
19 | dojo.require("dojox.mobile.parser"); // This mobile app supports running on desktop browsers |
---|
20 | dojo.require("dojox.mobile.compat"); // This mobile app uses declarative programming with fast mobile parser |
---|
21 | dojo.require("dijit.form.DataList"); |
---|
22 | dojo.require("dojox.mobile.ComboBox"); |
---|
23 | |
---|
24 | dojo.ready(function(){ |
---|
25 | |
---|
26 | doh.register("attributes", [ |
---|
27 | { |
---|
28 | name: "mobile", |
---|
29 | runTest: function(){ |
---|
30 | var widget = dijit.byId('mobile_attributes'); |
---|
31 | doh.is("", widget.textbox.value, "mobile original value"); |
---|
32 | doh.is("", widget.get('value'), "mobile original get('value')"); |
---|
33 | doh.is(Infinity, widget.get('pageSize'), "mobile original get('pageSize')"); |
---|
34 | widget.set('pageSize', 9); |
---|
35 | widget.set('value', "test"); |
---|
36 | doh.is("test", widget.textbox.value, "mobile value"); |
---|
37 | doh.is("test", widget.get('value'), "mobile get('value')"); |
---|
38 | doh.is(9, widget.get('pageSize'), "mobile get('pageSize')"); |
---|
39 | } |
---|
40 | } |
---|
41 | ]); |
---|
42 | |
---|
43 | var d, focusHandle, blurHandle, widget, nop = function(){ return false; }; |
---|
44 | doh.register("events", [ |
---|
45 | { |
---|
46 | name: "mobile", |
---|
47 | timeout: 2000, |
---|
48 | runTest: function(){ |
---|
49 | d = new doh.Deferred(); |
---|
50 | widget = dijit.byId('mobile_events'); |
---|
51 | |
---|
52 | function onFocus(){ |
---|
53 | widget.disconnect(focusHandle); |
---|
54 | focusHandle = null; |
---|
55 | widget.set('displayedValue', "Focus"); |
---|
56 | blurHandle = widget.connect(widget.textbox, 'onblur', onBlur); |
---|
57 | dojo.byId('blurry').focus(); |
---|
58 | } |
---|
59 | function onBlur(){ |
---|
60 | widget.disconnect(blurHandle); |
---|
61 | blurHandle = null; |
---|
62 | widget.set('onChange', onChange); |
---|
63 | widget.set('displayedValue', widget.get('displayedValue')+"Blur"); |
---|
64 | } |
---|
65 | function onChange(){ |
---|
66 | widget.set('onChange', nop); |
---|
67 | d.getTestCallback(function(){ |
---|
68 | doh.is("FocusBlur", widget.textbox.value); |
---|
69 | })(); |
---|
70 | } |
---|
71 | doh.is(nop.toString(), widget.get('onChange').toString(), "get('onChange')"); |
---|
72 | focusHandle = widget.connect(widget, 'openDropDown', onFocus); |
---|
73 | setTimeout(dojo.hitch(widget, "focus"), 0); |
---|
74 | |
---|
75 | return d; |
---|
76 | }, |
---|
77 | tearDown: function(){ |
---|
78 | d.cancel(); |
---|
79 | if(blurHandle){ widget.disconnect(blurHandle); } |
---|
80 | if(focusHandle){ widget.disconnect(focusHandle); } |
---|
81 | widget.closeDropDown(); |
---|
82 | } |
---|
83 | } |
---|
84 | ]); |
---|
85 | |
---|
86 | doh.register("programmatic", [ |
---|
87 | { |
---|
88 | name: "mobile", |
---|
89 | timeout: 4000, |
---|
90 | runTest: function(){ |
---|
91 | widget = new dojox.mobile.ComboBox({id:"mobile_programmatic", list:"states", value:"Alabama" }); |
---|
92 | widget.placeAt("mobile_programmatic_container", "first"); |
---|
93 | focusHandle = widget.connect(widget, 'openDropDown', |
---|
94 | function(){ |
---|
95 | d.getTestCallback(function(){ |
---|
96 | widget.disconnect(focusHandle); |
---|
97 | focusHandle = null; |
---|
98 | var pos = dojo.position(widget.domNode, true); |
---|
99 | doh.t(pos.w > 0 && pos.h > 0 && pos.x > 0 && pos.y > 0, 'mobile position'); |
---|
100 | doh.is("Alabama", widget.textbox.value, 'mobile textbox value'); |
---|
101 | doh.is("Alabama", widget.get('value'), 'mobile widget value'); |
---|
102 | })(); |
---|
103 | } |
---|
104 | ); |
---|
105 | d = new doh.Deferred(); |
---|
106 | setTimeout(dojo.hitch(widget, "focus"), 0); |
---|
107 | |
---|
108 | return d; |
---|
109 | }, |
---|
110 | tearDown: function(){ |
---|
111 | d.cancel(); |
---|
112 | if(focusHandle){ widget.disconnect(focusHandle); } |
---|
113 | widget.closeDropDown(); |
---|
114 | } |
---|
115 | } |
---|
116 | ]); |
---|
117 | |
---|
118 | doh.register("log", function(){ |
---|
119 | dojo.byId('failures').innerHTML = doh._failureCount; |
---|
120 | dojo.byId('errors').innerHTML = doh._errorCount; |
---|
121 | }); |
---|
122 | |
---|
123 | doh.run(); |
---|
124 | }); |
---|
125 | </script> |
---|
126 | </head> |
---|
127 | <body style="visibility:hidden;"> |
---|
128 | <h1 class="testTitle">mobile ComboBox non-robot tests</h1> |
---|
129 | <datalist id="states"> |
---|
130 | <select data-dojo-type="dijit.form.DataList" data-dojo-props='id:"states"' > |
---|
131 | <option value="AL">Alabama</option> |
---|
132 | <option value="AK">Alaska</option> |
---|
133 | <option value="AS">American Samoa</option> |
---|
134 | <option value="AZ">Arizona</option> |
---|
135 | <option value="AR">Arkansas</option> |
---|
136 | <option value="AE">Armed Forces Europe</option> |
---|
137 | <option value="AP">Armed Forces Pacific</option> |
---|
138 | <option value="AA">Armed Forces the Americas</option> |
---|
139 | <option value="CA">California</option> |
---|
140 | <option value="CO">Colorado</option> |
---|
141 | <option value="CT">Connecticut</option> |
---|
142 | <option value="DE">Delaware</option> |
---|
143 | <option value="DC">District of Columbia</option> |
---|
144 | <option value="FM">Federated States of Micronesia</option> |
---|
145 | <option value="FL">Florida</option> |
---|
146 | <option value="GA">Georgia</option> |
---|
147 | <option value="GU">Guam</option> |
---|
148 | <option value="HI">Hawaii</option> |
---|
149 | <option value="ID">Idaho</option> |
---|
150 | <option value="IL">Illinois</option> |
---|
151 | <option value="IN">Indiana</option> |
---|
152 | <option value="IA">Iowa</option> |
---|
153 | <option value="KS">Kansas</option> |
---|
154 | <option value="KY">Kentucky</option> |
---|
155 | <option value="LA">Louisiana</option> |
---|
156 | <option value="ME">Maine</option> |
---|
157 | <option value="MH">Marshall Islands</option> |
---|
158 | <option value="MD">Maryland</option> |
---|
159 | <option value="MA">Massachusetts</option> |
---|
160 | <option value="MI">Michigan</option> |
---|
161 | <option value="MN">Minnesota</option> |
---|
162 | <option value="MS">Mississippi</option> |
---|
163 | <option value="MO">Missouri</option> |
---|
164 | <option value="MT">Montana</option> |
---|
165 | <option value="NE">Nebraska</option> |
---|
166 | <option value="NV">Nevada</option> |
---|
167 | <option value="NH">New Hampshire</option> |
---|
168 | <option value="NJ">New Jersey</option> |
---|
169 | <option value="NM">New Mexico</option> |
---|
170 | <option value="NY">New York</option> |
---|
171 | <option value="NC">North Carolina</option> |
---|
172 | <option value="ND">North Dakota</option> |
---|
173 | <option value="MP">Northern Mariana Islands</option> |
---|
174 | <option value="OH">Ohio</option> |
---|
175 | <option value="OK">Oklahoma</option> |
---|
176 | <option value="OR">Oregon</option> |
---|
177 | <option value="PA">Pennsylvania</option> |
---|
178 | <option value="PR">Puerto Rico</option> |
---|
179 | <option value="RI">Rhode Island</option> |
---|
180 | <option value="SC">South Carolina</option> |
---|
181 | <option value="SD">South Dakota</option> |
---|
182 | <option value="TN">Tennessee</option> |
---|
183 | <option value="TX">Texas</option> |
---|
184 | <option value="UT">Utah</option> |
---|
185 | <option value="VT">Vermont</option> |
---|
186 | <option value="VI">Virgin Islands, U.S.</option> |
---|
187 | <option value="VA">Virginia</option> |
---|
188 | <option value="WA">Washington</option> |
---|
189 | <option value="WV">West Virginia</option> |
---|
190 | <option value="WI">Wisconsin</option> |
---|
191 | <option value="WY">Wyoming</option> |
---|
192 | </select> |
---|
193 | </datalist> |
---|
194 | <table id="table" cellspacing="20"> |
---|
195 | <tr> |
---|
196 | <td class="layout">attributes</td> |
---|
197 | <td class="layout"><input id="mobile_attributes" data-dojo-type="dojox.mobile.ComboBox" data-dojo-props='value:"", list:"states"'></td> |
---|
198 | </tr> |
---|
199 | <tr> |
---|
200 | <td class="layout">events</td> |
---|
201 | <td class="layout"><input id="mobile_events" data-dojo-type="dojox.mobile.ComboBox" data-dojo-props='value:"", list:"states", onChange:function(){ return false; }'></td> |
---|
202 | </tr> |
---|
203 | <tr> |
---|
204 | <td class="layout">programmatic</td> |
---|
205 | <td class="layout" id="mobile_programmatic_container"></td> |
---|
206 | </tr> |
---|
207 | </table> |
---|
208 | <input tyle="checkbox" id="blurry" style="opacity:0;border:0px none;"/> |
---|
209 | <br>Errors: <span id="errors">?</span> |
---|
210 | <br>Failures: <span id="failures">?</span> |
---|
211 | </body> |
---|
212 | </html> |
---|