1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/layout/inspector/tests/chrome/test_bug695639.xul Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,80 @@ 1.4 +<?xml version="1.0"?> 1.5 +<?xml-stylesheet type="text/css" href="chrome://global/skin"?> 1.6 +<?xml-stylesheet type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"?> 1.7 +<?xml-stylesheet type="text/css" href="test_bug695639.css"?> 1.8 +<!-- 1.9 +https://bugzilla.mozilla.org/show_bug.cgi?id=695639 1.10 +--> 1.11 +<window title="Mozilla Bug 695639" 1.12 + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" 1.13 + onload="RunTest();"> 1.14 + <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/> 1.15 + <script type="application/javascript"> 1.16 + <![CDATA[ 1.17 + /** Test for Bug 695639 - check that GetFontFacesForText handles wrapped lines properly **/ 1.18 + 1.19 +SimpleTest.waitForExplicitFinish(); 1.20 + 1.21 +function RunTest() { 1.22 + const CI = Components.interfaces; 1.23 + const CC = Components.classes; 1.24 + 1.25 + var domUtils = 1.26 + CC["@mozilla.org/inspector/dom-utils;1"].getService(CI.inIDOMUtils); 1.27 + 1.28 + var rng = document.createRange(); 1.29 + var elem, fonts, f; 1.30 + 1.31 + elem = document.getElementById("test").childNodes[0]; 1.32 + rng.setStart(elem, 0); 1.33 + rng.setEnd(elem, 14); 1.34 + fonts = domUtils.getUsedFontFaces(rng); 1.35 + is(fonts.length, 2, "number of fonts used for entire text"); 1.36 + 1.37 + // initial latin substring... 1.38 + rng.setStart(elem, 0); 1.39 + rng.setEnd(elem, 5); // "Hello" 1.40 + fonts = domUtils.getUsedFontFaces(rng); 1.41 + is(fonts.length, 1, "number of fonts (1)"); 1.42 + f = fonts.item(0); 1.43 + is(f.name, "Gentium Plus", "font name (1)"); 1.44 + 1.45 + // the space (where the line wraps) should also be Gentium 1.46 + rng.setStart(elem, 5); 1.47 + rng.setEnd(elem, 6); // space 1.48 + fonts = domUtils.getUsedFontFaces(rng); 1.49 + is(fonts.length, 1, "number of fonts (2)"); 1.50 + f = fonts.item(0); 1.51 + is(f.name, "Gentium Plus", "font name (2)"); 1.52 + 1.53 + // the Chinese text "ni hao" should NOT be in Gentium 1.54 + rng.setStart(elem, 6); 1.55 + rng.setEnd(elem, 8); // two Chinese characters on second line 1.56 + fonts = domUtils.getUsedFontFaces(rng); 1.57 + is(fonts.length, 1, "number of fonts (3)"); 1.58 + f = fonts.item(0); 1.59 + isnot(f.name, "Gentium Plus", "font name (3)"); 1.60 + 1.61 + // space and "world" should be Gentium again 1.62 + rng.setStart(elem, 8); 1.63 + rng.setEnd(elem, 14); 1.64 + fonts = domUtils.getUsedFontFaces(rng); 1.65 + is(fonts.length, 1, "number of fonts (4)"); 1.66 + f = fonts.item(0); 1.67 + is(f.name, "Gentium Plus", "font name (4)"); 1.68 + 1.69 + SimpleTest.finish(); 1.70 +} 1.71 + ]]> 1.72 + </script> 1.73 + 1.74 + <style type="text/css"> 1.75 + </style> 1.76 + 1.77 + <body xmlns="http://www.w3.org/1999/xhtml"> 1.78 + <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=695639" 1.79 + target="_blank">Mozilla Bug 695639</a> 1.80 + <div style="width: 2em;" class="test" id="test">Hello 你好 world</div> 1.81 + </body> 1.82 + 1.83 +</window>