intl.html revision 1bb9ba7f0e700971d0c04fca23820699348cfd49
3c84a26d055021d8fb3357fb15c5c5961dd313a1Satyen Desai<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
3c84a26d055021d8fb3357fb15c5c5961dd313a1Satyen Desai<html>
3c84a26d055021d8fb3357fb15c5c5961dd313a1Satyen Desai<head>
3c84a26d055021d8fb3357fb15c5c5961dd313a1Satyen Desai<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
3c84a26d055021d8fb3357fb15c5c5961dd313a1Satyen Desai<title>Internationalization Tests</title>
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai
3c84a26d055021d8fb3357fb15c5c5961dd313a1Satyen Desai<script type="text/javascript" src="/build/yui/yui.js"></script>
30551f406370f7c8bf461a833205311de720886dSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai<style type="text/css">
30551f406370f7c8bf461a833205311de720886dSatyen Desai #console .yui3-console-entry {
30551f406370f7c8bf461a833205311de720886dSatyen Desai padding:2px;
30551f406370f7c8bf461a833205311de720886dSatyen Desai margin:0px;
30551f406370f7c8bf461a833205311de720886dSatyen Desai min-height:0;
30551f406370f7c8bf461a833205311de720886dSatyen Desai }
30551f406370f7c8bf461a833205311de720886dSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai #console .yui3-console-entry-fail .yui3-console-entry-cat {
30551f406370f7c8bf461a833205311de720886dSatyen Desai background-color:red;
30551f406370f7c8bf461a833205311de720886dSatyen Desai }
30551f406370f7c8bf461a833205311de720886dSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai #console .yui3-console-entry-pass .yui3-console-entry-cat {
30551f406370f7c8bf461a833205311de720886dSatyen Desai background-color:green;
30551f406370f7c8bf461a833205311de720886dSatyen Desai }
30551f406370f7c8bf461a833205311de720886dSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai #console .yui3-console-entry-perf .yui3-console-entry-cat {
30551f406370f7c8bf461a833205311de720886dSatyen Desai background-color:blue;
30551f406370f7c8bf461a833205311de720886dSatyen Desai }
30551f406370f7c8bf461a833205311de720886dSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai #console {
30551f406370f7c8bf461a833205311de720886dSatyen Desai position:static;
30551f406370f7c8bf461a833205311de720886dSatyen Desai }
30551f406370f7c8bf461a833205311de720886dSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai html, body {
30551f406370f7c8bf461a833205311de720886dSatyen Desai height:100%;
30551f406370f7c8bf461a833205311de720886dSatyen Desai }
30551f406370f7c8bf461a833205311de720886dSatyen Desai</style>
3c84a26d055021d8fb3357fb15c5c5961dd313a1Satyen Desai</head>
3c84a26d055021d8fb3357fb15c5c5961dd313a1Satyen Desai
3c84a26d055021d8fb3357fb15c5c5961dd313a1Satyen Desai<body class="yui3-skin-sam">
3c84a26d055021d8fb3357fb15c5c5961dd313a1Satyen Desai<p><input type="button" value="Run Tests" id="btnRun" disabled=true></p>
3c84a26d055021d8fb3357fb15c5c5961dd313a1Satyen Desai<script type="text/javascript">
3c84a26d055021d8fb3357fb15c5c5961dd313a1Satyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen DesaiYUI({
1bb9ba7f0e700971d0c04fca23820699348cfd49Satyen Desai useBrowserConsole:false,
1bb9ba7f0e700971d0c04fca23820699348cfd49Satyen Desai filter: (window.location.search.match(/[?&]filter=([^&]+)/) || [])[1] || 'min'
30551f406370f7c8bf461a833205311de720886dSatyen Desai}).use("console", "test", "intl", function(Y) {
30551f406370f7c8bf461a833205311de720886dSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai // Set up the page
30551f406370f7c8bf461a833205311de720886dSatyen Desai var LANG = Y.Lang,
30551f406370f7c8bf461a833205311de720886dSatyen Desai ASSERT = Y.Assert,
30551f406370f7c8bf461a833205311de720886dSatyen Desai ARRAYASSERT = Y.ArrayAssert,
30551f406370f7c8bf461a833205311de720886dSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai areObjectsReallyEqual = function (o1, o2) {
30551f406370f7c8bf461a833205311de720886dSatyen Desai Y.ObjectAssert.areEqual(o1, o2);
30551f406370f7c8bf461a833205311de720886dSatyen Desai Y.ObjectAssert.areEqual(o2, o1);
30551f406370f7c8bf461a833205311de720886dSatyen Desai };
30551f406370f7c8bf461a833205311de720886dSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai var testLookupBestLanguage = new Y.Test.Case({
30551f406370f7c8bf461a833205311de720886dSatyen Desai name: "Lookup Best Language Tests",
30551f406370f7c8bf461a833205311de720886dSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai testArray: function() {
30551f406370f7c8bf461a833205311de720886dSatyen Desai var language = Y.Intl.lookupBestLang(["de-DE", "en-SG", "ja-JP"], ["fr-FR", "en", "en-SG"]);
30551f406370f7c8bf461a833205311de720886dSatyen Desai ASSERT.areSame(language, "en-SG", "Expected en-SG.");
30551f406370f7c8bf461a833205311de720886dSatyen Desai },
30551f406370f7c8bf461a833205311de720886dSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai testString: function() {
30551f406370f7c8bf461a833205311de720886dSatyen Desai var language = Y.Intl.lookupBestLang("de-DE,en-SG,ja-JP", ["fr-FR", "en", "en-SG"]);
30551f406370f7c8bf461a833205311de720886dSatyen Desai ASSERT.areSame(language, "en-SG", "Expected en-SG.");
30551f406370f7c8bf461a833205311de720886dSatyen Desai },
30551f406370f7c8bf461a833205311de720886dSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai testStar: function() {
30551f406370f7c8bf461a833205311de720886dSatyen Desai var language = Y.Intl.lookupBestLang("de-DE,*,en-SG,ja-JP", ["fr-FR", "en", "en-SG"]);
30551f406370f7c8bf461a833205311de720886dSatyen Desai ASSERT.areSame(language, "en-SG", "Expected en-SG.");
30551f406370f7c8bf461a833205311de720886dSatyen Desai },
30551f406370f7c8bf461a833205311de720886dSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai testPrivate: function() {
30551f406370f7c8bf461a833205311de720886dSatyen Desai var language = Y.Intl.lookupBestLang("de-DE,zh-Hant-CN-x-private1-private2", ["fr-FR", "zh-Hant-CN", "zh-Hant-CN-x"]);
30551f406370f7c8bf461a833205311de720886dSatyen Desai ASSERT.areSame(language, "zh-Hant-CN", "Expected zh-Hant-CN.");
30551f406370f7c8bf461a833205311de720886dSatyen Desai }
30551f406370f7c8bf461a833205311de720886dSatyen Desai });
30551f406370f7c8bf461a833205311de720886dSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai var testStore = new Y.Test.Case({
30551f406370f7c8bf461a833205311de720886dSatyen Desai name: "Basic Intl Language Store Tests",
30551f406370f7c8bf461a833205311de720886dSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai testAdd: function() {
30551f406370f7c8bf461a833205311de720886dSatyen Desai
72271ac744caf158d02d8d0eabaf3b26c8fc6b8cSatyen Desai var eventStack = [],
72271ac744caf158d02d8d0eabaf3b26c8fc6b8cSatyen Desai expectedEventStack = [
72271ac744caf158d02d8d0eabaf3b26c8fc6b8cSatyen Desai {module:"modA", newVal:"fr", prevVal:"en-US"},
72271ac744caf158d02d8d0eabaf3b26c8fc6b8cSatyen Desai {module:"modA", newVal:"ja-JP", prevVal:"fr"},
6210c8ff54a22d109f944c4fddd5921a20f38db4Satyen Desai {module:"modA", newVal:"fr", prevVal:"ja-JP"}
72271ac744caf158d02d8d0eabaf3b26c8fc6b8cSatyen Desai ];
72271ac744caf158d02d8d0eabaf3b26c8fc6b8cSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai Y.Intl.add("modA", "en-US", {
30551f406370f7c8bf461a833205311de720886dSatyen Desai hello:"Hello"
30551f406370f7c8bf461a833205311de720886dSatyen Desai });
30551f406370f7c8bf461a833205311de720886dSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai ASSERT.areSame(Y.Intl.get("modA").hello, "Hello");
30551f406370f7c8bf461a833205311de720886dSatyen Desai
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai var h = Y.Intl.after("intl:langChange", function(e) {
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai eventStack.push({module:e.module, newVal:e.newVal, prevVal:e.prevVal});
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai });
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai Y.Intl.add("modA", "fr", {
30551f406370f7c8bf461a833205311de720886dSatyen Desai hello:"Bonjour"
30551f406370f7c8bf461a833205311de720886dSatyen Desai });
30551f406370f7c8bf461a833205311de720886dSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai ASSERT.areSame(Y.Intl.get("modA").hello, "Bonjour");
30551f406370f7c8bf461a833205311de720886dSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai Y.Intl.add("modA", "ja-JP", {
30551f406370f7c8bf461a833205311de720886dSatyen Desai hello: "こんにちは"
30551f406370f7c8bf461a833205311de720886dSatyen Desai });
30551f406370f7c8bf461a833205311de720886dSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai ASSERT.areSame(Y.Intl.get("modA").hello, "こんにちは");
30551f406370f7c8bf461a833205311de720886dSatyen Desai
998081668c864c09fb71c747abae48a38df0f79bSatyen Desai Y.Intl.setLang("modA", "fr");
72271ac744caf158d02d8d0eabaf3b26c8fc6b8cSatyen Desai ASSERT.areSame(Y.Intl.get("modA").hello, "Bonjour");
72271ac744caf158d02d8d0eabaf3b26c8fc6b8cSatyen Desai
72271ac744caf158d02d8d0eabaf3b26c8fc6b8cSatyen Desai ARRAYASSERT.itemsAreEquivalent(expectedEventStack, eventStack, function(a, b) {
72271ac744caf158d02d8d0eabaf3b26c8fc6b8cSatyen Desai var equal = true;
72271ac744caf158d02d8d0eabaf3b26c8fc6b8cSatyen Desai try {
72271ac744caf158d02d8d0eabaf3b26c8fc6b8cSatyen Desai areObjectsReallyEqual(a, b);
72271ac744caf158d02d8d0eabaf3b26c8fc6b8cSatyen Desai } catch(e) {
72271ac744caf158d02d8d0eabaf3b26c8fc6b8cSatyen Desai equal = false;
72271ac744caf158d02d8d0eabaf3b26c8fc6b8cSatyen Desai }
72271ac744caf158d02d8d0eabaf3b26c8fc6b8cSatyen Desai return equal;
72271ac744caf158d02d8d0eabaf3b26c8fc6b8cSatyen Desai });
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai h.detach();
30551f406370f7c8bf461a833205311de720886dSatyen Desai },
30551f406370f7c8bf461a833205311de720886dSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai testRoot : function() {
30551f406370f7c8bf461a833205311de720886dSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai Y.Intl.add("modB", "fr", {
30551f406370f7c8bf461a833205311de720886dSatyen Desai hello:"Bonjour"
30551f406370f7c8bf461a833205311de720886dSatyen Desai });
30551f406370f7c8bf461a833205311de720886dSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai ASSERT.areSame(Y.Intl.getLang("modB"), "fr");
30551f406370f7c8bf461a833205311de720886dSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai Y.Intl.add("modB", "", {
30551f406370f7c8bf461a833205311de720886dSatyen Desai hello:"HELLO"
30551f406370f7c8bf461a833205311de720886dSatyen Desai });
30551f406370f7c8bf461a833205311de720886dSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai ASSERT.areSame(Y.Intl.getLang("modB"), "");
30551f406370f7c8bf461a833205311de720886dSatyen Desai ASSERT.areSame(Y.Intl.get("modB").hello, "HELLO");
30551f406370f7c8bf461a833205311de720886dSatyen Desai
998081668c864c09fb71c747abae48a38df0f79bSatyen Desai Y.Intl.setLang("modB", "fr");
30551f406370f7c8bf461a833205311de720886dSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai ASSERT.areSame(Y.Intl.get("modB").hello, "Bonjour");
30551f406370f7c8bf461a833205311de720886dSatyen Desai ASSERT.areSame(Y.Intl.getLang("modB"), "fr");
30551f406370f7c8bf461a833205311de720886dSatyen Desai },
30551f406370f7c8bf461a833205311de720886dSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai testGet : function() {
30551f406370f7c8bf461a833205311de720886dSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai var origSet = {
30551f406370f7c8bf461a833205311de720886dSatyen Desai hello : "Hello",
30551f406370f7c8bf461a833205311de720886dSatyen Desai world : "World"
30551f406370f7c8bf461a833205311de720886dSatyen Desai };
30551f406370f7c8bf461a833205311de720886dSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai Y.Intl.add("modC", "en", {
30551f406370f7c8bf461a833205311de720886dSatyen Desai hello : "Hello",
30551f406370f7c8bf461a833205311de720886dSatyen Desai world : "World"
30551f406370f7c8bf461a833205311de720886dSatyen Desai });
30551f406370f7c8bf461a833205311de720886dSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai var strs = Y.Intl.get("modC");
30551f406370f7c8bf461a833205311de720886dSatyen Desai areObjectsReallyEqual(strs, origSet);
30551f406370f7c8bf461a833205311de720886dSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai ASSERT.areSame(Y.Intl.get("modC", "hello"), origSet.hello);
30551f406370f7c8bf461a833205311de720886dSatyen Desai ASSERT.areSame(Y.Intl.get("modC", "world"), origSet.world);
30551f406370f7c8bf461a833205311de720886dSatyen Desai }
3c84a26d055021d8fb3357fb15c5c5961dd313a1Satyen Desai });
30551f406370f7c8bf461a833205311de720886dSatyen Desai
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai var suite = new Y.Test.Suite({name:"Intl Unit Tests"});
30551f406370f7c8bf461a833205311de720886dSatyen Desai
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai suite.add(testLookupBestLanguage);
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai suite.add(testStore);
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai Y.Test.Runner.setName("Intl Tests");
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai Y.Test.Runner.add(suite);
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai Y.Test.Runner.disableLogging();
30551f406370f7c8bf461a833205311de720886dSatyen Desai Y.Test.Runner.run();
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai var console;
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai Y.one("#btnRun").set("disabled", false).on("click", function() {
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai if (!console) {
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai console = new Y.Console({
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai id:"console",
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai width:"100%",
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai height:"90%",
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai verbose : false,
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai printTimeout: 0,
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai newestOnTop : false,
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai entryTemplate: '<pre class="{entry_class} {cat_class} {src_class}">'+
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai '<span class="{entry_cat_class}">{label}</span>'+
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai '<span class="{entry_content_class}">{message}</span>'+
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai '</pre>'
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai }).render();
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai }
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai Y.Test.Runner.enableLogging();
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai Y.Test.Runner.run();
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai });
30551f406370f7c8bf461a833205311de720886dSatyen Desai});
3c84a26d055021d8fb3357fb15c5c5961dd313a1Satyen Desai</script>
3c84a26d055021d8fb3357fb15c5c5961dd313a1Satyen Desai</body>
3c84a26d055021d8fb3357fb15c5c5961dd313a1Satyen Desai</html>