test_fontFeaturesAPI.xhtml (6939B)
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_fontFeaturesAPI.css"?> 5 <window title="Test for font variation axis API" 6 xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" 7 onload="RunTest();"> 8 <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/> 9 10 <script type="application/javascript"> 11 <![CDATA[ 12 13 SimpleTest.waitForExplicitFinish(); 14 15 // Expected result (sorted) from the DejaVu Sans font we're testing with: 16 var dejaVuFeatures = [ 17 ["aalt", "grek", "dflt"], 18 ["aalt", "hebr", "dflt"], 19 ["aalt", "latn", "ISM "], 20 ["aalt", "latn", "KSM "], 21 ["aalt", "latn", "LSM "], 22 ["aalt", "latn", "MOL "], 23 ["aalt", "latn", "NSM "], 24 ["aalt", "latn", "ROM "], 25 ["aalt", "latn", "SKS "], 26 ["aalt", "latn", "SSM "], 27 ["aalt", "latn", "dflt"], 28 ["ccmp", "DFLT", "dflt"], 29 ["ccmp", "arab", "KUR "], 30 ["ccmp", "arab", "SND "], 31 ["ccmp", "arab", "URD "], 32 ["ccmp", "arab", "dflt"], 33 ["ccmp", "armn", "dflt"], 34 ["ccmp", "brai", "dflt"], 35 ["ccmp", "cans", "dflt"], 36 ["ccmp", "cher", "dflt"], 37 ["ccmp", "cyrl", "MKD "], 38 ["ccmp", "cyrl", "SRB "], 39 ["ccmp", "cyrl", "dflt"], 40 ["ccmp", "geor", "dflt"], 41 ["ccmp", "grek", "dflt"], 42 ["ccmp", "hani", "dflt"], 43 ["ccmp", "hebr", "dflt"], 44 ["ccmp", "kana", "dflt"], 45 ["ccmp", "lao ", "dflt"], 46 ["ccmp", "latn", "ISM "], 47 ["ccmp", "latn", "KSM "], 48 ["ccmp", "latn", "LSM "], 49 ["ccmp", "latn", "MOL "], 50 ["ccmp", "latn", "NSM "], 51 ["ccmp", "latn", "ROM "], 52 ["ccmp", "latn", "SKS "], 53 ["ccmp", "latn", "SSM "], 54 ["ccmp", "latn", "dflt"], 55 ["ccmp", "math", "dflt"], 56 ["ccmp", "nko ", "dflt"], 57 ["ccmp", "ogam", "dflt"], 58 ["ccmp", "runr", "dflt"], 59 ["ccmp", "tfng", "dflt"], 60 ["ccmp", "thai", "dflt"], 61 ["dlig", "DFLT", "dflt"], 62 ["dlig", "armn", "dflt"], 63 ["dlig", "latn", "ISM "], 64 ["dlig", "latn", "KSM "], 65 ["dlig", "latn", "LSM "], 66 ["dlig", "latn", "MOL "], 67 ["dlig", "latn", "NSM "], 68 ["dlig", "latn", "ROM "], 69 ["dlig", "latn", "SKS "], 70 ["dlig", "latn", "SSM "], 71 ["dlig", "latn", "dflt"], 72 ["fina", "arab", "KUR "], 73 ["fina", "arab", "SND "], 74 ["fina", "arab", "URD "], 75 ["fina", "arab", "dflt"], 76 ["fina", "nko ", "dflt"], 77 ["hlig", "hebr", "dflt"], 78 ["hlig", "latn", "ISM "], 79 ["hlig", "latn", "KSM "], 80 ["hlig", "latn", "LSM "], 81 ["hlig", "latn", "MOL "], 82 ["hlig", "latn", "NSM "], 83 ["hlig", "latn", "ROM "], 84 ["hlig", "latn", "SKS "], 85 ["hlig", "latn", "SSM "], 86 ["hlig", "latn", "dflt"], 87 ["init", "arab", "KUR "], 88 ["init", "arab", "SND "], 89 ["init", "arab", "URD "], 90 ["init", "arab", "dflt"], 91 ["init", "nko ", "dflt"], 92 ["kern", "DFLT", "dflt"], 93 ["kern", "arab", "KUR "], 94 ["kern", "arab", "SND "], 95 ["kern", "arab", "URD "], 96 ["kern", "arab", "dflt"], 97 ["kern", "armn", "dflt"], 98 ["kern", "brai", "dflt"], 99 ["kern", "cans", "dflt"], 100 ["kern", "cher", "dflt"], 101 ["kern", "cyrl", "MKD "], 102 ["kern", "cyrl", "SRB "], 103 ["kern", "cyrl", "dflt"], 104 ["kern", "geor", "dflt"], 105 ["kern", "grek", "dflt"], 106 ["kern", "hani", "dflt"], 107 ["kern", "hebr", "dflt"], 108 ["kern", "kana", "dflt"], 109 ["kern", "lao ", "dflt"], 110 ["kern", "latn", "ISM "], 111 ["kern", "latn", "KSM "], 112 ["kern", "latn", "LSM "], 113 ["kern", "latn", "MOL "], 114 ["kern", "latn", "NSM "], 115 ["kern", "latn", "ROM "], 116 ["kern", "latn", "SKS "], 117 ["kern", "latn", "SSM "], 118 ["kern", "latn", "dflt"], 119 ["kern", "math", "dflt"], 120 ["kern", "nko ", "dflt"], 121 ["kern", "ogam", "dflt"], 122 ["kern", "runr", "dflt"], 123 ["kern", "tfng", "dflt"], 124 ["kern", "thai", "dflt"], 125 ["liga", "arab", "KUR "], 126 ["liga", "arab", "SND "], 127 ["liga", "arab", "URD "], 128 ["liga", "arab", "dflt"], 129 ["liga", "latn", "ISM "], 130 ["liga", "latn", "KSM "], 131 ["liga", "latn", "LSM "], 132 ["liga", "latn", "MOL "], 133 ["liga", "latn", "NSM "], 134 ["liga", "latn", "ROM "], 135 ["liga", "latn", "SKS "], 136 ["liga", "latn", "SSM "], 137 ["liga", "latn", "dflt"], 138 ["locl", "cyrl", "MKD "], 139 ["locl", "cyrl", "SRB "], 140 ["locl", "latn", "ISM "], 141 ["locl", "latn", "KSM "], 142 ["locl", "latn", "LSM "], 143 ["locl", "latn", "MOL "], 144 ["locl", "latn", "NSM "], 145 ["locl", "latn", "ROM "], 146 ["locl", "latn", "SKS "], 147 ["locl", "latn", "SSM "], 148 ["mark", "arab", "KUR "], 149 ["mark", "arab", "SND "], 150 ["mark", "arab", "URD "], 151 ["mark", "arab", "dflt"], 152 ["mark", "cyrl", "MKD "], 153 ["mark", "cyrl", "SRB "], 154 ["mark", "cyrl", "dflt"], 155 ["mark", "grek", "dflt"], 156 ["mark", "hebr", "dflt"], 157 ["mark", "lao ", "dflt"], 158 ["mark", "latn", "ISM "], 159 ["mark", "latn", "KSM "], 160 ["mark", "latn", "LSM "], 161 ["mark", "latn", "MOL "], 162 ["mark", "latn", "NSM "], 163 ["mark", "latn", "ROM "], 164 ["mark", "latn", "SKS "], 165 ["mark", "latn", "SSM "], 166 ["mark", "latn", "dflt"], 167 ["mark", "nko ", "dflt"], 168 ["mark", "tfng", "dflt"], 169 ["medi", "arab", "KUR "], 170 ["medi", "arab", "SND "], 171 ["medi", "arab", "URD "], 172 ["medi", "arab", "dflt"], 173 ["medi", "nko ", "dflt"], 174 ["mkmk", "arab", "KUR "], 175 ["mkmk", "arab", "SND "], 176 ["mkmk", "arab", "URD "], 177 ["mkmk", "arab", "dflt"], 178 ["mkmk", "cyrl", "MKD "], 179 ["mkmk", "cyrl", "SRB "], 180 ["mkmk", "cyrl", "dflt"], 181 ["mkmk", "grek", "dflt"], 182 ["mkmk", "lao ", "dflt"], 183 ["mkmk", "latn", "ISM "], 184 ["mkmk", "latn", "KSM "], 185 ["mkmk", "latn", "LSM "], 186 ["mkmk", "latn", "MOL "], 187 ["mkmk", "latn", "NSM "], 188 ["mkmk", "latn", "ROM "], 189 ["mkmk", "latn", "SKS "], 190 ["mkmk", "latn", "SSM "], 191 ["mkmk", "latn", "dflt"], 192 ["rlig", "arab", "KUR "], 193 ["rlig", "arab", "SND "], 194 ["rlig", "arab", "URD "], 195 ["rlig", "arab", "dflt"], 196 ["salt", "grek", "dflt"], 197 ["salt", "hebr", "dflt"], 198 ["salt", "latn", "ISM "], 199 ["salt", "latn", "KSM "], 200 ["salt", "latn", "LSM "], 201 ["salt", "latn", "MOL "], 202 ["salt", "latn", "NSM "], 203 ["salt", "latn", "ROM "], 204 ["salt", "latn", "SKS "], 205 ["salt", "latn", "SSM "], 206 ["salt", "latn", "dflt"], 207 ]; 208 209 function RunTest() { 210 var rng = document.createRange(); 211 var elem = document.getElementById("test1"); 212 rng.selectNode(elem); 213 var fonts = InspectorUtils.getUsedFontFaces(rng); 214 is(fonts.length, 1, "number of fonts"); 215 var font = fonts[0]; 216 is(font.CSSFamilyName, "dejavu", "using correct test font"); 217 var fontFeatures = font.getFeatures(); 218 is(fontFeatures.length, dejaVuFeatures.length, "number of features"); 219 var featureList = []; 220 fontFeatures.forEach(function(f) { 221 featureList.push([f.tag, f.script, f.languageSystem]); 222 }); 223 is(featureList.sort().join(";"), dejaVuFeatures.join(";"), "list of features"); 224 225 SimpleTest.finish(); 226 } 227 228 ]]> 229 </script> 230 231 <!-- html:body contains elements the test will inspect --> 232 <body xmlns="http://www.w3.org/1999/xhtml"> 233 <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1280162" 234 target="_blank">Mozilla Bug 1280162</a> 235 <div id="test1">Hello world</div> 236 </body> 237 238 </window>