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.
151 lines (135 loc) • 6.85 kB
JavaScript
var WIDGET_CLASSNAME1 = "mblListItem";
var WIDGET_ANCHOR_CLASSNAME1 = "mblListItemAnchor";
var WIDGET_ANCHOR_CLASSNAME2 = "mblListItemAnchorNoIcon";
var WIDGET_ICON_CLASSNAME1 = "mblListItemIcon";
var WIDGET_RIGHTICON_CLASSNAME1 = "mblListItemRightIcon";
var WIDGET_DOMBUTTON_ARROW = "mblDomButtonArrow";
var WIDGET_DOMBUTTON_BLUEPLUS = "mblDomButtonBluePlus";
var WIDGET_DOMBUTTON_CHECKBOX_ON = "mblDomButtonCheckboxOn";
require([
"dojo/_base/connect",
"dojo/dom-class", // dojo.hasClass
"dojo/ready", // dojo.ready
"dijit/registry", // dijit.byId
"dojo/string", // dojo.trim
"doh/runner", //doh functions
"dojox/mobile/ListItem",
"dojox/mobile/RoundRectList",
"dojox/mobile/EdgeToEdgeList",
"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, domClass, ready, registry, string, runner, ListItem){
function _createListItemDeclaratively(widgetId) {
return registry.byId(widgetId);
};
function _createListItemProgrammatically(parentId, widgetId){
// Create SwapView
parentWidget = registry.byId(parentId);;
runner.assertNotEqual(null, parentWidget, "No parentWidget id=" + parentId);
var r;
r = new ListItem({id:widgetId[0], icon:"../../images/i-icon-1.png", rightText:"Off", moveTo:"bar", label:"u1space"});
parentWidget.addChild(r);
r = new ListItem({id:widgetId[1], label:"u2space"});
parentWidget.addChild(r);
r = new ListItem({id:widgetId[2], rightIcon:"mblDomButtonBluePlus", label:"Wi-Fi"});
parentWidget.addChild(r);
r = new ListItem({id:widgetId[3], rightIcon:"mblDomButtonCheckboxOn", label:"VPN"});
parentWidget.addChild(r);
r = new ListItem({id:widgetId[4], variableHeight:"true", style:"font-size:10px", label:'<div>1. <a href="#" class="lnk">Dojo: Traditional Karate-do Spirit</a><br>Sarah Connor Hardcover<br>Eligible for FREE Super Saver Shipping<br><font color="red">$14.50 (50%)</font> In Stock<br># (531)</div>'});
parentWidget.addChild(r);
return parentWidget;
};
function _createListItemProgrammaticallyWithSourceNodeReference(widgetId){
// Create IconContainer
var r;
r = new ListItem({icon:"../../images/i-icon-1.png", rightText:"Off", moveTo:"bar"}, widgetId[0]);
r.startup();
r = new ListItem({}, widgetId[1]);
r.startup();
r = new ListItem({rightIcon:"mblDomButtonBluePlus"}, widgetId[2]);
r.startup();
r = new ListItem({rightIcon:"mblDomButtonCheckboxOn"}, widgetId[3]);
r.startup();
r = new ListItem({variableHeight:"true"}, widgetId[4]);
r.startup();
return r;
};
function _assertCorrectListItems(widgetId){
_assertCorrectListItem(widgetId[0], false, WIDGET_DOMBUTTON_ARROW, "", "Off", "u1space");
_assertCorrectListItem(widgetId[1], true, "", "", "", "u2space");
_assertCorrectListItem(widgetId[2], true, WIDGET_DOMBUTTON_BLUEPLUS, "", "", "Wi-Fi");
_assertCorrectListItem(widgetId[3], true, WIDGET_DOMBUTTON_CHECKBOX_ON, "", "", "VPN");
_assertCorrectListItem(widgetId[4], true, "", "", "", '');
};
function _assertCorrectListItem(widgetId, noIcon, rightIcon, rightIcon2, rightText, boxText){
var widget = registry.byId(widgetId);
doh.assertNotEqual(null, widget, "ListItem: Did not instantiate.");
runner.assertTrue(domClass.contains(widget.domNode, WIDGET_CLASSNAME1), WIDGET_CLASSNAME1 + " id=" + widget.domNode.id);
if(!noIcon){
runner.assertTrue(widget.iconNode, "iconNode: There is no iconNode. id=" + widget.domNode.id);
runner.assertTrue(domClass.contains(widget.iconNode, WIDGET_ICON_CLASSNAME1), WIDGET_ICON_CLASSNAME1 + " id=" + widget.domNode.id);
if(dojo.isIE!=6){
runner.assertTrue(!!widget.iconNode.src, "iconNode: There is no src in iconNode. id=" + widget.domNode.id);
}
}
if(rightIcon){
runner.assertTrue(widget.rightIconNode, "rightIconNode: There is no rightIconNode. id=" + widget.domNode.id);
runner.assertEqual(WIDGET_RIGHTICON_CLASSNAME1, widget.rightIconNode.className);
runner.assertTrue(domClass.contains(widget.rightIconNode.childNodes[0], rightIcon), rightIcon + " id=" + widget.domNode.id);
}
if(rightIcon2){
runner.assertTrue(widget.rightIconNode2, "rightIconNode2: There is no rightIconNode2. id=" + widget.domNode.id);
runner.assertTrue(domClass.contains(widget.rightIconNode2, rightIcon2), rightIcon2 + " id=" + widget.domNode.id);
}
if(rightText){
runner.assertTrue(widget.rightTextNode, "rightTextNode: There is no rightTextNode. id=" + widget.domNode.id);
runner.assertEqual(rightText, widget.rightTextNode.innerHTML);
}
if(boxText){
runner.assertTrue(widget.labelNode, "box: There is no box. id=" + widget.domNode.id);
var innerHTML = string.trim(widget.labelNode.innerHTML.replace(/\r\n/g,""));
runner.assertEqual(boxText, innerHTML, "id=" + widget.domNode.id);
}
};
function _showView2(){
var view1 = registry.byId("view1");
view1.performTransition("view2", 1, "none");
};
ready(function(){
runner.register("dojox.mobile.test.doh.Heading", [
{
name: "ListItem Verification1",
timeout: 4000,
runTest: function(){
_createListItemProgrammatically("view1-RoundRectList2", ["view1-item6", "view1-item7", "view1-item8", "view1-item9", "view1-item10"]);
_createListItemProgrammaticallyWithSourceNodeReference(["view1-item11", "view1-item12", "view1-item13", "view1-item14", "view1-item15"]);
_assertCorrectListItems(["view1-item1", "view1-item2", "view1-item3", "view1-item4", "view1-item5"]);
_assertCorrectListItems(["view1-item6", "view1-item7", "view1-item8", "view1-item9", "view1-item10"]);
_assertCorrectListItems(["view1-item11", "view1-item12", "view1-item13", "view1-item14", "view1-item15"]);
}
},
{
name: "ListItem Verification2",
timeout: 4000,
runTest: function(){
_createListItemProgrammatically("view2-RoundRectList2", ["view2-item6", "view2-item7", "view2-item8", "view2-item9", "view2-item10"]);
_createListItemProgrammaticallyWithSourceNodeReference(["view2-item11", "view2-item12", "view2-item13", "view2-item14", "view2-item15"]);
var d = new runner.Deferred();
var handle2 = connect.subscribe("/dojox/mobile/afterTransitionIn", d.getTestCallback(function(view){
if(view.id=="view2"){
connect.unsubscribe(handle2);
}
_assertCorrectListItems(["view2-item1", "view2-item2", "view2-item3", "view2-item4", "view2-item5"]);
_assertCorrectListItems(["view2-item6", "view2-item7", "view2-item8", "view2-item9", "view2-item10"]);
_assertCorrectListItems(["view2-item11", "view2-item12", "view2-item13", "view2-item14", "view2-item15"]);
}));
_showView2();
return d;
}
}
]);
runner.run();
});
})