diff options
author | mensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f> | 2008-11-13 09:49:11 +0000 |
---|---|---|
committer | mensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f> | 2008-11-13 09:49:11 +0000 |
commit | e44a7e37b6c7b5961adaffc62b9042b8d442938e (patch) | |
tree | 95b67c356e93163467db2451f2b8cce84ed5d582 /includes/js/dijit/tests/_base | |
parent | a62b9742ee5e28bcec6872d88f50f25b820914f6 (diff) | |
download | semanticscuttle-e44a7e37b6c7b5961adaffc62b9042b8d442938e.tar.gz semanticscuttle-e44a7e37b6c7b5961adaffc62b9042b8d442938e.tar.bz2 |
New feature: basic Ajax suggestion for tags and implementation of Dojo toolkit
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@151 b3834d28-1941-0410-a4f8-b48e95affb8f
Diffstat (limited to 'includes/js/dijit/tests/_base')
-rw-r--r-- | includes/js/dijit/tests/_base/manager.html | 322 | ||||
-rw-r--r-- | includes/js/dijit/tests/_base/manager.js | 9 | ||||
-rw-r--r-- | includes/js/dijit/tests/_base/test_FocusManager.html | 46 | ||||
-rw-r--r-- | includes/js/dijit/tests/_base/test_focusWidget.html | 130 | ||||
-rw-r--r-- | includes/js/dijit/tests/_base/test_placeStrict.html | 400 | ||||
-rw-r--r-- | includes/js/dijit/tests/_base/test_typematic.html | 56 | ||||
-rw-r--r-- | includes/js/dijit/tests/_base/viewport.html | 79 | ||||
-rw-r--r-- | includes/js/dijit/tests/_base/viewport.js | 10 | ||||
-rw-r--r-- | includes/js/dijit/tests/_base/viewportStrict.html | 81 | ||||
-rw-r--r-- | includes/js/dijit/tests/_base/wai.html | 115 | ||||
-rw-r--r-- | includes/js/dijit/tests/_base/wai.js | 9 |
11 files changed, 1257 insertions, 0 deletions
diff --git a/includes/js/dijit/tests/_base/manager.html b/includes/js/dijit/tests/_base/manager.html new file mode 100644 index 0000000..3ca3349 --- /dev/null +++ b/includes/js/dijit/tests/_base/manager.html @@ -0,0 +1,322 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html> +<head> + <title>Dijit manager unit test</title> + <style type="text/css"> + @import "../../../dojo/resources/dojo.css"; + @import "../css/dijitTests.css"; + </style> + <script type="text/javascript" src="../../../dojo/dojo.js" + djConfig="isDebug: true, parseOnLoad: true"></script> + <script type="text/javascript" src="../_testCommon.js"></script> + + <script type="text/javascript"> + dojo.require("doh.runner"); + dojo.require("dijit.dijit"); + + dojo.declare("foo", dijit._Widget, { + name: "", + attr1: 0, + attr2: 0 + }); + + dojo.declare("bar", dijit._Widget, { + name: "", + attr1: 0, + attr2: 0 + }); + + dojo.addOnLoad(function(){ + doh.register("dijit._base.manager", + [ + function forEachTest(t){ + var names=[]; + dijit.registry.forEach(function(widget){ names.push(widget.name); }); + t.is(names.join(" "), "bob is your uncle"); + }, + function filterTest(t){ + var names=[]; + dijit.registry. + filter(function(widget){ return widget.attr1==10; }). + forEach(function(widget){ names.push(widget.name); }); + t.is(names.join(" "), "bob uncle"); + }, + function byId(t){ + t.is(dijit.byId("three").name, "your"); + }, + function byClass(t){ + var names=[]; + dijit.registry. + byClass("bar"). + forEach(function(widget){ names.push(widget.name); }); + t.is(names.join(" "), "your uncle"); + }, + function deleteTest(t){ + var names=[]; + dijit.byId("two").destroy(); + dijit.byId("four").destroy(); + var names=[]; + dijit.registry.forEach(function(widget){ names.push(widget.name); }); + t.is(names.join(" "), "bob your"); + }, + function getEnclosingWidgetTest(t){ + t.is(dijit.getEnclosingWidget(dojo.byId("not-a-widget")), null); + t.is(dijit.getEnclosingWidget(dojo.byId("three")).name, "your"); + t.is(dijit.getEnclosingWidget(dojo.byId("three.one")).name, "your"); + t.is(dijit.getEnclosingWidget(dojo.byId("three.one.one")).name, "your"); + }, + function isTabNavigable(t){ + t.t(dijit.isTabNavigable(dojo.byId("a-with-href"))); + t.f(dijit.isTabNavigable(dojo.byId("a-without-href"))); + t.t(dijit.isTabNavigable(dojo.byId("area"))); + t.t(dijit.isTabNavigable(dojo.byId("button"))); + t.t(dijit.isTabNavigable(dojo.byId("input"))); + t.t(dijit.isTabNavigable(dojo.byId("object"))); + t.t(dijit.isTabNavigable(dojo.byId("select"))); + t.t(dijit.isTabNavigable(dojo.byId("textarea"))); + t.f(dijit.isTabNavigable(dojo.byId("empty"))); + t.t(dijit.isTabNavigable(dojo.byId("zero-tabindex-div"))); + }, + function findTabNullOnEmpty(t){ + t.is(null, dijit.getFirstInTabbingOrder("empty")); + t.is(null, dijit.getLastInTabbingOrder("empty")); + }, + function findTabElements(t){ + t.is(null, dijit.getFirstInTabbingOrder("div-container")); + t.is(null, dijit.getFirstInTabbingOrder("a-without-href-container")); + t.is("a-with-href", dijit.getFirstInTabbingOrder("a-with-href-container").id); + + // in Safari area elements are not in the tab order + // and their display style property is "none"; + // therefore it is expected that this test will fail + if(!dojo.isSafari){ + t.is("area", dijit.getFirstInTabbingOrder("area-map").id); + } + + t.is("button", dijit.getFirstInTabbingOrder("button-container").id); + t.is("input", dijit.getFirstInTabbingOrder("input-container").id); + t.is("object", dijit.getFirstInTabbingOrder("object-container").id); + t.is("select", dijit.getFirstInTabbingOrder("select-container").id); + t.is("textarea", dijit.getFirstInTabbingOrder("textarea-container").id); + t.is(null, dijit.getLastInTabbingOrder("div-container")); + t.is(null, dijit.getLastInTabbingOrder("a-without-href-container")); + t.is("a-with-href", dijit.getLastInTabbingOrder("a-with-href-container").id); + + // in Safari area elements are not in the tab order + // and their display style property is "none"; + // therefore it is expected that this test will fail + if(!dojo.isSafari){ + t.is("area", dijit.getLastInTabbingOrder("area-map").id); + } + + t.is("button", dijit.getLastInTabbingOrder("button-container").id); + t.is("input", dijit.getLastInTabbingOrder("input-container").id); + t.is("object", dijit.getLastInTabbingOrder("object-container").id); + t.is("select", dijit.getLastInTabbingOrder("select-container").id); + t.is("textarea", dijit.getLastInTabbingOrder("textarea-container").id); + }, + function findTabOnElementRatherThanString(t){ + t.is("a-with-href", dijit.getFirstInTabbingOrder(dojo.byId("a-with-href-container")).id); + t.is("a-with-href", dijit.getLastInTabbingOrder(dojo.byId("a-with-href-container")).id); + }, + function findTabSkipDisabled(t){ + t.is("not-disabled-input", dijit.getFirstInTabbingOrder("skip-disabled").id); + t.is("not-disabled-input", dijit.getLastInTabbingOrder("skip-disabled").id); + }, + function findTabZeroTabindex(t){ + t.is("zero-tabindex-div", dijit.getFirstInTabbingOrder("zero-tabindex-div-container").id); + t.is("zero-tabindex-input", dijit.getFirstInTabbingOrder("zero-tabindex-input-container").id); + t.is("zero-tabindex-div", dijit.getLastInTabbingOrder("zero-tabindex-div-container").id); + t.is("zero-tabindex-input", dijit.getLastInTabbingOrder("zero-tabindex-input-container").id); + }, + function findTabPositiveTabindex(t){ + t.is("positive-tabindex-input1a", dijit.getFirstInTabbingOrder("positive-tabindex-mixed-with-no-tabindex").id); + t.is("positive-tabindex-input3a", dijit.getFirstInTabbingOrder("positive-tabindex").id); + t.is("no-tabindex-input2", dijit.getLastInTabbingOrder("positive-tabindex-mixed-with-no-tabindex").id); + t.is("positive-tabindex-input4b", dijit.getLastInTabbingOrder("positive-tabindex").id); + }, + function findTabSkipMinusOneTabindex(t){ + t.is("not-minus-one-input", dijit.getFirstInTabbingOrder("skip-minus-one").id); + t.is("not-minus-one-input", dijit.getLastInTabbingOrder("skip-minus-one").id); + }, + function findTabDescend(t){ + t.is("child-input1", dijit.getFirstInTabbingOrder("descend").id); + t.is("child-input2", dijit.getLastInTabbingOrder("descend").id); + }, + function findTabOuterInner(t){ + t.is("outer1", dijit.getFirstInTabbingOrder("outer-inner-container").id); + t.is("inner2", dijit.getLastInTabbingOrder("outer-inner-container").id); + }, + function skipNotShown(t){ + t.is(null, dijit.getFirstInTabbingOrder("hidden-element-container")); + t.is(null, dijit.getFirstInTabbingOrder("hidden-container-tabindex-zero")); + t.is(null, dijit.getFirstInTabbingOrder("hidden-container-no-tabindex")); + t.is(null, dijit.getFirstInTabbingOrder("container-with-hidden-containers")); + + t.is(null, dijit.getFirstInTabbingOrder("display-none-element-container")); + t.is(null, dijit.getFirstInTabbingOrder("display-none-container-tabindex-zero")); + t.is(null, dijit.getFirstInTabbingOrder("display-none-container-no-tabindex")); + t.is(null, dijit.getFirstInTabbingOrder("container-with-display-none-containers")); + } + ] + ); + doh.run(); + }); + + </script> +</head> +<body> + <h1>Dijit Manager Unit Test</h1> + <div dojoType="foo" id="one" name="bob" attr1="10" attr2="10"></div> + <div dojoType="foo" id="two" name="is" attr1="5" attr2="10"></div> + <div dojoType="bar" id="three" name="your" attr1="5" attr2="5"> + <div id="three.one"> + <div id="three.one.one"></div> + </div> + </div> + <div dojoType="bar" id="four" name="uncle" attr1="10" attr2="5"></div> + <div id="not-a-widget"></div> + + <div id="empty"></div> + + <div id="div-container"> + <div id="div"></div> + </div> + <div id="a-without-href-container"> + <a id="a-without-href" name="named-link-anchor"></a> + </div> + <div id="a-with-href-container"> + <a id="a-with-href" href="#named-link-anchor"></a> + </div> + + <div><img src="../images/flatScreen.gif" alt="picture of a flat-screen monitor" usemap="#area-map"></div> + <map id="area-map" name="area-map"> + <area id="area" href="#" alt="example area" shape="rect" coords="0,0,8,8"> + </map> + + <div id="button-container"> + <button id="button"></button> + </div> + <div id="input-container"> + <input id="input"> + </div> + <div id="object-container"> + <object id="object"></object> + </div> + <div id="select-container"> + <select id="select"></select> + </div> + <div id="textarea-container"> + <textarea id="textarea"></textarea> + </div> + + <div id="skip-disabled"> + <input id="disabled-input1" disabled="disabled"> + <input id="not-disabled-input"> + <input id="disabled-input2" disabled="disabled"> + </div> + + <div id="zero-tabindex-div-container"> + <div id="zero-tabindex-div" tabindex="0"></div> + </div> + + <div id="zero-tabindex-input-container"> + <input id="zero-tabindex-input" tabindex="0"> + </div> + + <div id="positive-tabindex-mixed-with-no-tabindex"> + <input id="no-tabindex-input1"> + <input id="no-tabindex-input2"> + <input id="positive-tabindex-input1a" tabindex="1"> + <input id="positive-tabindex-input1b" tabindex="1"> + <input id="positive-tabindex-input2a" tabindex="2"> + <input id="positive-tabindex-input2b" tabindex="2"> + </div> + + <div id="positive-tabindex"> + <input id="positive-tabindex-input3a" tabindex="3"> + <input id="positive-tabindex-input3b" tabindex="3"> + <input id="positive-tabindex-input4a" tabindex="4"> + <input id="positive-tabindex-input4b" tabindex="4"> + </div> + + <div id="skip-minus-one"> + <input id="minus-one-input1" tabindex="-1"> + <input id="not-minus-one-input"> + <input id="minus-one-input2" tabindex="-1"> + </div> + + <div id="descend"> + <input disabled="disabled"> + <div> + <input disabled="disabled"> + <div> + <input disabled="disabled"> + </div> + </div> + <div> + <input disabled="disabled"> + <div> + <input disabled="disabled"> + </div> + <div> + <input id="child-input1"> + </div> + <div> + <input id="child-input2"> + </div> + </div> + <div> + <div> + <input disabled="disabled"> + </div> + <input disabled="disabled"> + </div> + <input disabled="disabled"> + </div> + + <div id="outer-inner-container"> + <div id="outer1" tabindex="0"> + <div id="inner1" tabindex="0"></div> + </div> + <div id="outer2" tabindex="0"> + <div id="inner2" tabindex="0"></div> + </div> + </div> + + <div id="hidden-element-container"> + <div id="hidden-element" tabindex="0" style="visibility: hidden;"> + </div> + </div> + + <div id="container-with-hidden-containers"> + <div id="hidden-container-tabindex-zero" tabindex="0" style="visibility: hidden;"> + <div id="inside-hidden-container-tabindex-zero" tabindex="0"> + </div> + </div> + + <div id="hidden-container-no-tabindex" style="visibility: hidden;"> + <div id="inside-hidden-container-no-tabindex" tabindex="0"> + </div> + </div> + </div> + + <div id="display-none-element-container"> + <div id="display-none-element" tabindex="0" style="display: none;"> + </div> + </div> + + <div id="container-with-display-none-containers"> + <div id="display-none-container-tabindex-zero" tabindex="0" style="display: none;"> + <div id="inside-display-none-container-tabindex-zero" tabindex="0"> + </div> + </div> + + <div id="display-none-container-no-tabindex" style="display: none;"> + <div id="inside-display-none-container-no-tabindex" tabindex="0"> + </div> + </div> + </div> +</body> +</html> diff --git a/includes/js/dijit/tests/_base/manager.js b/includes/js/dijit/tests/_base/manager.js new file mode 100644 index 0000000..667a763 --- /dev/null +++ b/includes/js/dijit/tests/_base/manager.js @@ -0,0 +1,9 @@ +if(!dojo._hasResource["dijit.tests._base.manager"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.tests._base.manager"] = true; +dojo.provide("dijit.tests._base.manager"); + +if(dojo.isBrowser){ + doh.registerUrl("dijit.tests._base.manager", dojo.moduleUrl("dijit", "tests/_base/manager.html")); +} + +} diff --git a/includes/js/dijit/tests/_base/test_FocusManager.html b/includes/js/dijit/tests/_base/test_FocusManager.html new file mode 100644 index 0000000..1d6a707 --- /dev/null +++ b/includes/js/dijit/tests/_base/test_FocusManager.html @@ -0,0 +1,46 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html> +<head> + <title>dijit.focus Test</title> + <style type="text/css"> + @import "../../../dojo/resources/dojo.css"; + @import "../../themes/tundra/tundra.css"; + @import "../css/dijitTests.css"; + </style> + + <script type="text/javascript" src="../../../dojo/dojo.js" + djConfig="isDebug: true"></script> + <script type="text/javascript"> + dojo.require("dijit._base.focus"); + var savedFocus; + dojo.addOnLoad(function(){ + fakeWidget = { domNode: dojo.byId("save") }; + dojo.subscribe("focusNode", function(node){ console.log("focused on " + (node?(node.id||node.tagName):"nothing"));}); + }); + function save(){ + savedFocus = dijit.getFocus(fakeWidget); + console.debug("saved focus: ", savedFocus); + + } + function restore(){ + dijit.focus(savedFocus); + } + </script> +</head> +<body style="background-color: #fff; color: black; padding: 0; margin: 0" class="tundra"> + + <h3>Focus/Selection Save/Restore Test</h3> + <p>This is for testing whether focus and selection are restored by the focus manager</p> + <form style="border: 2px solid blue;"> + <input id=input1 value=tom><br> + <input id=input2 value=jones><br> + <textarea id=textarea>hello there!</textarea><br> + <button id=button>push me</button> + </form> + + <button id="save" onclick="save();" tabIndex="1">Save focus/selection state</button> + <button onclick="restore();">Restore focus/selection state</button> + +</body> +</html> diff --git a/includes/js/dijit/tests/_base/test_focusWidget.html b/includes/js/dijit/tests/_base/test_focusWidget.html new file mode 100644 index 0000000..edc01c1 --- /dev/null +++ b/includes/js/dijit/tests/_base/test_focusWidget.html @@ -0,0 +1,130 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html> +<head> + <title>dijit.focus Test</title> + <style type="text/css"> + @import "../../../dojo/resources/dojo.css"; + @import "../../themes/tundra/tundra.css"; + @import "../css/dijitTests.css"; + </style> + + <script type="text/javascript" src="../../../dojo/dojo.js" + djConfig="isDebug: true, parseOnLoad: true"></script> + <script type="text/javascript"> + dojo.require("dijit.form.DateTextBox"); + dojo.require("dijit.form.ComboBox"); + dojo.require("dijit.form.NumberSpinner"); + dojo.require("dijit.form.Button"); + dojo.require("dijit.Menu"); + dojo.require("dijit.layout.ContentPane"); + + var queue=[]; + var animation; + function animateBorderColor(widget, color, startWidth, endWidth){ + if(animation){ + queue.push(arguments); + return; + } + with(widget.domNode.style){ + borderStyle="solid"; + outlineStyle="solid"; + + } + animation = dojo.animateProperty({ + node: widget.domNode, + duration: 400, + properties: { + // depending on browser and node type, sometimes border or outline is ineffective. + // doing both seems to work in all cases though (for at least one of them) + borderColor: { end: color }, + borderWidth: { start: startWidth, end: endWidth }, + outlineColor: { end: color }, + outlineWidth: { start: startWidth, end: endWidth } + }, + onEnd: function(){ + animation=null; + if(queue.length){ + animateBorderColor.apply(null, queue.shift()); + } + } + }); + animation.play(); + } + + dojo.addOnLoad(function(){ + dojo.subscribe("widgetFocus", function(widget){ + console.log("focused on widget " + (widget?widget:"nothing")); + animateBorderColor(widget, "#ff0000", 2, 5); + }); + dojo.subscribe("widgetBlur", function(widget){ + console.log("blurred widget " + (widget?widget:"nothing")); + animateBorderColor(widget, "#0000ff", 5, 2); + }); + dojo.subscribe("focusNode", function(node){ console.log("focused on node " + (node?(node.id||node.tagName):"nothing"));}); + }); + </script> + <style> + div, fieldset, form, input { + padding: 10px; + margin: 10px; + border: 2px solid blue; + } + </style> +</head> +<body style="background-color: #fff; color: black; padding: 0; margin: 0" class="tundra"> + + <h3>Widget Focus Test</h3> + <p> + This is for testing code to detect onBlur and onFocus on a widget level.<br> + Focused widgets' borders will turn red.<br> + Also, heck the console log for focus and blur events on widgets. + </p> + + <label for="fieldset1">a form ContentPane widget:</label><br> + <form dojoType="dijit.layout.ContentPane"> + <label for="first">simple input: </label><input id=first><br> + + <label for="fieldset1">a fieldset ContentPane widget:</label><br> + <fieldset id=fieldset1 dojoType="dijit.layout.ContentPane"> + <label for="select">a ComboBox widget:</label> + <select id=select dojoType="dijit.form.ComboBox"> + <option>this</option> + <option>is</option> + <option>a</option> + <option>list</option> + </select> + <label for="plain">a plain input:</label> + <input id=plain value=plain> + </fieldset> + <br> + <label for="fieldset1">another fieldset ContentPane:</label><br> + <fieldset id=fieldset2 dojoType="dijit.layout.ContentPane"> + <label for="date">a DateTextBox widget:</label> + <input id=date dojoType="dijit.form.DateTextBox"><br> + + <label for="textarea">a plain textarea:</label><br> + <textarea id=textarea>hello there!</textarea><br> + + <label for="spinner">a Spinner widget:</label> + <input id=spinner dojoType="dijit.form.NumberSpinner" value=100><br> + + <label for="button">a Combobutton widget:</label> + <div id=button dojoType="dijit.form.ComboButton" tabIndex=0> + <span>push me</span> + <div id=menu dojoType="dijit.Menu"> + <div id=mi1 dojoType="dijit.MenuItem">menu item 1</div> + <div id=mi2 dojoType="dijit.MenuItem">menu item 2</div> + <div id=popupMenuItem dojoType="dijit.PopupMenuItem"> + <span>submenu</span> + <div id=submenu dojoType="dijit.Menu"> + <div id=smi1 dojoType="dijit.MenuItem">submenu item 1</div> + <div id=smi2 dojoType="dijit.MenuItem">submenu item 2</div> + </div> + </div> + </div> + </div> + </fieldset> + </form> +</body> +</html> diff --git a/includes/js/dijit/tests/_base/test_placeStrict.html b/includes/js/dijit/tests/_base/test_placeStrict.html new file mode 100644 index 0000000..c40325c --- /dev/null +++ b/includes/js/dijit/tests/_base/test_placeStrict.html @@ -0,0 +1,400 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> + <head> + <title>dijit.place tests</title> + <script type="text/javascript" src="../../../dojo/dojo.js" + djConfig="isDebug: true, extraLocale: ['de-de', 'en-us']"></script> + <script type="text/javascript"> + dojo.require("dijit.dijit"); + </script> + <script> + dojo.addOnLoad(function(){ + var vp = dijit.getViewport(); + alert("viewport w="+vp.w + ", h=" + vp.h); + }); + </script> + <style type="text/css"> + @import "../../../dojo/resources/dojo.css"; + @import "../../themes/tundra/tundra.css"; + @import "../css/dijitTests.css"; + + body { + padding: 1em; + } + .formQuestion { + background-color:#d0e3f5; + padding:0.3em; + font-weight:900; + font-family:Verdana, Arial, sans-serif; + font-size:0.8em; + color:#5a5a5a; + } + .formAnswer { + background-color:#f5eede; + padding:0.3em; + margin-bottom:1em; + } + .pageSubContentTitle { + color:#8e8e8e; + font-size:1em; + font-family:Verdana, Arial, sans-serif; + margin-bottom:0.75em; + } + .small { + width: 2.5em; + } + .medium { + width: 10em; + } + .long { + width: 20em; + } + + .dojoValidationTextBoxMessage { + display: inline; + margin-left: 1em; + font-weight: bold; + font-style: italic; + font-family: Arial, Verdana, sans-serif; + color: #f66; + font-size: 0.9em; + } + + .noticeMessage { + font-weight: normal; + font-family:Arial, Verdana, sans-serif; + color:#663; + font-size:0.9em; + } + </style> + </head> + + <body class=tundra> + <h2 class="pageSubContentTitle">Test dijit.place</h2> + <p>Currently this just tests getViewport(). Change the size of your browser window and then reload, + and see if it reports the browser window size correctly.<br> + <p>All the text below is just filler text...<br> + <!-- to test form submission, you'll need to create an action handler similar to + http://www.utexas.edu/teamweb/cgi-bin/generic.cgi --> + <form id="form1" action="" name="example" method="post"> + + <div class="formQuestion"> + <span class="emphasize"><label for="q01">First Name: </label></span> + <span class="noticeMessage"> TextBox class, <b>tabIndex=2</b>, Attributes: {trim: true, ucFirst: true, class: 'medium'}, First letter of each word is upper case.</span> + </div> + <div class="formAnswer"> + <input id="q01" type="text" name="firstname" value="testing testing" class="medium" tabIndex=2 + dojoType="dijit.form.TextBox" + trim="true" + ucfirst="true" /> + </div> + + <div class="formQuestion"> + <span class="emphasize"><label for="q02">Last Name: </label></span> + <span class="noticeMessage"> TextBox class, Attributes: {trim: true, uppercase: true, class: 'medium'}, all letters converted to upper case. </span> + </div> + <div class="formAnswer"> + <input id="q02" type="text" name="lastname" value="testing testing" class="medium" + dojoType="dijit.form.TextBox" + trim="true" + uppercase="true" /> + </div> + + <div class="formQuestion"> + <span class="emphasize"><label for="q03">Age: </label></span> + <span class="noticeMessage"> TextBox class, <b>tabIndex=1</b>, Attributes: {trim: true, digit: true, class: 'small'}, all but digits extracted.</span> + </div> + <div class="formAnswer"> + <input id="q03" type="text" name="age" value="38" class="small" tabIndex=1 + dojoType="dijit.form.NumberTextBox" + promptMessage="(optional) Enter an age between 0 and 120" + constraints={places:0,min:0,max:120} + onChange="console.debug('onChange fired for widget id = ' + this.id + ' with value = ' + arguments[0]);" + digit="true" + trim="true" + /> + </div> + + <div class="formQuestion"> + <span class="emphasize"><label for="q04">Occupation: </label></span> + <span class="noticeMessage">ValidationTextBox class, + Attributes: {lowercase: true, required: true}. Displays a prompt message if field is missing. </span> + </div> + <div class="formAnswer"> + <input id="q04" type="text" name="occupation" class="medium" + dojoType="dijit.form.ValidationTextBox" + lowercase="true" + required="true" + promptMessage="Enter an occupation" /> + </div> + + <div class="formQuestion"> + <span class="emphasize"><label for="q05">Elevation: </label></span> + <span class="noticeMessage">IntegerTextBox class, + Attributes: {required: true, min:-20000, max:+20000 }, Enter feet above sea level with a sign.</span> + </div> + <div class="formAnswer"> + <input id="q05" class="medium"/> + </div> + + <div class="formQuestion"> + <span class="emphasize"><label for="q08">Annual Income: </label></span> + <span class="noticeMessage">CurrencyTextBox class, + Attributes: {fractional: true}. Enter whole and cents. Currency symbol is optional.</span> + </div> + <div class="formAnswer"> + <input id="q08" type="text" name="income1" class="medium" value="54775.53" + dojoType="dijit.form.CurrencyTextBox" + required="true" + currency="USD" + invalidMessage="Invalid amount. Include dollar sign, commas, and cents. Example: $12,000.00" />USD + </div> + + <div class="formAnswer"> + <input id="q08eur" type="text" name="income2" class="medium" value="54775.53" + dojoType="dijit.form.CurrencyTextBox" + required="true" + currency="EUR" + invalidMessage="Invalid amount. Include euro sign, commas, and cents. Example: €12,000.00" />EUR + </div> +<!-- + <div class="formQuestion"> + <span class="emphasize"><label for="q08a">Annual Income: </label></span> + <span class="noticeMessage">Old regexp currency textbox, + Attributes: {fractional: true}. Enter dollars and cents.</span> + </div> + <div class="formAnswer"> + <input id="q08a" type="text" name="income3" class="medium" value="$54,775.53" + dojoType="dijit.form.ValidationTextBox" + regExpGen="dojo.regexp.currency" + trim="true" + required="true" + constraints={fractional:true} + invalidMessage="Invalid amount. Include dollar sign, commas, and cents. Example: $12,000.00" /> + </div> + + <div class="formQuestion"> + <span class="emphasize"><label for="q09">IPv4 Address: </label></span> + <span class="noticeMessage">IpAddressTextBox class, + Attributes: {allowIPv6: false, allowHybrid: false}. Also Dotted Hex works, 0x18.0x11.0x9b.0x28</span> + </div> + <div class="formAnswer"> + <input id="q09" type="text" name="ipv4" class="medium" value="24.17.155.40" + dojoType="dijit.form.ValidationTextBox" + regExpGen="dojo.regexp.ipAddress" + trim="true" + required="true" + constraints={allowIPv6:false,allowHybrid:false} + invalidMessage="Invalid IPv4 address." /> + </div> + + <div class="formQuestion"> + <span class="emphasize"><label for="q10"> IPv6 Address: </label></span> + <span class="noticeMessage">IpAddressTextBox class, + Attributes: {allowDottedDecimal: false, allowDottedHex: false}. + Also hybrid works, x:x:x:x:x:x:d.d.d.d</span> + </div> + <div class="formAnswer"> + <input id="q10" type="text" name="ipv6" class="long" value="0000:0000:0000:0000:0000:0000:0000:0000" + dojoType="dijit.form.ValidationTextBox" + regExpGen="dojo.regexp.ipAddress" + trim="true" + uppercase = "true" + required="true" + constraints={allowDottedDecimal:false, allowDottedHex:false, allowDottedOctal:false} + invalidMessage="Invalid IPv6 address, please enter eight groups of four hexadecimal digits. x:x:x:x:x:x:x:x" /> + </div> + + <div class="formQuestion"> + <span class="emphasize"><label for="q11"> URL: </label></span> + <span class="noticeMessage">UrlTextBox class, + Attributes: {required: true, trim: true, scheme: true}. </span> + </div> + <div class="formAnswer"> + <input id="q11" type="text" name="url" class="long" value="http://www.xyz.com/a/b/c?x=2#p3" + dojoType="dijit.form.ValidationTextBox" + regExpGen="dojo.regexp.url" + trim="true" + required="true" + constraints={scheme:true} + invalidMessage="Invalid URL. Be sure to include the scheme, http://..." /> + </div> + + <div class="formQuestion"> + <span class="emphasize"><label for="q12"> Email Address </label></span> + <span class="noticeMessage">EmailTextBox class, + Attributes: {required: true, trim: true}. </span> + </div> + <div class="formAnswer"> + <input id="q12" type="text" name="email" class="long" value="fred&barney@stonehenge.com" + dojoType="dijit.form.ValidationTextBox" + regExpGen="dojo.regexp.emailAddress" + trim="true" + required="true" + invalidMessage="Invalid Email Address." /> + </div> + + <div class="formQuestion"> + <span class="emphasize"><label for="q13"> Email Address List </label></span> + <span class="noticeMessage">EmailListTextBox class, + Attributes: {required: true, trim: true}. </span> + </div> + <div class="formAnswer"> + <input id="q13" type="text" name="email" class="long" value="a@xyz.com; b@xyz.com; c@xyz.com; " + dojoType="dijit.form.ValidationTextBox" + regExpGen="dojo.regexp.emailAddressList" + trim="true" + required="true" + invalidMessage="Invalid Email Address List." /> + </div> +--> + + <div class="formQuestion"> + <span class="emphasize"><label for="q14"> Date (American format) </label></span> + <span class="noticeMessage">DateTextBox class, + Attributes: {locale: "en-us", required: true}. Works for leap years</span> + </div> + <div class="formAnswer"> + <input id="q14" type="text" name="date1" class="medium" value="2005-12-30" + dojoType="dijit.form.DateTextBox" + constraints={locale:'en-us'} + required="true" + promptMessage="mm/dd/yyyy" + invalidMessage="Invalid date. Use mm/dd/yyyy format." /> + </div> + + <div class="formQuestion"> + <span class="emphasize"><label for="q15"> Date (German format) </label></span> + <span class="noticeMessage">DateTextBox class, + Attributes: {locale: "de-de", min:2006-01-01, max:2006-12-31}. Works for leap years</span> + </div> + <div class="formAnswer"> + <input id="q15" class="medium"/> + </div> + + <div class="formQuestion"> + <span class="emphasize"><label for="q16"> 12 Hour Time </label></span> + <span class="noticeMessage">TimeTextBox class, + Attributes: {formatLength: "medium", required: true, trim: true}</span> + </div> + <div class="formAnswer"> + <input id="q16" type="text" name="time1" class="medium" value="5:45:00 pm" + dojoType="dijit.form.ValidationTextBox" + validator="dojo.date.local.parse" + constraints={formatLength:'medium',selector:'time'} + trim="true" + required="true" + invalidMessage="Invalid time." /> + </div> + + <div class="formQuestion"> + <span class="emphasize"><label for="q17"> 24 Hour Time</label></span> + <span class="noticeMessage">TimeTextBox class, + Attributes: {displayFormat:"HH:mm:ss", required: true, trim: true}</span> + </div> + <div class="formAnswer"> + <input id="q17" type="text" name="time2" class="medium" value="17:45:00" + dojoType="dijit.form.ValidationTextBox" + validator="dojo.date.local.parse" + constraints={formatLength:'short',selector:'time',timePattern:'HH:mm:ss'} + trim="true" + required="true" + invalidMessage="Invalid time. Use HH:mm:ss where HH is 00 - 23 hours." /> + </div> + +<!-- + <div class="formQuestion"> + <span class="emphasize"><label for="q18"> US State 2 letter abbr. </label></span> + <span class="noticeMessage">UsStateTextBox class, + Attributes: {required: true, trim: true, uppercase: true}</span> + </div> + <div class="formAnswer"> + <input id="q18" type="text" name="state" class="small" value="CA" + dojoType="dijit.form.ValidationTextBox" + regExpGen="dojo.regexp.us.state" + constraints={allowTerritories:false} + trim="true" + uppercase="true" + required="true" + invalidMessage="Invalid US state abbr." /> + </div> + + <div class="formQuestion"> + <span class="emphasize"><label for="q19"> US Zip Code </label></span> + <span class="noticeMessage">UsZipTextBox class, + Attributes: {required: true, trim: true} Five digit Zip code or 5 + 4.</span> + </div> + <div class="formAnswer"> + <input id="q19" type="text" name="zip" class="medium" value="98225-1649" + dojoType="dijit.form.ValidationTextBox" + validator="dojo.validate.us.isZipCode" + trim="true" + required="true" + invalidMessage="Invalid US Zip Code." /> + </div> + + <div class="formQuestion"> + <span class="emphasize"><label for="q20"> US Social Security Number </label></span> + <span class="noticeMessage">UsSocialSecurityNumberTextBox class, + Attributes: {required: true, trim: true} </span> + </div> + <div class="formAnswer"> + <input id="q20" type="text" name="ssn" class="medium" value="123-45-6789" + dojoType="dijit.form.ValidationTextBox" + validator="dojo.validate.us.isSocialSecurityNumber" + trim="true" + required="true" + invalidMessage="Invalid US Social Security Number." /> + </div> + + <div class="formQuestion"> + <span class="emphasize"><label for="q21"> 10-digit US Phone Number </label></span> + <span class="noticeMessage">UsPhoneNumberTextBox class, + Attributes: {required: true, trim: true} </span> + </div> + <div class="formAnswer"> + <input id="q21" type="text" name="phone" class="medium" value="(123) 456-7890" + dojoType="dijit.form.ValidationTextBox" + validator="dojo.validate.us.isPhoneNumber" + trim="true" + required="true" + invalidMessage="Invalid US Phone Number." /> + </div> + --> + <div class="formQuestion"> + <span class="emphasize"><label for="q22"> Regular Expression </label></span> + <span class="noticeMessage">RegexpTextBox class, + Attributes: {required: true} </span> + </div> + <div class="formAnswer"> + <input id="q22" type="text" name="phone" class="medium" value="someTestString" + dojoType="dijit.form.ValidationTextBox" + regExp="[\w]+" + required="true" + invalidMessage="Invalid Non-Space Text." /> + </div> + + <div class="formQuestion"> + <span class="emphasize"><label for="q23"> Password </label></span> + <span class="noticeMessage">(just a test that type attribute is obeyed) </span> + </div> + <div class="formAnswer"> + <input id="q23" type="password" name="password" class="medium" + dojoType="dijit.form.TextBox" /> + </div> + + <div class="formQuestion"> + <span class="emphasize"><label for="ticket1651">Trac ticket 1651: </label></span> + <span class="noticeMessage">value: null should show up as empty</span> + </div> + <div class="formAnswer"> + <input id="ticket1651" class="medium" value="not null"/> + </div> + + <button name="button" onclick="displayData(); return false;">view data</button> + <input type="submit" name="submit" /> + </form> + </body> +</html> diff --git a/includes/js/dijit/tests/_base/test_typematic.html b/includes/js/dijit/tests/_base/test_typematic.html new file mode 100644 index 0000000..4a85027 --- /dev/null +++ b/includes/js/dijit/tests/_base/test_typematic.html @@ -0,0 +1,56 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html> +<head> + <title>Typematic Test</title> + <style type="text/css"> + @import "../../../dojo/resources/dojo.css"; + @import "../../themes/tundra/tundra.css"; + @import "../css/dijitTests.css"; + </style> + + <script type="text/javascript" src="../../../dojo/dojo.js" + djConfig="isDebug: true, debugAtAllCosts: true"></script> + <script type="text/javascript"> + dojo.require("dijit._base.typematic"); + + var lastCount = 0; + function typematicCallBack(count, node, evt){ + var inputNode = dojo.byId('typematicInput'); + if (node == inputNode){ + key = "a"; + }else{ + key = "b"; + } + if(-1 == count){ + console.debug((lastCount+1) + ' ' + key + ' events'); + }else{ + lastCount = count; + inputNode.value += key; + } + inputNode.focus(); + } + dojo.addOnLoad(function(){ + var keyNode = dojo.byId('typematicInput'); + var mouseNode = dojo.byId('typematicButton'); + dijit.typematic.addKeyListener(keyNode, + { + keyCode:dojo.keys.F10, + ctrlKey:true + }, + this, typematicCallBack, 200, 200); + dijit.typematic.addMouseListener(mouseNode, + this, typematicCallBack, 0.9, 200); + keyNode.focus(); // make it easier to type + }); + </script> +</head> +<body class="tundra"> + + <h2>Dijit typematic tests</h2> + Press and hold the <b>ctrl+F10</b> keys to see a's typed (constant rate) in the input field,<br> + or left-mouse click the button and hold down to see b's typed (increasing rate) in the input field.<br> + <input id="typematicInput" size="500"><button id="typematicButton">to B or not to B</button> + +</body> +</html> diff --git a/includes/js/dijit/tests/_base/viewport.html b/includes/js/dijit/tests/_base/viewport.html new file mode 100644 index 0000000..2b8454a --- /dev/null +++ b/includes/js/dijit/tests/_base/viewport.html @@ -0,0 +1,79 @@ +<html> +<head> + <title>dijit.getViewport() test</title> + <style type="text/css"> + @import "../../../dojo/resources/dojo.css"; + @import "../css/dijitTests.css"; + html, body { margin: 0px; padding: 0px; } + </style> + <script type="text/javascript" src="../../../dojo/dojo.js" + djConfig="isDebug: false, parseOnLoad: false"></script> + <script type="text/javascript" src="../_testCommon.js"></script> + + <script type="text/javascript"> + dojo.require("doh.runner"); + dojo.require("dijit.dijit"); + + function compute(){ + var d = dojo.marginBox(dojo.byId("documentBorder")), + v = dijit.getViewport(); + dojo.byId("results").innerHTML += + "Document is " + d.w + "px x " + d.h + "px" + + ", viewport is " + v.w + "px x " + v.h + "px" + + ", with scroll offset of (" + v.l + ", " + v.t + ")<br>"; + } + + function addText(){ + dojo.byId("results").innerHTML += "Adding text...<br><br>"; + var text=""; + for(var i=0;i<100;i++){ + text += "<span style='white-space: nowrap'>"; + for(var j=0;j<3;j++){ text += "Now is the time for all good men to come to the aid of their country."; } + text += "</span><br>"; + } + dojo.byId("documentBorder").innerHTML += text; + } + + dojo.addOnLoad(function(){ + doh.register("dijit._base.manager", + [ + function initial(t){ + console.log("calling compute"); + compute(); + console.log("called compute"); + var d = dojo.marginBox(dojo.byId("documentBorder")), + v = dijit.getViewport(); + doh.t(v.h > d.h); + }, + function expand(t){ + var v = dijit.getViewport(); + addText(); + compute(); + var v2 = dijit.getViewport(); + doh.t(v2.h <= v.h); + doh.t(v2.h+20 >= v.h); + } + ] + ); + doh.run(); + }); + + </script> +</head> +<body> + <div id="documentBorder" style="border: solid red 2px;"> + <h1>dijit.getViewport() test</h1> + <div style="padding: 10px; border: solid blue 1px;">padding div</div> + <button onclick="addText(); compute();">add text and compute size</button> + <button onclick="compute();">recompute size</button> + <ol> + <li>check results div below to see that before adding text, document is smaller than viewport + <li>after adding text, document should be bigger than viewport,and check that viewport size hasn't changed, + except maybe being a little bit smaller (about 15px) because of the size of the scrollbars + <li>resize browser window and click the "recompute size" button; reported viewport size should change + <li>scroll the window and click "recompute size" to see that the scroll position is taken into effect + </ol> + <div id=results style="border: 5px solid blue;"> + </div> +</body> +</html> diff --git a/includes/js/dijit/tests/_base/viewport.js b/includes/js/dijit/tests/_base/viewport.js new file mode 100644 index 0000000..8cee9c4 --- /dev/null +++ b/includes/js/dijit/tests/_base/viewport.js @@ -0,0 +1,10 @@ +if(!dojo._hasResource["dijit.tests._base.viewport"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.tests._base.viewport"] = true; +dojo.provide("dijit.tests._base.viewport"); + +if(dojo.isBrowser){ + doh.registerUrl("dijit.tests._base.viewport", dojo.moduleUrl("dijit", "tests/_base/viewport.html")); + doh.registerUrl("dijit.tests._base.viewportStrict", dojo.moduleUrl("dijit", "tests/_base/viewportStrict.html")); +} + +} diff --git a/includes/js/dijit/tests/_base/viewportStrict.html b/includes/js/dijit/tests/_base/viewportStrict.html new file mode 100644 index 0000000..812c796 --- /dev/null +++ b/includes/js/dijit/tests/_base/viewportStrict.html @@ -0,0 +1,81 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html> +<head> + <title>dijit.getViewport() test</title> + <style type="text/css"> + @import "../../../dojo/resources/dojo.css"; + @import "../css/dijitTests.css"; + html, body { margin: 0px; padding: 0px; } + </style> + <script type="text/javascript" src="../../../dojo/dojo.js" + djConfig="isDebug: false, parseOnLoad: false"></script> + <script type="text/javascript" src="../_testCommon.js"></script> + + <script type="text/javascript"> + dojo.require("doh.runner"); + dojo.require("dijit.dijit"); + + function compute(){ + var d = dojo.marginBox(dojo.byId("documentBorder")), + v = dijit.getViewport(); + dojo.byId("results").innerHTML += + "Document is " + d.w + "px x " + d.h + "px" + + ", viewport is " + v.w + "px x " + v.h + "px" + + ", with scroll offset of (" + v.l + ", " + v.t + ")<br>"; + } + + function addText(){ + dojo.byId("results").innerHTML += "Adding text...<br><br>"; + var text=""; + for(var i=0;i<100;i++){ + text += "<span style='white-space: nowrap'>"; + for(var j=0;j<3;j++){ text += "Now is the time for all good men to come to the aid of their country."; } + text += "</span><br>"; + } + dojo.byId("documentBorder").innerHTML += text; + } + + dojo.addOnLoad(function(){ + doh.register("dijit._base.manager", + [ + function initial(t){ + console.log("calling compute"); + compute(); + console.log("called compute"); + var d = dojo.marginBox(dojo.byId("documentBorder")), + v = dijit.getViewport(); + doh.t(v.h > d.h); + }, + function expand(t){ + var v = dijit.getViewport(); + addText(); + compute(); + var v2 = dijit.getViewport(); + doh.t(v2.h <= v.h); + doh.t(v2.h+20 >= v.h); + } + ] + ); + doh.run(); + }); + + </script> +</head> +<body> + <div id="documentBorder" style="border: solid red 2px;"> + <h1>dijit.getViewport() test</h1> + <div style="padding: 10px; border: solid blue 1px;">padding div</div> + <button onclick="addText(); compute();">add text and compute size</button> + <button onclick="compute();">recompute size</button> + <ol> + <li>check results div below to see that before adding text, document is smaller than viewport + <li>after adding text, document should be bigger than viewport,and check that viewport size hasn't changed, + except maybe being a little bit smaller (about 15px) because of the size of the scrollbars + <li>resize browser window and click the "recompute size" button; reported viewport size should change + <li>scroll the window and click "recompute size" to see that the scroll position is taken into effect + </ol> + <div id=results style="border: 5px solid blue;"> + </div> +</body> +</html> diff --git a/includes/js/dijit/tests/_base/wai.html b/includes/js/dijit/tests/_base/wai.html new file mode 100644 index 0000000..50ab8ca --- /dev/null +++ b/includes/js/dijit/tests/_base/wai.html @@ -0,0 +1,115 @@ +<html>
+<head>
+ <title>Dijit wai unit test</title>
+ <script type="text/javascript" src="../../../dojo/dojo.js"
+ djConfig="isDebug: true"></script>
+ <script type="text/javascript">
+ dojo.require("doh.runner");
+ dojo.require("dijit.dijit");
+
+ dojo.addOnLoad(function(){
+ doh.register("dijit.tests._base.wai",
+ [
+ function getWaiRoleOnElementWithNoRole(){
+ var elem = dojo.byId("no-role-or-states");
+ doh.assertFalse(dijit.hasWaiRole(elem));
+ doh.assertEqual("", dijit.getWaiRole(elem));
+ },
+
+ function getEmptyWairoleRole(){
+ var elem = dojo.byId("empty-wairole");
+ doh.assertTrue(dijit.hasWaiRole(elem));
+ doh.assertEqual("", dijit.getWaiRole(elem));
+ },
+
+ function getWairoleRole(){
+ var elem = dojo.byId("wairole");
+ doh.assertTrue(dijit.hasWaiRole(elem));
+ doh.assertEqual("menuitem", dijit.getWaiRole(elem));
+ },
+
+ function getUnprefixedRole(){
+ var elem = dojo.byId("unprefixed-role");
+ doh.assertTrue(dijit.hasWaiRole(elem));
+ doh.assertEqual("menuitem", dijit.getWaiRole(elem));
+ },
+
+ function setWaiRole(){
+ var div = document.createElement("div");
+ dijit.setWaiRole(div, "menuitem");
+ if(dojo.isFF && dojo.isFF < 3){
+ doh.assertEqual("wairole:menuitem",
+ div.getAttribute("role"));
+ }else{
+ doh.assertEqual("menuitem",
+ div.getAttribute("role"));
+ }
+ },
+
+ function removeWaiRole(){
+ var div = document.createElement("div");
+ dijit.setWaiRole(div, "menuitem");
+ dijit.removeWaiRole(div);
+ if(div.hasAttribute){
+ doh.assertFalse(div.hasAttribute("role"));
+ }else{
+ doh.assertTrue(div.getAttribute("role") == null
+ || div.getAttribute("role") == "");
+ }
+ },
+
+ function getWaiStateOnElementWithNoState(){
+ var elem = dojo.byId("no-role-or-states");
+ doh.assertFalse(dijit.hasWaiState(elem, "checked"));
+ doh.assertEqual("", dijit.getWaiState(elem, "checked"));
+ },
+
+ function getWaiState(){
+ if(dojo.isFF && dojo.isFF < 3){
+ var div = document.createElement("div");
+ div.setAttributeNS("http://www.w3.org/2005/07/aaa",
+ "aaa:checked", "true");
+ doh.assertTrue(dijit.hasWaiState(div, "checked"));
+ doh.assertEqual("true",
+ dijit.getWaiState(div, "checked"));
+ }else{
+ var elem = dojo.byId("checked");
+ doh.assertTrue(dijit.hasWaiState(elem, "checked"));
+ doh.assertEqual("true",
+ dijit.getWaiState(elem, "checked"));
+ }
+ },
+
+ function setWaiState(){
+ var div = document.createElement("div");
+ dijit.setWaiState(div, "checked", "true");
+ if(dojo.isFF && dojo.isFF < 3){
+ doh.assertEqual("true",
+ div.getAttributeNS("http://www.w3.org/2005/07/aaa",
+ "checked"));
+ }else{
+ doh.assertEqual("true",
+ div.getAttribute("aria-checked"));
+ }
+ },
+
+ function removeWaiState(){
+ var div = document.createElement("div");
+ dijit.setWaiState(div, "checked", "true");
+ dijit.removeWaiState(div, "checked");
+ doh.assertEqual("", dijit.getWaiState(div, "checked"));
+ }
+ ]
+ );
+ doh.run();
+ });
+ </script>
+</head>
+<body>
+ <div id="no-role-or-states"></div>
+ <div id="empty-wairole" role="wairole:"></div>
+ <div id="wairole" role="wairole:menuitem"></div>
+ <div id="unprefixed-role" role="menuitem"></div>
+ <div id="checked" aria-checked="true"></div>
+</body>
+</html>
diff --git a/includes/js/dijit/tests/_base/wai.js b/includes/js/dijit/tests/_base/wai.js new file mode 100644 index 0000000..3bd299a --- /dev/null +++ b/includes/js/dijit/tests/_base/wai.js @@ -0,0 +1,9 @@ +if(!dojo._hasResource["dijit.tests._base.wai"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.tests._base.wai"] = true; +dojo.provide("dijit.tests._base.wai"); + +if(dojo.isBrowser){ + doh.registerUrl("dijit.tests._base.wai", dojo.moduleUrl("dijit", "tests/_base/wai.html")); +} + +} |