]> git.pond.sub.org Git - eow/blobdiff - static/dojo-release-1.1.1/dijit/tests/i18n/test_i18n.js
add Dojo 1.1.1
[eow] / static / dojo-release-1.1.1 / dijit / tests / i18n / test_i18n.js
diff --git a/static/dojo-release-1.1.1/dijit/tests/i18n/test_i18n.js b/static/dojo-release-1.1.1/dijit/tests/i18n/test_i18n.js
new file mode 100644 (file)
index 0000000..bc44e63
--- /dev/null
@@ -0,0 +1,206 @@
+var validateValues = [];
+var formatWidgetCount = 0;
+var validateWidgetCount = 0;
+
+function getElementsById(id){
+       var result = [];        
+
+       if(!id || typeof(id) != "string"){
+               return result;
+       }
+
+       var ae = document.getElementsByTagName(dojo.byId(id).tagName);
+       for(var i = 0; i < ae.length; i++){
+               if(ae[i].id == id){
+                       result.push(ae[i]);
+               }
+       }
+       return result;
+}
+
+function getString(n){
+       return n && n.toString();
+}
+
+function startTest(t){
+       startTestFormat(t);
+       startTestValidate(t);
+}
+
+function escapeEx(s){
+       var result = "";
+       for(var i = 0; i < s.length; i++){
+               var c = s.charAt(i);
+               switch (c){
+                       case '"':
+                               result += '\\"';
+                               break;
+                       case "'":
+                               result += "\\'";
+                               break;
+                       default:
+                               result += escape(c);
+                               break;
+               }
+       }
+       return result;
+}
+
+function getAllTestCases(){
+       var allTestCases = [];
+       for(var i = 0; i < formatWidgetCount; i++){
+               allTestCases.push({
+                       name: "format-" + i,
+                       runTest: new Function("t", "startTestFormat(" + i + ", t)")
+               });
+       }
+       for(var i = 0; i < validateWidgetCount; i++){
+               allTestCases.push({
+                       name: "validate-" + i,
+                       runTest: new Function("t", "startTestValidate(" + i + ", t)")
+               });
+       }
+       return allTestCases;
+}
+
+function startTestFormat(i, t){
+       var test_node = dojo.doc.getElementById("test_display_" + i);
+       var exp = dojo.doc.getElementById("test_display_expected_" + i).value;
+       var res_node = dojo.doc.getElementById("test_display_result_" + i);
+       res_node.innerHTML = test_node.value;
+       res_node.style.backgroundColor = (test_node.value == exp) ? "#AFA" : "#FAA";
+       res_node.innerHTML += " <a style='font-size:0.8em' href='javascript:alert(\"Expected: " + escapeEx(exp) + "\\n Result: " + escapeEx(test_node.value) + "\")'>Compare (Escaped)</a>";
+       t.is(exp, test_node.value);
+}
+
+function startTestValidate(i, t){
+       /*
+        * The dijit.byNode has an issue: cannot handle same id.
+        */
+       var test_node = dojo.doc.getElementById("test_validate_" + i);
+       var inp_node = dojo.doc.getElementById("test_validate_input_" + i);
+       var exp = dojo.doc.getElementById("test_validate_expected_" + i).innerHTML;
+       var res_node = dojo.doc.getElementById("test_validate_result_" + i);
+       var val_node = dojo.doc.getElementById("test_display_value_" + i);
+
+       test_node.value = inp_node.value;
+       /*
+        * The dijit.byNode has an issue.
+        */
+       var widget = null;
+       var node = test_node;
+       while ((widget = dijit.byNode(node)) == null){
+               node = node.parentNode;
+               if(!node){
+                       break;
+               }
+       }
+
+       if(widget){
+               widget.focus();
+
+               var expected = validateValues[i];
+               var result = widget.getValue();
+               if(validateValues[i].processValue){
+                       expected = validateValues[i].processValue(expected);
+                       result = validateValues[i].processValue(result);
+               }
+               var parseCorrect = getString(expected) == getString(result);
+               val_node.style.backgroundColor = parseCorrect ?  "#AFA" : "#FAA";
+               val_node.innerHTML = getString(result) + (parseCorrect ? "" : "<br>Expected: " + getString(expected));
+
+               res_node.innerHTML = widget.isValid && !widget.isValid() ? "Wrong" : "Correct";
+               res_node.style.backgroundColor = res_node.innerHTML == exp ? "#AFA" : "#FAA";
+
+               t.is(getString(expected), getString(result));
+       }
+}
+
+function genFormatTestCase(desc, dojoType, dojoAttrs, value, expValue, comment){
+       dojo.doc.write("<tr>");
+       dojo.doc.write("<td>" + desc + "</td>");
+       dojo.doc.write("<td>");
+       dojo.doc.write("<input id='test_display_" + formatWidgetCount + "' type='text' value='" + value + "' ");
+       dojo.doc.write("dojoType='" + dojoType + "' ");
+       for(var attr in dojoAttrs){
+               dojo.doc.write(attr + "=\"" + dojoAttrs[attr] + "\" ");
+       }
+       dojo.doc.write("/>");
+       dojo.doc.write("</td>");
+       dojo.doc.write("<td><input id='test_display_expected_" + formatWidgetCount + "' value='" + expValue + "'></td>");
+       dojo.doc.write("<td id='test_display_result_" + formatWidgetCount + "'></td>");
+       dojo.doc.write("<td style='white-space:normal'>" + comment + "</td>");
+       dojo.doc.write("</tr>");
+       formatWidgetCount++;
+}
+/*
+[
+       {attrs: {currency: "CNY", lang: "zh-cn"}, desc: "", value:"-123456789.46", expValue: "", comment: ""},
+       ...
+]
+*/
+function genFormatTestCases(title, dojoType, testCases){
+       dojo.doc.write("<h2 class=testTitle>" + title + "</h2>");
+       dojo.doc.write("<table border=1>");
+       dojo.doc.write("<tr>");
+       dojo.doc.write("<td class=title><b>Test Description</b></td>");
+       dojo.doc.write("<td class=title><b>Test</b></td>");
+       dojo.doc.write("<td class=title><b>Expected</b></td>");
+       dojo.doc.write("<td class=title><b>Result</b></td>");
+       dojo.doc.write("<td class=title><b>Comment</b></td>");
+       dojo.doc.write("</tr>");
+
+       for(var i = 0; i < testCases.length; i++){
+               var testCase = testCases[i];
+               genFormatTestCase(testCase.desc, dojoType, testCase.attrs, testCase.value, testCase.expValue, testCase.comment);
+       }
+
+       dojo.doc.write("</table>");
+}
+
+function genValidateTestCase(desc, dojoType, dojoAttrs, input, value, comment, isWrong){
+       dojo.doc.write("<tr>");
+       dojo.doc.write("<td>" + desc + "</td>");
+       dojo.doc.write("<td>");
+       dojo.doc.write("<input id='test_validate_" + validateWidgetCount + "' type='text' ");
+       dojo.doc.write("dojoType='" + dojoType + "' ");
+       for(var attr in dojoAttrs){
+               dojo.doc.write(attr + "=\"" + dojoAttrs[attr] + "\" ");
+       }
+       dojo.doc.write("/>");
+       dojo.doc.write("</td>");
+       dojo.doc.write("<td><input id='test_validate_input_" + validateWidgetCount + "' value='" + input + "'></td>");
+       dojo.doc.write("<td id='test_display_value_" + validateWidgetCount + "'></td>");
+       dojo.doc.write("<td id='test_validate_expected_" + validateWidgetCount + "'>" + (isWrong ? "Wrong" : "Correct") + "</td>");
+       dojo.doc.write("<td id='test_validate_result_" + validateWidgetCount + "'></td>");
+       dojo.doc.write("<td style='white-space:normal'>" + comment + "</td>");
+       dojo.doc.write("</tr>");
+       validateValues.push(value);
+       validateWidgetCount++;
+}
+/*
+[
+       {attrs: {currency: "CNY", lang: "zh-cn"}, desc: "", value:false, expValue: "-123456789.46", comment: ""},
+       ...
+]
+*/
+function genValidateTestCases(title, dojoType, testCases){
+       dojo.doc.write("<h2 class=testTitle>" + title + "</h2>");
+       dojo.doc.write("<table border=1>");
+       dojo.doc.write("<tr>");
+       dojo.doc.write("<td class=title><b>Test Description</b></td>");
+       dojo.doc.write("<td class=title><b>Test</b></td>");
+       dojo.doc.write("<td class=title><b>Input</b></td>");
+       dojo.doc.write("<td class=title><b>Parsed Value</b></td>");
+       dojo.doc.write("<td class=title><b>Expected</b></td>");
+       dojo.doc.write("<td class=title><b>Result</b></td>");
+       dojo.doc.write("<td class=title><b>Comment</b></td>");
+       dojo.doc.write("</tr>");
+
+       for(var i = 0; i < testCases.length; i++){
+               var testCase = testCases[i];
+               genValidateTestCase(testCase.desc, dojoType, testCase.attrs, testCase.expValue, testCase.value, testCase.comment, testCase.isWrong);
+       }
+
+       dojo.doc.write("</table>");
+}