UNPKG

dojox

Version:

Dojo eXtensions, a rollup of many useful sub-projects and varying states of maturity – from very stable and robust, to alpha and experimental. See individual projects contain README files for details.

143 lines (132 loc) 5.24 kB
<!DOCTYPE HTML> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no" /> <meta name="apple-mobile-web-app-capable" content="yes" /> <title>Combo Box Tests</title> <script type="text/javascript" src="../../../deviceTheme.js" data-dojo-config="mblThemeFiles: ['base','base']"></script> <script type="text/javascript" src="../../../../../dojo/dojo.js" data-dojo-config="async: true, parseOnLoad: true, has:{'dojo-bidi': true}"></script> <script language="JavaScript" type="text/javascript"> var timeoutInterval = 1000; require([ "dojo/_base/connect", "dojo/_base/sniff", "dojo/dom-construct", // dojo.place "dojo/dom-class", // dojo.hasClass "dojo/store/Memory", // dojo.store.Memory "dojo/ready", // dojo.ready "dijit/registry", // dijit.byId "doh/runner", //doh functions "dojox/mobile/ComboBox", "dojox/mobile", // This is a mobile app. "dojox/mobile/View", // This mobile app uses mobile view "dojox/mobile/compat", // This mobile app supports running on desktop browsers "dojox/mobile/parser" // This mobile app uses declarative programming with fast mobile parser ], function(connect, has, domConst, domClass, Memory, ready, registry, runner, ComboBox){ var FRUITS = new Memory({ idProperty:"name", data:[ {name:"Apple"}, {name:"Banana"}, {name:"Cherry"} ]}); function _createComboBoxDeclaratively(id) { return registry.byId(id); }; function _createComboBoxProgrammatically(placeHolderId){ var widget = new ComboBox({store:FRUITS, id:placeHolderId, value:'Apple'}); runner.assertNotEqual(null, widget); domConst.place(widget.domNode, placeHolderId, "replace"); widget.startup(); return widget; }; function _createComboBoxProgrammaticallyWithSourceNodeReference(id){ var widget = new ComboBox({store:FRUITS, value:'Apple'}, id); widget.startup(); return widget; }; function _assertCorrectComboBox(comboBox){ runner.assertNotEqual(null, comboBox); runner.assertEqual(FRUITS.data[0].name, comboBox.domNode.value, comboBox.toString()); comboBox.set("value", FRUITS.data[1].name); runner.assertEqual(FRUITS.data[1].name, comboBox.domNode.value, comboBox.toString()); }; function _showView2(){ var view1 = registry.byId("view1"); view1.performTransition("view2", 1, "none"); }; ready(function(){ runner.register("dojox.mobile.test.doh.ComboBoxTests", [ { name: "testInView1", timeout: 4000, runTest: function(){ var d = new runner.Deferred(); var comboBox1 = _createComboBoxDeclaratively("view1-comboBox1"); var comboBox2 = _createComboBoxProgrammatically("view1-comboBox2"); var comboBox3 = _createComboBoxProgrammaticallyWithSourceNodeReference("view1-comboBox3"); setTimeout(d.getTestCallback(function(){ var comboBox1 = registry.byId("view1-comboBox1"); var comboBox2 = registry.byId("view1-comboBox2"); var comboBox3 = registry.byId("view1-comboBox3"); _assertCorrectComboBox(comboBox1); _assertCorrectComboBox(comboBox2); _assertCorrectComboBox(comboBox3); }), timeoutInterval); return d; } }, { name: "testInView2", timeout: 4000, runTest: function(){ var d = new runner.Deferred(); var comboBox1 = _createComboBoxDeclaratively("view2-comboBox1"); var comboBox2 = _createComboBoxProgrammatically("view2-comboBox2"); var comboBox3 = _createComboBoxProgrammaticallyWithSourceNodeReference("view2-comboBox3"); _showView2(); setTimeout(d.getTestCallback(function(){ var comboBox1 = registry.byId("view2-comboBox1"); var comboBox2 = registry.byId("view2-comboBox2"); var comboBox3 = registry.byId("view2-comboBox3"); _assertCorrectComboBox(comboBox1); _assertCorrectComboBox(comboBox2); _assertCorrectComboBox(comboBox3); }), timeoutInterval); return d; } } ]); runner.run(); }); }) </script> </head> <body> <div id="view1" data-dojo-type="dojox.mobile.View" selected="true" dir="ltr"> <h1>View 1</h1> <datalist id="fruits"> <select data-dojo-type="dijit.form.DataList" data-dojo-props="id:'fruits'"> <option value="fruit1">Apple</option> <option value="fruit2">Banana</option> <option value="fruit3">Cherry</option> </select> </datalist> <input id="view1-comboBox1" type="text" data-dojo-type="dojox.mobile.ComboBox" data-dojo-props="value:'Apple', list:'fruits'"></input> <div id="view1-comboBox2"></div> <input id="view1-comboBox3" type="text"></input> </div> <div id="view2" data-dojo-type="dojox.mobile.View" dir="rtl"> <h1>View 2</h1> <select data-dojo-type="dijit.form.DataList" data-dojo-props="id:'fruits2'"> <option>Apple</option> <option>Banana</option> <option>Cherry</option> </select> <input id="view2-comboBox1" type="text" data-dojo-type="dojox.mobile.ComboBox" data-dojo-props="value:'Apple', list:'fruits2'"></input> <div id="view2-comboBox2"></div> <input id="view2-comboBox3" type="text"></input> </div> </body> </html>