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