Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / fast / css / lang-mapped-to-webkit-locale-dynamic.xhtml
blobd24d82f68db7025d9dc972842318411b251998de
1 <?xml version="1.0" encoding="utf-8"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml">
4 <head>
5 <title>mapping dynamic lang to -webkit-locale</title>
6 <script src="../../resources/js-test.js"></script>
7 <script>
8 function localeOfNode(id) {
9 var element = document.getElementById(id);
10 return window.getComputedStyle(element).webkitLocale;
13 function runTest() {
14 description('This tests mapping of lang/xml:lang to -webkit-locale with dynamic attribute changes. WebKit bug 76364');
15 var x1 = document.getElementById("x1");
16 var x2 = document.getElementById("x2");
17 var x3 = document.getElementById("x3");
19 shouldBeEqualToString("localeOfNode('x1')", '"ko"');
20 shouldBeEqualToString("localeOfNode('x2')", '"ko"');
21 shouldBeEqualToString("localeOfNode('x3')", '"ar"');
23 x1.lang = "ja";
24 shouldBeEqualToString("localeOfNode('x1')", '"ja"');
25 shouldBeEqualToString("localeOfNode('x2')", '"ja"');
26 shouldBeEqualToString("localeOfNode('x3')", '"ar"');
28 x3.lang = "";
29 shouldBeEqualToString("localeOfNode('x3')", "auto");
31 x3.removeAttribute("lang");
32 shouldBeEqualToString("localeOfNode('x3')", '"ja"');
34 // The "lang" attribute in the XML namespace should affect locale (since this is an XHTML document).
35 var attr1 = document.createAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:lang");
36 attr1.value = "zh";
37 x2.setAttributeNodeNS(attr1);
38 shouldBeEqualToString("localeOfNode('x2')", '"zh"');
40 x2.removeAttributeNode(attr1);
41 shouldBeEqualToString("localeOfNode('x2')", '"ja"');
43 // An attribute with local name "lang" not in the XML namespace should not affect locale.
44 var attr2 = document.createAttributeNS("foobar", "fb:lang");
45 attr2.value = "ph";
46 x2.setAttributeNodeNS(attr2);
47 shouldBeEqualToString("localeOfNode('x2')", '"ja"');
49 // If we include js-test-post.js directly, the "TEST COMPLETE" output comes out of order.
50 wasPostTestScriptParsed = true;
51 finishJSTest();
53 </script>
54 </head>
55 <body onload="runTest();">
56 <div lang="ko" id="x1"><div id="x2"/><div id="x3" lang="ar"/></div>
57 </body>
58 </html>