|
1 <?xml version="1.0"?> |
|
2 <?xml-stylesheet type="text/css" href="chrome://global/skin"?> |
|
3 <?xml-stylesheet type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"?> |
|
4 <?xml-stylesheet type="text/css" href="test_bug695639.css"?> |
|
5 <!-- |
|
6 https://bugzilla.mozilla.org/show_bug.cgi?id=695639 |
|
7 --> |
|
8 <window title="Mozilla Bug 695639" |
|
9 xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" |
|
10 onload="RunTest();"> |
|
11 <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/> |
|
12 <script type="application/javascript"> |
|
13 <![CDATA[ |
|
14 /** Test for Bug 695639 - check that GetFontFacesForText handles wrapped lines properly **/ |
|
15 |
|
16 SimpleTest.waitForExplicitFinish(); |
|
17 |
|
18 function RunTest() { |
|
19 const CI = Components.interfaces; |
|
20 const CC = Components.classes; |
|
21 |
|
22 var domUtils = |
|
23 CC["@mozilla.org/inspector/dom-utils;1"].getService(CI.inIDOMUtils); |
|
24 |
|
25 var rng = document.createRange(); |
|
26 var elem, fonts, f; |
|
27 |
|
28 elem = document.getElementById("test").childNodes[0]; |
|
29 rng.setStart(elem, 0); |
|
30 rng.setEnd(elem, 14); |
|
31 fonts = domUtils.getUsedFontFaces(rng); |
|
32 is(fonts.length, 2, "number of fonts used for entire text"); |
|
33 |
|
34 // initial latin substring... |
|
35 rng.setStart(elem, 0); |
|
36 rng.setEnd(elem, 5); // "Hello" |
|
37 fonts = domUtils.getUsedFontFaces(rng); |
|
38 is(fonts.length, 1, "number of fonts (1)"); |
|
39 f = fonts.item(0); |
|
40 is(f.name, "Gentium Plus", "font name (1)"); |
|
41 |
|
42 // the space (where the line wraps) should also be Gentium |
|
43 rng.setStart(elem, 5); |
|
44 rng.setEnd(elem, 6); // space |
|
45 fonts = domUtils.getUsedFontFaces(rng); |
|
46 is(fonts.length, 1, "number of fonts (2)"); |
|
47 f = fonts.item(0); |
|
48 is(f.name, "Gentium Plus", "font name (2)"); |
|
49 |
|
50 // the Chinese text "ni hao" should NOT be in Gentium |
|
51 rng.setStart(elem, 6); |
|
52 rng.setEnd(elem, 8); // two Chinese characters on second line |
|
53 fonts = domUtils.getUsedFontFaces(rng); |
|
54 is(fonts.length, 1, "number of fonts (3)"); |
|
55 f = fonts.item(0); |
|
56 isnot(f.name, "Gentium Plus", "font name (3)"); |
|
57 |
|
58 // space and "world" should be Gentium again |
|
59 rng.setStart(elem, 8); |
|
60 rng.setEnd(elem, 14); |
|
61 fonts = domUtils.getUsedFontFaces(rng); |
|
62 is(fonts.length, 1, "number of fonts (4)"); |
|
63 f = fonts.item(0); |
|
64 is(f.name, "Gentium Plus", "font name (4)"); |
|
65 |
|
66 SimpleTest.finish(); |
|
67 } |
|
68 ]]> |
|
69 </script> |
|
70 |
|
71 <style type="text/css"> |
|
72 </style> |
|
73 |
|
74 <body xmlns="http://www.w3.org/1999/xhtml"> |
|
75 <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=695639" |
|
76 target="_blank">Mozilla Bug 695639</a> |
|
77 <div style="width: 2em;" class="test" id="test">Hello 你好 world</div> |
|
78 </body> |
|
79 |
|
80 </window> |