Blame | Last modification | View Log | RSS feed
/*_testCommon.js - a simple module to be included in dijit test pages to allowfor 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-stringsyou should not be using this in a production enviroment. includeyour 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 | nulldjConfig.locale = locale = value;break;case "dir":// rtl | nulldocument.getElementsByTagName("html")[0].dir = value;break;case "theme":// tundra | soria | noir | squid | nulltheme = 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('<link rel="stylesheet" type="text/css" href="'+themeCss+'"/>');document.write('<link rel="stylesheet" type="text/css" href="'+themeCssRtl+'"/>');if(djConfig.parseOnLoad){djConfig.parseOnLoad = false;djConfig._deferParsing = true;}dojo.addOnLoad(function(){// set the classesif(!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-upvar base = window.location.pathname;var str = "";var themes = ["tundra",/*"noir", */ "soria" /* ,"squid" */ ];str += "<b>Tests:</b><br><table>";dojo.forEach(themes,function(t){str += '<tr><td><a hr'+'ef="'+base+'?theme='+t+'">'+t+'</'+'a></td>'+'<td><a hr'+'ef="'+base+'?theme='+t+'&dir=rtl">rtl</'+'a></td>'+'<td><a hr'+'ef="'+base+'?theme='+t+'&a11y=true">a11y</'+'a></td>'+'<td><a hr'+'ef="'+base+'?theme='+t+'&a11y=true&dir=rtl">a11y+rtl</'+'a></td>'+// too many potential locales to list, use &locale=[lang] to set'</tr>';});str += '<tr><td colspan="4">jump to: <a hr'+'ef="'+(dojo.moduleUrl("dijit.themes","themeTester.html"))+'">themeTester</'+'a></td></tr>';str += '<tr><td colspan="4">or: <a hr'+'ef="'+(dojo.moduleUrl("dijit.tests"))+'">tests folder</'+'a></td></tr>';node.innerHTML = str + "</table>";}})();