You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
4.8 KiB
116 lines
4.8 KiB
<!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>Button Tests</title> |
|
<script type="text/javascript" src="../../../deviceTheme.js"></script> |
|
<script type="text/javascript" src="../../../../../dojo/dojo.js" data-dojo-config="async: true, parseOnLoad: true"></script> |
|
<script language="JavaScript" type="text/javascript"> |
|
var BUTTON_LABEL = "Button"; |
|
var BUTTON_WIDTH = 58; |
|
var BUTTON_WIDTH_FF = 64; |
|
var BUTTON_WIDTH_WINTHEME = 64; // IE10 |
|
var BUTTON_HEIGHT = 27; |
|
var BUTTON_HEIGHT_WINTHEME = 28; // IE10 |
|
// actual width/height should differ from the expected one by at most this |
|
// percentage of difference |
|
var DIFF_PERCENTAGE = 15; // at most 15% of difference |
|
|
|
require([ |
|
"dojo/sniff", |
|
"dojo/dom-class", |
|
"dojo/dom-construct", // dojo.place |
|
"dojo/ready", // dojo.ready |
|
"dojo/_base/window", |
|
"dijit/registry", // dijit.byId |
|
"doh/runner", //doh functions |
|
"dojox/mobile/Button", |
|
"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(has, domClass, domConst, ready, win, registry, runner, Button){ |
|
function _createButtonDeclaratively(buttonId) { |
|
return registry.byId(buttonId); |
|
}; |
|
function _createButtonProgrammatically(placeHolderId){ |
|
var button = new Button({label:BUTTON_LABEL}); |
|
runner.assertNotEqual(null, button, placeHolderId); |
|
domConst.place(button.domNode, placeHolderId, "replace"); |
|
button.startup(); |
|
return button; |
|
}; |
|
function _createButtonProgrammaticallyWithSourceNodeReference(buttonId){ |
|
return new Button({label:BUTTON_LABEL}, buttonId); |
|
}; |
|
function _assertCorrectButton(width, height, button){ |
|
if(width < 0){ |
|
return; // Skip for IE<9 (a negative width is the convention we use for skipping) |
|
} |
|
runner.assertNotEqual(null, button); |
|
var widthDiffPercentage = Math.abs((width - button.domNode.clientWidth) / width) * 100; |
|
var heightDiffPercentage = Math.abs((height - button.domNode.clientHeight) / width) * 100; |
|
runner.assertTrue(widthDiffPercentage < DIFF_PERCENTAGE, |
|
"width got " + button.domNode.clientWidth + " expected: near " + width + |
|
" with less than " + DIFF_PERCENTAGE + "%" + " of difference; id=" + button.domNode.id); |
|
runner.assertTrue(heightDiffPercentage < DIFF_PERCENTAGE, |
|
"height got " + button.domNode.clientHeight + " expected: near " + height + |
|
" with less than " + DIFF_PERCENTAGE + "%" + " of difference; id=" + button.domNode.id); |
|
} |
|
function _showView2(){ |
|
var view1 = registry.byId("view1"); |
|
view1.performTransition("view2", 1, "none"); |
|
}; |
|
ready(function(){ |
|
var buttonWidth = domClass.contains(win.doc.documentElement, "windows_theme") ? |
|
BUTTON_WIDTH_WINTHEME : has("ff") ? BUTTON_WIDTH_FF : BUTTON_WIDTH; |
|
var buttonHeight = domClass.contains(win.doc.documentElement, "windows_theme") ? |
|
BUTTON_HEIGHT_WINTHEME : BUTTON_HEIGHT; |
|
// Skip the checks for IE<9 |
|
if(has("ie") < 9){ |
|
buttonWidth = -1; // negative value as convention for skipping tests |
|
} |
|
runner.register("dojox.mobile.test.doh.ButtonTests", [ |
|
function testInView1(){ |
|
var button1 = _createButtonDeclaratively("view1-button1"); |
|
var button2 = _createButtonProgrammatically("view1-button2"); |
|
var button3 = _createButtonProgrammaticallyWithSourceNodeReference("view1-button3"); |
|
|
|
_assertCorrectButton(buttonWidth, buttonHeight, button1); |
|
_assertCorrectButton(buttonWidth, buttonHeight, button2); |
|
_assertCorrectButton(buttonWidth, buttonHeight, button3); |
|
}, |
|
function testInView2(){ |
|
var button1 = _createButtonDeclaratively("view2-button1"); |
|
var button2 = _createButtonProgrammatically("view2-button2"); |
|
var button3 = _createButtonProgrammaticallyWithSourceNodeReference("view2-button3"); |
|
|
|
_showView2(); |
|
|
|
_assertCorrectButton(buttonWidth, buttonHeight, button1); |
|
_assertCorrectButton(buttonWidth, buttonHeight, button2); |
|
_assertCorrectButton(buttonWidth, buttonHeight, button3); |
|
} |
|
]); |
|
runner.run(); |
|
}); |
|
}); |
|
</script> |
|
</head> |
|
<body> |
|
<div id="view1" data-dojo-type="dojox.mobile.View" selected="true"> |
|
<h1>View 1</h1> |
|
<button id="view1-button1" data-dojo-type="dojox.mobile.Button">Button</button> |
|
<div id="view1-button2"></div> |
|
<button id="view1-button3"></button> |
|
</div> |
|
<div id="view2" data-dojo-type="dojox.mobile.View"> |
|
<h1>View 2</h1> |
|
<button id="view2-button1" data-dojo-type="dojox.mobile.Button">Button</button> |
|
<div id="view2-button2"></div> |
|
<button id="view2-button3"></button> |
|
</div> |
|
</body> |
|
</html>
|
|
|