/*
* _testCommon.js - a simple module to be included in dijit test pages to allow
* for easy switching between the many many points of the test-matrix.
*
* in your test browser, provides a way to switch between available themes, and
* optionally enable RTL (right to left) mode, and/or dijit_a11y (high-
* constrast/image off emulation) ... probably not a genuine test for a11y.
*
* usage: on any dijit test_* page, press ctrl-f9 to popup links.
*
* there are currently (2 themes * 4 tests) * (10 variations of supported
* browsers) not including testing individual locale-strings
*
* you should not be using this in a production enviroment. include your css and
* set your classes manually. for test purposes only ...
*/
(function() {
var theme = false;
var testMode;
if (window.location.href.indexOf("?") > -1) {
var str = window.location.href.substr(window.location.href.indexOf("?")
+ 1);
var ary = str.split(/&/);
for (var i = 0; i < ary.length; i++) {
var split = ary[i].split(/=/), key = split[0], value = split[1];
switch (key) {
case "locale" :
// locale string | null
djConfig.locale = locale = value;
break;
case "dir" :
// rtl | null
document.getElementsByTagName("html")[0].dir = value;
break;
case "theme" :
// tundra | soria | noir | squid | null
theme = value;
break;
case "a11y" :
if (value) {
testMode = "dijit_a11y";
}
}
}
}
// always include the default theme files:
if (!theme) {
theme = djConfig.defaultTestTheme || 'tundra';
}
var themeCss = dojo.moduleUrl("dijit.themes", theme + "/" + theme + ".css");
var themeCssRtl = dojo.moduleUrl("dijit.themes", theme + "/" + theme
+ "_rtl.css");
document.write('');
document.write('');
if (djConfig.parseOnLoad) {
djConfig.parseOnLoad = false;
djConfig._deferParsing = true;
}
dojo.addOnLoad(function() {
// set the classes
if (!dojo.hasClass(dojo.body(), theme)) {
dojo.addClass(dojo.body(), theme);
}
if (testMode) {
dojo.addClass(dojo.body(), testMode);
}
// test-link matrix code:
var node = document.createElement('div');
node.id = "testNodeDialog";
dojo.addClass(node, "dijitTestNodeDialog");
dojo.body().appendChild(node);
_populateTestDialog(node);
dojo.connect(document, "onkeypress", "_testNodeShow");
if (djConfig._deferParsing) {
dojo.parser.parse(dojo.body());
}
});
_testNodeShow = function(/* Event */evt) {
var key = (evt.charCode == dojo.keys.SPACE
? dojo.keys.SPACE
: evt.keyCode);
if (evt.ctrlKey && (key == dojo.keys.F9)) { // F9 is generic enough?
dojo.style(dojo.byId('testNodeDialog'), "top",
(dijit.getViewport().t + 4) + "px");
dojo.toggleClass(dojo.byId('testNodeDialog'),
"dijitTestNodeShowing");
}
}
_populateTestDialog = function(/* DomNode */node) {
// pseudo-function to populate our test-martix-link pop-up
var base = window.location.pathname;
var str = "";
var themes = ["tundra",/* "noir", */"soria" /* ,"squid" */];
str += "Tests:
' + t + '' + 'a> | ' + 'rtl' + 'a> | ' + 'a11y' + 'a> | ' + 'a11y+rtl' + 'a> | ' + // too many potential locales to list, use // &locale=[lang] to set '
jump to: themeTester' + 'a> | |||
or: tests folder' + 'a> |