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.
166 lines (152 loc) • 6.34 kB
JavaScript
dojo.addOnLoad(function(){
var CLASSNAMES1 = ["mblTabBarButton", "mblTabBarButtonSelected"];
var CLASSNAMES2 = ["mblTabBarButton", "mblTabBarButtonHasIcon", "mblTabBarButtonSelected"];
var geom = require("dojo/dom-geometry");
var checkSpreadedChildren = function(/* String */ tabBarId, /* Number */ nbOfButtons, /* Number */ tabBarPaddingPlusBorderPlusMarginWidth){
var tabBarPosition = geom.position(tabBarId);
var tabBarButtonsPositions = [];
for (var i=1; i <= nbOfButtons; i++){
var node = dojo.byId(tabBarId + "-button" + i);
tabBarButtonsPositions[i] = geom.position(node);
}
console.log(tabBarId);
console.log(tabBarPosition);
console.log(tabBarButtonsPositions);
doh.assertEqual(Math.round(tabBarPosition.w - tabBarPaddingPlusBorderPlusMarginWidth), Math.round(tabBarButtonsPositions[1].w * nbOfButtons), tabBarId + " > button 1 size");
for (var j=2; j <= nbOfButtons; j++){
doh.assertEqual(Math.round(tabBarButtonsPositions[1].w), Math.round(tabBarButtonsPositions[j].w), tabBarId + " > button " + j + " size");
}
};
doh.register("dojox.mobile.test.doh.TabBar", [
{
name: "TabBar and TabBarButton Verification",
timeout: 4000,
runTest: function(){
var d = new doh.Deferred();
setTimeout(d.getTestCallback(function(){
var demoWidget = dijit.byId("dojox_mobile_TabBar_0");
doh.assertTrue(dojo.hasClass(demoWidget.domNode, 'mblTabBar'),'mblTabBar ' + " id=" + demoWidget.id + " value=" + demoWidget.domNode.className);
doh.assertTrue(dojo.hasClass(demoWidget.domNode, 'mblTabBarSegmentedControl'), 'mblTabBarSegmentedControl ' + " id=" + demoWidget.id + " value=" + demoWidget.domNode.className);
verifyTabBarButton("dojox_mobile_TabBarButton_0", 'New', CLASSNAMES1, 'hidden', '', /tab-icon-16.png/i, /tab-icon-16h.png/);
demoWidget = dijit.byId("dojox_mobile_TabBar_1");
doh.assertTrue(dojo.hasClass(demoWidget.domNode, 'mblTabBar'),'mblTabBar ' + " id=" + demoWidget.id + " value=" + demoWidget.domNode.className);
doh.assertTrue(dojo.hasClass(demoWidget.domNode, 'mblTabBarTabBar'), 'mblTabBarTabBar ' + " id=" + demoWidget.id + " value=" + demoWidget.domNode.className);
verifyTabBarButton("dojox_mobile_TabBarButton_3", 'New', CLASSNAMES2, 'hidden', '', /tab-icon-16.png/i, /tab-icon-16h.png/);
demoWidget = dijit.byId("dojox_mobile_TabBar_2");
doh.assertTrue(dojo.hasClass(demoWidget.domNode, 'mblTabBar'),'mblTabBar ' + " id=" + demoWidget.id + " value=" + demoWidget.domNode.className);
doh.assertTrue(dojo.hasClass(demoWidget.domNode, 'mblTabBarTabBar'), 'mblTabBarTabBar ' + " id=" + demoWidget.id + " value=" + demoWidget.domNode.className);
verifyTabBarButton("dojox_mobile_TabBarButton_6", 'Featured', CLASSNAMES2, 'hidden', '', /tab-icons.png/i, /tab-icons.png/i, true);
demoWidget = dijit.byId("dojox_mobile_TabBarButton_6");
verifyRect(demoWidget.iconNode1.childNodes[0], "0px", "29px", "29px", "0px");
verifyRect(demoWidget.iconNode2.childNodes[0], "29px", "29px", "58px", "0px");
verifyTabBarButton("tbbBadge1", 'Foo', ["mblTabBarButton", "mblTabBarButtonHasIcon"], '', '', /tab-icon-16.png/i, /tab-icon-16h.png/i);
verifyTabBarButton("tbbBadge2", 'Bar', ["mblTabBarButton", "mblTabBarButtonHasIcon"], '', '', /tab-icon-15.png/i, /tab-icon-15h.png/i);
}),500);
return d;
}
},
{
name: "TabBar and TabBarButton set",
timeout: 4000,
runTest: function(){
var d = new doh.Deferred();
setTimeout(d.getTestCallback(function(){
var demoWidget = dijit.byId("dojox_mobile_TabBar_0");
demoWidget = dijit.byId("dojox_mobile_TabBarButton_2");
demoWidget.set({label:"New Value"});
// demoWidget.select();
demoWidget.set({selected:true});
verifyTabBarButton("dojox_mobile_TabBarButton_2", 'New Value', CLASSNAMES1, 'hidden', '', /tab-icon-10.png/i, /tab-icon-10h.png/);
demoWidget = dijit.byId("dojox_mobile_TabBarButton_5");
demoWidget.set({label:"New Value", icon1:"../../images/tab-icon-11.png", icon2:"../../images/tab-icon-11h.png"});
// demoWidget.select();
demoWidget.set("selected",true);
verifyTabBarButton("dojox_mobile_TabBarButton_5", 'New Value', CLASSNAMES2, 'hidden', '', /tab-icon-11.png/i, /tab-icon-11h.png/)
demoWidget = dijit.byId("dojox_mobile_TabBarButton_4");
demoWidget.set({icon1:null, icon2:null});
doh.assertEqual(null, demoWidget.iconNode1, demoWidget.domNode.id);
doh.assertEqual(null, demoWidget.iconNode2, demoWidget.domNode.id);
}),500);
return d;
}
},
{
name: "fill='always' on segmented control",
timeout: 4000,
runTest: function(){
var d = new doh.Deferred();
setTimeout(d.getTestCallback(function(){
checkSpreadedChildren("spread-sc", 3, 12);
}),500);
return d;
}
},
{
name: "fill='always' on tab Bar",
timeout: 4000,
runTest: function(){
var d = new doh.Deferred();
setTimeout(d.getTestCallback(function(){
checkSpreadedChildren("spread-tb", 3, 12);
}),500);
return d;
}
},
{
name: "fill='always' on tab Bar (CSS Sprite)",
timeout: 4000,
runTest: function(){
var d = new doh.Deferred();
setTimeout(d.getTestCallback(function(){
checkSpreadedChildren("spread-tb-css", 5, 12);
}),500);
return d;
}
},
{
name: "fill='always' on slim tab",
timeout: 4000,
runTest: function(){
var d = new doh.Deferred();
setTimeout(d.getTestCallback(function(){
checkSpreadedChildren("spread-st", 4, 2);
}),500);
return d;
}
},
{
name: "fill='always' on standard bar",
timeout: 4000,
runTest: function(){
var d = new doh.Deferred();
setTimeout(d.getTestCallback(function(){
checkSpreadedChildren("spread-std", 4, 12);
}),500);
return d;
}
},
{
name: "fill='always' on flat bar",
timeout: 4000,
runTest: function(){
var d = new doh.Deferred();
setTimeout(d.getTestCallback(function(){
checkSpreadedChildren("spread-flat", 4, 0);
}),500);
return d;
}
},
{
name: "fill='always' on tall bar",
timeout: 4000,
runTest: function(){
var d = new doh.Deferred();
setTimeout(d.getTestCallback(function(){
checkSpreadedChildren("spread-tall", 4, 12);
}),500);
return d;
}
}
]);
doh.run();
});