intl.html revision 72271ac744caf158d02d8d0eabaf3b26c8fc6b8c
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>
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({
30551f406370f7c8bf461a833205311de720886dSatyen Desai useBrowserConsole:false
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 btnRun = Y.get("#btnRun"),
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 new Y.Console({
30551f406370f7c8bf461a833205311de720886dSatyen Desai id:"console",
30551f406370f7c8bf461a833205311de720886dSatyen Desai width:"100%",
30551f406370f7c8bf461a833205311de720886dSatyen Desai height:"90%",
30551f406370f7c8bf461a833205311de720886dSatyen Desai verbose : false,
30551f406370f7c8bf461a833205311de720886dSatyen Desai printTimeout: 0,
30551f406370f7c8bf461a833205311de720886dSatyen Desai newestOnTop : false,
30551f406370f7c8bf461a833205311de720886dSatyen Desai entryTemplate: '<pre class="{entry_class} {cat_class} {src_class}">'+
30551f406370f7c8bf461a833205311de720886dSatyen Desai '<span class="{entry_cat_class}">{label}</span>'+
30551f406370f7c8bf461a833205311de720886dSatyen Desai '<span class="{entry_content_class}">{message}</span>'+
30551f406370f7c8bf461a833205311de720886dSatyen Desai '</pre>'
30551f406370f7c8bf461a833205311de720886dSatyen Desai }).render();
30551f406370f7c8bf461a833205311de720886dSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai btnRun.set("disabled", false);
30551f406370f7c8bf461a833205311de720886dSatyen Desai Y.on("click", function() {
3c84a26d055021d8fb3357fb15c5c5961dd313a1Satyen Desai Y.Test.Runner.run();
30551f406370f7c8bf461a833205311de720886dSatyen Desai }, btnRun);
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
72271ac744caf158d02d8d0eabaf3b26c8fc6b8cSatyen Desai expectedEventStack = [
72271ac744caf158d02d8d0eabaf3b26c8fc6b8cSatyen Desai {module:"modA", newVal:"en-US", prevVal:undefined},
72271ac744caf158d02d8d0eabaf3b26c8fc6b8cSatyen Desai {module:"modA", newVal:"fr", prevVal:"en-US"},
72271ac744caf158d02d8d0eabaf3b26c8fc6b8cSatyen Desai {module:"modA", newVal:"ja-JP", prevVal:"fr"},
72271ac744caf158d02d8d0eabaf3b26c8fc6b8cSatyen Desai {module:"modA", newVal:"fr", prevVal:"ja-JP"},
72271ac744caf158d02d8d0eabaf3b26c8fc6b8cSatyen Desai ];
72271ac744caf158d02d8d0eabaf3b26c8fc6b8cSatyen Desai
72271ac744caf158d02d8d0eabaf3b26c8fc6b8cSatyen Desai Y.Intl.after("intl:langChange", function(e) {
72271ac744caf158d02d8d0eabaf3b26c8fc6b8cSatyen Desai eventStack.push({module:e.module, newVal:e.newVal, prevVal:e.prevVal});
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
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
30551f406370f7c8bf461a833205311de720886dSatyen 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 });
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
30551f406370f7c8bf461a833205311de720886dSatyen 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
30551f406370f7c8bf461a833205311de720886dSatyen Desai Y.Test.Runner.add(testLookupBestLanguage);
30551f406370f7c8bf461a833205311de720886dSatyen Desai Y.Test.Runner.add(testStore);
30551f406370f7c8bf461a833205311de720886dSatyen Desai
30551f406370f7c8bf461a833205311de720886dSatyen Desai Y.Test.Runner.run();
30551f406370f7c8bf461a833205311de720886dSatyen Desai});
3c84a26d055021d8fb3357fb15c5c5961dd313a1Satyen Desai</script>
3c84a26d055021d8fb3357fb15c5c5961dd313a1Satyen Desai</body>
3c84a26d055021d8fb3357fb15c5c5961dd313a1Satyen Desai</html>