webfontloader 1.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +9 -0
- data/LICENSE +201 -0
- data/README.md +148 -0
- data/Rakefile +243 -0
- data/bin/webfontloader-demos +28 -0
- data/docs/EVENTS.md +115 -0
- data/docs/MODULES.md +49 -0
- data/docs/TRANSITIONS.md +107 -0
- data/lib/webfontloader.rb +10 -0
- data/lib/webfontloader/demo/public/ascender.html +99 -0
- data/lib/webfontloader/demo/public/basic.css +9 -0
- data/lib/webfontloader/demo/public/custom.html +88 -0
- data/lib/webfontloader/demo/public/event-css-active-multiple.html +44 -0
- data/lib/webfontloader/demo/public/event-css-active.html +38 -0
- data/lib/webfontloader/demo/public/event-css-inactive.html +38 -0
- data/lib/webfontloader/demo/public/event-css-loading.html +55 -0
- data/lib/webfontloader/demo/public/event-js-active.html +39 -0
- data/lib/webfontloader/demo/public/event-js-font-active.html +40 -0
- data/lib/webfontloader/demo/public/event-js-loading.html +60 -0
- data/lib/webfontloader/demo/public/events-variations.html +130 -0
- data/lib/webfontloader/demo/public/events.html +103 -0
- data/lib/webfontloader/demo/public/google-css.html +27 -0
- data/lib/webfontloader/demo/public/google.html +33 -0
- data/lib/webfontloader/demo/public/ie-fast-js.html +47 -0
- data/lib/webfontloader/demo/public/ie-slow-js.html +48 -0
- data/lib/webfontloader/demo/public/ie-slow-link.html +38 -0
- data/lib/webfontloader/demo/public/index.html +70 -0
- data/lib/webfontloader/demo/public/typekit-variations.html +50 -0
- data/lib/webfontloader/demo/public/typekit.html +41 -0
- data/lib/webfontloader/demo/server.rb +92 -0
- data/lib/webfontloader/modules.rb +44 -0
- data/src-test/ascender/ascender_script_test.js +48 -0
- data/src-test/core/cssclassnametest.js +42 -0
- data/src-test/core/cssfontfamilynametest.js +54 -0
- data/src-test/core/domhelpertest.js +81 -0
- data/src-test/core/eventdispatchertest.js +99 -0
- data/src-test/core/fontmoduleloadertest.js +30 -0
- data/src-test/core/fonttest.js +92 -0
- data/src-test/core/fontvariationdescriptiontest.js +76 -0
- data/src-test/core/fontwatchertest.js +510 -0
- data/src-test/core/useragenttest.js +395 -0
- data/src-test/custom/customcsstest.js +30 -0
- data/src-test/google/fontapiparsertest.js +92 -0
- data/src-test/google/fontapiurlbuildertest.js +28 -0
- data/src-test/google/googlefontapitest.js +173 -0
- data/src-test/typekit/typekit_script_test.js +171 -0
- data/src/ascender/ascender_script.js +84 -0
- data/src/async_load.js +3 -0
- data/src/closure.js +3 -0
- data/src/core/cssclassname.js +21 -0
- data/src/core/cssfontfamilyname.js +20 -0
- data/src/core/domhelper.js +103 -0
- data/src/core/eventdispatcher.js +78 -0
- data/src/core/font.js +84 -0
- data/src/core/fontmoduleloader.js +25 -0
- data/src/core/fontvariationdescription.js +112 -0
- data/src/core/fontwatcher.js +121 -0
- data/src/core/initialize.js +26 -0
- data/src/core/namespace.js +11 -0
- data/src/core/useragent.js +41 -0
- data/src/core/useragentparser.js +234 -0
- data/src/custom/customcss.js +37 -0
- data/src/google/fontapiparser.js +94 -0
- data/src/google/fontapiurlbuilder.js +39 -0
- data/src/google/googlefontapi.js +49 -0
- data/src/modules.yml +27 -0
- data/src/typekit/typekit_script.js +58 -0
- data/tools/compiler/compiler.jar +0 -0
- data/tools/jstestdriver/JsTestDriver-1.2.1.jar +0 -0
- data/webfontloader.gemspec +144 -0
- metadata +191 -0
@@ -0,0 +1,395 @@
|
|
1
|
+
var UserAgentTest = TestCase('UserAgentTest');
|
2
|
+
|
3
|
+
UserAgentTest.prototype.testBrowserIsFirefox = function() {
|
4
|
+
var userAgentParser = new webfont.UserAgentParser(
|
5
|
+
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 GTB7.1");
|
6
|
+
var userAgent = userAgentParser.parse();
|
7
|
+
|
8
|
+
assertEquals("Firefox", userAgent.getName());
|
9
|
+
assertEquals("3.6.3", userAgent.getVersion());
|
10
|
+
assertEquals("Macintosh", userAgent.getPlatform());
|
11
|
+
assertEquals("10.5", userAgent.getPlatformVersion());
|
12
|
+
assertEquals("Gecko", userAgent.getEngine());
|
13
|
+
assertEquals("1.9.2.3", userAgent.getEngineVersion());
|
14
|
+
assertTrue(userAgent.isSupportingWebFont());
|
15
|
+
};
|
16
|
+
|
17
|
+
UserAgentTest.prototype.testBrowserIsChrome = function() {
|
18
|
+
var userAgentParser = new webfont.UserAgentParser(
|
19
|
+
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.9 Safari/533.2");
|
20
|
+
var userAgent = userAgentParser.parse();
|
21
|
+
|
22
|
+
assertEquals("Chrome", userAgent.getName());
|
23
|
+
assertEquals("5.0.342.9", userAgent.getVersion());
|
24
|
+
assertEquals("Macintosh", userAgent.getPlatform());
|
25
|
+
assertEquals("10_5_8", userAgent.getPlatformVersion());
|
26
|
+
assertEquals("AppleWebKit", userAgent.getEngine());
|
27
|
+
assertEquals("533.2", userAgent.getEngineVersion());
|
28
|
+
assertTrue(userAgent.isSupportingWebFont());
|
29
|
+
};
|
30
|
+
|
31
|
+
UserAgentTest.prototype.testBrowserIsSafari = function() {
|
32
|
+
var userAgentParser = new webfont.UserAgentParser(
|
33
|
+
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-us) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10");
|
34
|
+
var userAgent = userAgentParser.parse();
|
35
|
+
|
36
|
+
assertEquals("Safari", userAgent.getName());
|
37
|
+
assertEquals("4.0.4", userAgent.getVersion());
|
38
|
+
assertEquals("Macintosh", userAgent.getPlatform());
|
39
|
+
assertEquals("10_5_8", userAgent.getPlatformVersion());
|
40
|
+
assertEquals("AppleWebKit", userAgent.getEngine());
|
41
|
+
assertEquals("531.21.8", userAgent.getEngineVersion());
|
42
|
+
assertTrue(userAgent.isSupportingWebFont());
|
43
|
+
};
|
44
|
+
|
45
|
+
UserAgentTest.prototype.testBrowserIsIE = function() {
|
46
|
+
var userAgentParser = new webfont.UserAgentParser(
|
47
|
+
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)");
|
48
|
+
var userAgent = userAgentParser.parse();
|
49
|
+
|
50
|
+
assertEquals("MSIE", userAgent.getName());
|
51
|
+
assertEquals("7.0", userAgent.getVersion());
|
52
|
+
assertEquals("Windows", userAgent.getPlatform());
|
53
|
+
assertEquals("5.1", userAgent.getPlatformVersion());
|
54
|
+
assertEquals("MSIE", userAgent.getEngine());
|
55
|
+
assertEquals("7.0", userAgent.getEngineVersion());
|
56
|
+
assertTrue(userAgent.isSupportingWebFont());
|
57
|
+
};
|
58
|
+
|
59
|
+
UserAgentTest.prototype.testBrowserIsIPhone = function() {
|
60
|
+
var userAgentParser = new webfont.UserAgentParser(
|
61
|
+
"Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1_2 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7D11 Safari/528.16");
|
62
|
+
var userAgent = userAgentParser.parse();
|
63
|
+
|
64
|
+
assertEquals("Safari", userAgent.getName());
|
65
|
+
assertEquals("4.0", userAgent.getVersion());
|
66
|
+
assertEquals("iPhone", userAgent.getPlatform());
|
67
|
+
assertEquals("3_1_2", userAgent.getPlatformVersion());
|
68
|
+
assertEquals("AppleWebKit", userAgent.getEngine());
|
69
|
+
assertEquals("528.18", userAgent.getEngineVersion());
|
70
|
+
assertTrue(userAgent.isSupportingWebFont());
|
71
|
+
};
|
72
|
+
|
73
|
+
|
74
|
+
UserAgentTest.prototype.testBrowserIsAndroid = function() {
|
75
|
+
var userAgentParser = new webfont.UserAgentParser(
|
76
|
+
"Mozilla/5.0 (Linux; U; Android 2.1-update1; en-us; Nexus One Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17");
|
77
|
+
var userAgent = userAgentParser.parse();
|
78
|
+
|
79
|
+
assertEquals("Safari", userAgent.getName());
|
80
|
+
assertEquals("4.0", userAgent.getVersion());
|
81
|
+
assertEquals("Android", userAgent.getPlatform());
|
82
|
+
assertEquals("2.1-update1", userAgent.getPlatformVersion());
|
83
|
+
assertEquals("AppleWebKit", userAgent.getEngine());
|
84
|
+
assertEquals("530.17", userAgent.getEngineVersion());
|
85
|
+
assertTrue(userAgent.isSupportingWebFont());
|
86
|
+
};
|
87
|
+
|
88
|
+
UserAgentTest.prototype.testBrowserIsFirefoxLettersVersion = function() {
|
89
|
+
var userAgentParser = new webfont.UserAgentParser(
|
90
|
+
"Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.9.2a1pre) Gecko/20090405 Ubuntu/9.04 (jaunty) Firefox/3.6a1pre");
|
91
|
+
var userAgent = userAgentParser.parse();
|
92
|
+
|
93
|
+
assertEquals("Firefox", userAgent.getName());
|
94
|
+
assertEquals("3.6a1pre", userAgent.getVersion());
|
95
|
+
assertEquals("Linux", userAgent.getPlatform());
|
96
|
+
assertEquals("i686", userAgent.getPlatformVersion());
|
97
|
+
assertEquals("Gecko", userAgent.getEngine());
|
98
|
+
assertEquals("1.9.2a1pre", userAgent.getEngineVersion());
|
99
|
+
assertTrue(userAgent.isSupportingWebFont());
|
100
|
+
};
|
101
|
+
|
102
|
+
UserAgentTest.prototype.testBrowserIsFirefoxNoVersion = function() {
|
103
|
+
var userAgentParser = new webfont.UserAgentParser(
|
104
|
+
"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.19) Gecko/20081202 Firefox (Debian-2.0.0.19-0etch1)");
|
105
|
+
var userAgent = userAgentParser.parse();
|
106
|
+
|
107
|
+
assertEquals("Firefox", userAgent.getName());
|
108
|
+
assertEquals("Unknown", userAgent.getVersion());
|
109
|
+
assertEquals("Linux", userAgent.getPlatform());
|
110
|
+
assertEquals("i686", userAgent.getPlatformVersion());
|
111
|
+
assertEquals("Gecko", userAgent.getEngine());
|
112
|
+
assertEquals("1.8.1.19", userAgent.getEngineVersion());
|
113
|
+
assertFalse(userAgent.isSupportingWebFont());
|
114
|
+
};
|
115
|
+
|
116
|
+
UserAgentTest.prototype.testBrowserIsIELetterVersion = function() {
|
117
|
+
var userAgentParser = new webfont.UserAgentParser(
|
118
|
+
"Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.1; Media Center PC 3.0; .NET CLR 1.0.3705; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1)");
|
119
|
+
var userAgent = userAgentParser.parse();
|
120
|
+
|
121
|
+
assertEquals("MSIE", userAgent.getName());
|
122
|
+
assertEquals("7.0b", userAgent.getVersion());
|
123
|
+
assertEquals("Windows", userAgent.getPlatform());
|
124
|
+
assertEquals("5.1", userAgent.getPlatformVersion());
|
125
|
+
assertEquals("MSIE", userAgent.getEngine());
|
126
|
+
assertEquals("7.0b", userAgent.getEngineVersion());
|
127
|
+
assertTrue(userAgent.isSupportingWebFont());
|
128
|
+
};
|
129
|
+
|
130
|
+
UserAgentTest.prototype.testBrowserIsOpera = function() {
|
131
|
+
var userAgentParser = new webfont.UserAgentParser(
|
132
|
+
"Opera/9.80 (Linux i686; U; en) Presto/2.5.22 Version/10.51");
|
133
|
+
var userAgent = userAgentParser.parse();
|
134
|
+
|
135
|
+
assertEquals("Opera", userAgent.getName());
|
136
|
+
assertEquals("10.51", userAgent.getVersion());
|
137
|
+
assertEquals("Linux", userAgent.getPlatform());
|
138
|
+
assertEquals("i686", userAgent.getPlatformVersion());
|
139
|
+
assertEquals("Presto", userAgent.getEngine());
|
140
|
+
assertEquals("2.5.22", userAgent.getEngineVersion());
|
141
|
+
assertTrue(userAgent.isSupportingWebFont());
|
142
|
+
};
|
143
|
+
|
144
|
+
UserAgentTest.prototype.testBrowserIsOperaFirefoxInUAString = function() {
|
145
|
+
var userAgentParser = new webfont.UserAgentParser(
|
146
|
+
"Mozilla/5.0 (Linux i686 ; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.70");
|
147
|
+
var userAgent = userAgentParser.parse();
|
148
|
+
|
149
|
+
assertEquals("Opera", userAgent.getName());
|
150
|
+
assertEquals("9.70", userAgent.getVersion());
|
151
|
+
assertEquals("Linux", userAgent.getPlatform());
|
152
|
+
assertEquals("i686", userAgent.getPlatformVersion());
|
153
|
+
assertEquals("Gecko", userAgent.getEngine());
|
154
|
+
assertEquals("1.8.1", userAgent.getEngineVersion());
|
155
|
+
assertFalse(userAgent.isSupportingWebFont());
|
156
|
+
};
|
157
|
+
|
158
|
+
UserAgentTest.prototype.testBrowserIsOperaBeforeVersion10 = function() {
|
159
|
+
var userAgentParser = new webfont.UserAgentParser(
|
160
|
+
"Opera/9.64 (X11; Linux i686; U; Linux Mint; nb) Presto/2.1.1");
|
161
|
+
var userAgent = userAgentParser.parse();
|
162
|
+
|
163
|
+
assertEquals("Opera", userAgent.getName());
|
164
|
+
assertEquals("9.64", userAgent.getVersion());
|
165
|
+
assertEquals("Linux", userAgent.getPlatform());
|
166
|
+
assertEquals("i686", userAgent.getPlatformVersion());
|
167
|
+
assertEquals("Presto", userAgent.getEngine());
|
168
|
+
assertEquals("2.1.1", userAgent.getEngineVersion());
|
169
|
+
assertFalse(userAgent.isSupportingWebFont());
|
170
|
+
};
|
171
|
+
|
172
|
+
UserAgentTest.prototype.testBrowserIsIEOnMac = function() {
|
173
|
+
var userAgentParser = new webfont.UserAgentParser(
|
174
|
+
"Mozilla/4.0 (compatible; MSIE 5.23; Mac_PowerPC)");
|
175
|
+
var userAgent = userAgentParser.parse();
|
176
|
+
|
177
|
+
assertEquals("MSIE", userAgent.getName());
|
178
|
+
assertEquals("5.23", userAgent.getVersion());
|
179
|
+
assertEquals("Macintosh", userAgent.getPlatform());
|
180
|
+
assertEquals("Unknown", userAgent.getPlatformVersion());
|
181
|
+
assertEquals("MSIE", userAgent.getEngine());
|
182
|
+
assertEquals("5.23", userAgent.getEngineVersion());
|
183
|
+
assertFalse(userAgent.isSupportingWebFont());
|
184
|
+
};
|
185
|
+
|
186
|
+
UserAgentTest.prototype.testBrowserIsIPad = function() {
|
187
|
+
var userAgentParser = new webfont.UserAgentParser(
|
188
|
+
"Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10");
|
189
|
+
var userAgent = userAgentParser.parse();
|
190
|
+
|
191
|
+
assertEquals("Safari", userAgent.getName());
|
192
|
+
assertEquals("4.0.4", userAgent.getVersion());
|
193
|
+
assertEquals("iPad", userAgent.getPlatform());
|
194
|
+
assertEquals("3_2", userAgent.getPlatformVersion());
|
195
|
+
assertEquals("AppleWebKit", userAgent.getEngine());
|
196
|
+
assertEquals("531.21.10", userAgent.getEngineVersion());
|
197
|
+
assertTrue(userAgent.isSupportingWebFont());
|
198
|
+
};
|
199
|
+
|
200
|
+
UserAgentTest.prototype.testBrowserIsIPadAlt = function() {
|
201
|
+
var userAgentParser = new webfont.UserAgentParser(
|
202
|
+
"Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B360 Safari/531.21.10");
|
203
|
+
var userAgent = userAgentParser.parse();
|
204
|
+
|
205
|
+
assertEquals("Safari", userAgent.getName());
|
206
|
+
assertEquals("4.0.4", userAgent.getVersion());
|
207
|
+
assertEquals("iPad", userAgent.getPlatform());
|
208
|
+
assertEquals("3_2", userAgent.getPlatformVersion());
|
209
|
+
assertEquals("AppleWebKit", userAgent.getEngine());
|
210
|
+
assertEquals("531.21.10", userAgent.getEngineVersion());
|
211
|
+
assertTrue(userAgent.isSupportingWebFont());
|
212
|
+
};
|
213
|
+
|
214
|
+
UserAgentTest.prototype.testBrowserIsIPadWithoutIPhone = function() {
|
215
|
+
var userAgentParser = new webfont.UserAgentParser(
|
216
|
+
"Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10");
|
217
|
+
var userAgent = userAgentParser.parse();
|
218
|
+
|
219
|
+
assertEquals("Safari", userAgent.getName());
|
220
|
+
assertEquals("4.0.4", userAgent.getVersion());
|
221
|
+
assertEquals("iPad", userAgent.getPlatform());
|
222
|
+
assertEquals("3_2", userAgent.getPlatformVersion());
|
223
|
+
assertEquals("AppleWebKit", userAgent.getEngine());
|
224
|
+
assertEquals("531.21.10", userAgent.getEngineVersion());
|
225
|
+
assertTrue(userAgent.isSupportingWebFont());
|
226
|
+
};
|
227
|
+
|
228
|
+
UserAgentTest.prototype.testBrowserIsIPod = function() {
|
229
|
+
var userAgentParser = new webfont.UserAgentParser(
|
230
|
+
"Mozilla/5.0 (iPod; U; CPU iPhone OS 2_2_1 like Mac OS X; en-us) AppleWebKit/525.18.1 (KHTML, like Gecko) Mobile/5H11a");
|
231
|
+
var userAgent = userAgentParser.parse();
|
232
|
+
|
233
|
+
assertEquals("Unknown", userAgent.getName());
|
234
|
+
assertEquals("Unknown", userAgent.getVersion());
|
235
|
+
assertEquals("iPod", userAgent.getPlatform());
|
236
|
+
assertEquals("2_2_1", userAgent.getPlatformVersion());
|
237
|
+
assertEquals("AppleWebKit", userAgent.getEngine());
|
238
|
+
assertEquals("525.18.1", userAgent.getEngineVersion());
|
239
|
+
assertTrue(userAgent.isSupportingWebFont());
|
240
|
+
};
|
241
|
+
|
242
|
+
UserAgentTest.prototype.testBrowserIsIPodSafari = function() {
|
243
|
+
var userAgentParser = new webfont.UserAgentParser(
|
244
|
+
"Mozilla/5.0 (iPod; U; CPU iPhone OS 3_1 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7C144 Safari/528.16");
|
245
|
+
var userAgent = userAgentParser.parse();
|
246
|
+
|
247
|
+
assertEquals("Safari", userAgent.getName());
|
248
|
+
assertEquals("4.0", userAgent.getVersion());
|
249
|
+
assertEquals("iPod", userAgent.getPlatform());
|
250
|
+
assertEquals("3_1", userAgent.getPlatformVersion());
|
251
|
+
assertEquals("AppleWebKit", userAgent.getEngine());
|
252
|
+
assertEquals("528.18", userAgent.getEngineVersion());
|
253
|
+
assertTrue(userAgent.isSupportingWebFont());
|
254
|
+
};
|
255
|
+
|
256
|
+
UserAgentTest.prototype.testBrowserIsSafariWithPlusVersion = function() {
|
257
|
+
var userAgentParser = new webfont.UserAgentParser(
|
258
|
+
"Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_4_11; tr) AppleWebKit/528.4+ (KHTML, like Gecko) Version/4.0dp1 Safari/526.11.2");
|
259
|
+
var userAgent = userAgentParser.parse();
|
260
|
+
|
261
|
+
assertEquals("Safari", userAgent.getName());
|
262
|
+
assertEquals("4.0dp1", userAgent.getVersion());
|
263
|
+
assertEquals("Macintosh", userAgent.getPlatform());
|
264
|
+
assertEquals("10_4_11", userAgent.getPlatformVersion());
|
265
|
+
assertEquals("AppleWebKit", userAgent.getEngine());
|
266
|
+
assertEquals("528.4+", userAgent.getEngineVersion());
|
267
|
+
assertTrue(userAgent.isSupportingWebFont());
|
268
|
+
};
|
269
|
+
|
270
|
+
UserAgentTest.prototype.testBrowserIsIEWithTridentVersion = function() {
|
271
|
+
var userAgentParser = new webfont.UserAgentParser(
|
272
|
+
"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; InfoPath.2)");
|
273
|
+
var userAgent = userAgentParser.parse();
|
274
|
+
|
275
|
+
assertEquals("MSIE", userAgent.getName());
|
276
|
+
assertEquals("8.0", userAgent.getVersion());
|
277
|
+
assertEquals("Windows", userAgent.getPlatform());
|
278
|
+
assertEquals("6.1", userAgent.getPlatformVersion());
|
279
|
+
assertEquals("MSIE", userAgent.getEngine());
|
280
|
+
assertEquals("8.0", userAgent.getEngineVersion());
|
281
|
+
assertTrue(userAgent.isSupportingWebFont());
|
282
|
+
};
|
283
|
+
|
284
|
+
// Invented user agent strings
|
285
|
+
|
286
|
+
UserAgentTest.prototype.testBrowserGeckoShouldSupportWebFont = function() {
|
287
|
+
var userAgentParser = new webfont.UserAgentParser(
|
288
|
+
"Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.9.1.4) Gecko/20091016 (.NET CLR 3.5.30729)");
|
289
|
+
var userAgent = userAgentParser.parse();
|
290
|
+
|
291
|
+
assertEquals("Mozilla", userAgent.getName());
|
292
|
+
assertEquals("Unknown", userAgent.getVersion());
|
293
|
+
assertEquals("Windows", userAgent.getPlatform());
|
294
|
+
assertEquals("Gecko", userAgent.getEngine());
|
295
|
+
assertEquals("1.9.1.4", userAgent.getEngineVersion());
|
296
|
+
assertTrue(userAgent.isSupportingWebFont());
|
297
|
+
};
|
298
|
+
|
299
|
+
UserAgentTest.prototype.testBrowserGeckoNotExistingVersionShouldSupportWebFont = function() {
|
300
|
+
var userAgentParser = new webfont.UserAgentParser(
|
301
|
+
"Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:2.5.8) Gecko/20091016 (.NET CLR 3.5.30729)");
|
302
|
+
var userAgent = userAgentParser.parse();
|
303
|
+
|
304
|
+
assertEquals("Mozilla", userAgent.getName());
|
305
|
+
assertEquals("Unknown", userAgent.getVersion());
|
306
|
+
assertEquals("Windows", userAgent.getPlatform());
|
307
|
+
assertEquals("5.1", userAgent.getPlatformVersion());
|
308
|
+
assertEquals("Gecko", userAgent.getEngine());
|
309
|
+
assertEquals("2.5.8", userAgent.getEngineVersion());
|
310
|
+
assertTrue(userAgent.isSupportingWebFont());
|
311
|
+
};
|
312
|
+
|
313
|
+
UserAgentTest.prototype.testBrowserGeckoVer110ShouldSupportWebFont = function() {
|
314
|
+
var userAgentParser = new webfont.UserAgentParser(
|
315
|
+
"Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.10.1b) Gecko/20091016 (.NET CLR 3.5.30729)");
|
316
|
+
var userAgent = userAgentParser.parse();
|
317
|
+
|
318
|
+
assertEquals("Mozilla", userAgent.getName());
|
319
|
+
assertEquals("Unknown", userAgent.getVersion());
|
320
|
+
assertEquals("Windows", userAgent.getPlatform());
|
321
|
+
assertEquals("5.1", userAgent.getPlatformVersion());
|
322
|
+
assertEquals("Gecko", userAgent.getEngine());
|
323
|
+
assertEquals("1.10.1b", userAgent.getEngineVersion());
|
324
|
+
assertTrue(userAgent.isSupportingWebFont());
|
325
|
+
};
|
326
|
+
|
327
|
+
UserAgentTest.prototype.testBrowserGeckoWeirdVerShouldNotSupportWebFont = function() {
|
328
|
+
var userAgentParser = new webfont.UserAgentParser(
|
329
|
+
"Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.b) Gecko/20091016 (.NET CLR 3.5.30729)");
|
330
|
+
var userAgent = userAgentParser.parse();
|
331
|
+
|
332
|
+
assertEquals("Mozilla", userAgent.getName());
|
333
|
+
assertEquals("Unknown", userAgent.getVersion());
|
334
|
+
assertEquals("Windows", userAgent.getPlatform());
|
335
|
+
assertEquals("5.1", userAgent.getPlatformVersion());
|
336
|
+
assertEquals("Gecko", userAgent.getEngine());
|
337
|
+
assertEquals("1.b", userAgent.getEngineVersion());
|
338
|
+
assertFalse(userAgent.isSupportingWebFont());
|
339
|
+
};
|
340
|
+
|
341
|
+
UserAgentTest.prototype.testBrowserGeckoYetAnotherWeirdVerShouldNotSupportWebFont = function() {
|
342
|
+
var userAgentParser = new webfont.UserAgentParser(
|
343
|
+
"Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.b) Gecko/20091016 (.NET CLR 3.5.30729)");
|
344
|
+
var userAgent = userAgentParser.parse();
|
345
|
+
|
346
|
+
assertEquals("Mozilla", userAgent.getName());
|
347
|
+
assertEquals("Unknown", userAgent.getVersion());
|
348
|
+
assertEquals("Windows", userAgent.getPlatform());
|
349
|
+
assertEquals("5.1", userAgent.getPlatformVersion());
|
350
|
+
assertEquals("Gecko", userAgent.getEngine());
|
351
|
+
assertEquals("1.b", userAgent.getEngineVersion());
|
352
|
+
assertFalse(userAgent.isSupportingWebFont());
|
353
|
+
};
|
354
|
+
|
355
|
+
UserAgentTest.prototype.testBrowserGeckoNoSubVerShouldNotSupportWebFont = function() {
|
356
|
+
var userAgentParser = new webfont.UserAgentParser(
|
357
|
+
"Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.9) Gecko/20091016 (.NET CLR 3.5.30729)");
|
358
|
+
var userAgent = userAgentParser.parse();
|
359
|
+
|
360
|
+
assertEquals("Mozilla", userAgent.getName());
|
361
|
+
assertEquals("Unknown", userAgent.getVersion());
|
362
|
+
assertEquals("Windows", userAgent.getPlatform());
|
363
|
+
assertEquals("5.1", userAgent.getPlatformVersion());
|
364
|
+
assertEquals("Gecko", userAgent.getEngine());
|
365
|
+
assertEquals("1.9", userAgent.getEngineVersion());
|
366
|
+
assertFalse(userAgent.isSupportingWebFont());
|
367
|
+
};
|
368
|
+
|
369
|
+
UserAgentTest.prototype.testBrowserGeckoHighMinorVerShouldNotSupportWebFont = function() {
|
370
|
+
var userAgentParser = new webfont.UserAgentParser(
|
371
|
+
"Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:0.10.1) Gecko/20091016 (.NET CLR 3.5.30729)");
|
372
|
+
var userAgent = userAgentParser.parse();
|
373
|
+
|
374
|
+
assertEquals("Mozilla", userAgent.getName());
|
375
|
+
assertEquals("Unknown", userAgent.getVersion());
|
376
|
+
assertEquals("Windows", userAgent.getPlatform());
|
377
|
+
assertEquals("5.1", userAgent.getPlatformVersion());
|
378
|
+
assertEquals("Gecko", userAgent.getEngine());
|
379
|
+
assertEquals("0.10.1", userAgent.getEngineVersion());
|
380
|
+
assertFalse(userAgent.isSupportingWebFont());
|
381
|
+
};
|
382
|
+
|
383
|
+
UserAgentTest.prototype.testBrowserGeckoHighSubVerShouldNotSupportWebFont = function() {
|
384
|
+
var userAgentParser = new webfont.UserAgentParser(
|
385
|
+
"Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:0.3.42) Gecko/20091016 (.NET CLR 3.5.30729)");
|
386
|
+
var userAgent = userAgentParser.parse();
|
387
|
+
|
388
|
+
assertEquals("Mozilla", userAgent.getName());
|
389
|
+
assertEquals("Unknown", userAgent.getVersion());
|
390
|
+
assertEquals("Windows", userAgent.getPlatform());
|
391
|
+
assertEquals("5.1", userAgent.getPlatformVersion());
|
392
|
+
assertEquals("Gecko", userAgent.getEngine());
|
393
|
+
assertEquals("0.3.42", userAgent.getEngineVersion());
|
394
|
+
assertFalse(userAgent.isSupportingWebFont());
|
395
|
+
};
|
@@ -0,0 +1,30 @@
|
|
1
|
+
var CustomCssTest = TestCase('CustomCssTest');
|
2
|
+
|
3
|
+
CustomCssTest.prototype.testFoo = function() {
|
4
|
+
var links = [];
|
5
|
+
var head = '';
|
6
|
+
|
7
|
+
var fakeDomHelper = {
|
8
|
+
createCssLink: function(link) {
|
9
|
+
links.push(link);
|
10
|
+
},
|
11
|
+
insertInto: function(tag, e) {
|
12
|
+
head = tag;
|
13
|
+
}
|
14
|
+
};
|
15
|
+
var defaultModule = new webfont.CustomCss(fakeDomHelper, {
|
16
|
+
families: [ 'Font1', 'Font2', 'Font3' ], urls: [ 'http://moo',
|
17
|
+
'http://meuh' ]});
|
18
|
+
var families = null;
|
19
|
+
|
20
|
+
defaultModule.load(function(fontFamilies) { families = fontFamilies; });
|
21
|
+
assertEquals('head', head);
|
22
|
+
assertEquals(2, links.length);
|
23
|
+
assertEquals('http://moo', links[0]);
|
24
|
+
assertEquals('http://meuh', links[1]);
|
25
|
+
assertNotNull(families);
|
26
|
+
assertEquals(3, families.length);
|
27
|
+
assertEquals('Font1', families[0]);
|
28
|
+
assertEquals('Font2', families[1]);
|
29
|
+
assertEquals('Font3', families[2]);
|
30
|
+
};
|
@@ -0,0 +1,92 @@
|
|
1
|
+
var FontApiParserTest = TestCase('FontApiParserTest');
|
2
|
+
|
3
|
+
FontApiParserTest.prototype.testParsedValuesAreCoherent = function() {
|
4
|
+
var fontFamilies = [ 'Tangerine', 'Droid Serif:bi',
|
5
|
+
'Yanone Kaffeesatz:200,300,400,700',
|
6
|
+
'Cantarell:italic,b' ];
|
7
|
+
var fontApiParser = new webfont.FontApiParser(fontFamilies);
|
8
|
+
|
9
|
+
fontApiParser.parse();
|
10
|
+
var parsedFontFamilies = fontApiParser.getFontFamilies();
|
11
|
+
|
12
|
+
assertEquals(4, parsedFontFamilies.length);
|
13
|
+
assertEquals('Tangerine', parsedFontFamilies[0]);
|
14
|
+
assertEquals('Droid Serif', parsedFontFamilies[1]);
|
15
|
+
assertEquals('Yanone Kaffeesatz', parsedFontFamilies[2]);
|
16
|
+
assertEquals('Cantarell', parsedFontFamilies[3]);
|
17
|
+
var variations = fontApiParser.getVariations();
|
18
|
+
|
19
|
+
var tangerine = variations['Tangerine'];
|
20
|
+
assertNotNull(tangerine);
|
21
|
+
assertEquals(1, tangerine.length);
|
22
|
+
assertEquals('n4', tangerine[0]);
|
23
|
+
|
24
|
+
var droidSerif = variations['Droid Serif'];
|
25
|
+
assertNotNull(droidSerif);
|
26
|
+
assertEquals(1, droidSerif.length);
|
27
|
+
assertEquals('i7', droidSerif[0]);
|
28
|
+
|
29
|
+
var yanoneKaffeesatz = variations['Yanone Kaffeesatz'];
|
30
|
+
assertNotNull(yanoneKaffeesatz);
|
31
|
+
assertEquals(4, yanoneKaffeesatz.length);
|
32
|
+
assertEquals('n2', yanoneKaffeesatz[0]);
|
33
|
+
assertEquals('n3', yanoneKaffeesatz[1]);
|
34
|
+
assertEquals('n4', yanoneKaffeesatz[2]);
|
35
|
+
assertEquals('n7', yanoneKaffeesatz[3]);
|
36
|
+
|
37
|
+
var cantarell = variations['Cantarell'];
|
38
|
+
assertNotNull(cantarell);
|
39
|
+
assertEquals(2, cantarell.length);
|
40
|
+
assertEquals('i4', cantarell[0]);
|
41
|
+
assertEquals('n7', cantarell[1]);
|
42
|
+
};
|
43
|
+
|
44
|
+
FontApiParserTest.prototype.testMixOfNumericWeightAndStyle = function() {
|
45
|
+
var fontFamilies = [ 'Nobile:700i,b,200i,r,i700' ];
|
46
|
+
var fontApiParser = new webfont.FontApiParser(fontFamilies);
|
47
|
+
|
48
|
+
fontApiParser.parse();
|
49
|
+
var parsedFontFamilies = fontApiParser.getFontFamilies();
|
50
|
+
|
51
|
+
assertEquals(1, parsedFontFamilies.length);
|
52
|
+
assertEquals('Nobile', parsedFontFamilies[0]);
|
53
|
+
var variations = fontApiParser.getVariations();
|
54
|
+
|
55
|
+
var nobile = variations['Nobile'];
|
56
|
+
assertNotNull(nobile);
|
57
|
+
assertEquals(4, nobile.length);
|
58
|
+
assertEquals('i7', nobile[0]);
|
59
|
+
assertEquals('n7', nobile[1]);
|
60
|
+
assertEquals('i2', nobile[2]);
|
61
|
+
assertEquals('n4', nobile[3]);
|
62
|
+
};
|
63
|
+
|
64
|
+
FontApiParserTest.prototype.testTypoBildInsteadOfBold = function() {
|
65
|
+
var fontFamilies = [ 'Nobile:bild' ];
|
66
|
+
var fontApiParser = new webfont.FontApiParser(fontFamilies);
|
67
|
+
|
68
|
+
fontApiParser.parse();
|
69
|
+
|
70
|
+
var parsedFontFamilies = fontApiParser.getFontFamilies();
|
71
|
+
assertEquals(1, parsedFontFamilies.length);
|
72
|
+
assertEquals('Nobile', parsedFontFamilies[0]);
|
73
|
+
|
74
|
+
var variations = fontApiParser.getVariations();
|
75
|
+
var nobile = variations['Nobile'];
|
76
|
+
assertNull(nobile);
|
77
|
+
};
|
78
|
+
|
79
|
+
FontApiParserTest.prototype.testNonSense = function() {
|
80
|
+
var fontFamilies = [ 'Nobile:dwe,^%^%fewf,$9940@#!@#$%^&*()_+}POIBJ{}{' ];
|
81
|
+
var fontApiParser = new webfont.FontApiParser(fontFamilies);
|
82
|
+
|
83
|
+
fontApiParser.parse();
|
84
|
+
var parsedFontFamilies = fontApiParser.getFontFamilies();
|
85
|
+
|
86
|
+
assertEquals(1, parsedFontFamilies.length);
|
87
|
+
assertEquals('Nobile', parsedFontFamilies[0]);
|
88
|
+
|
89
|
+
var variations = fontApiParser.getVariations();
|
90
|
+
var nobile = variations['Nobile'];
|
91
|
+
assertNull(nobile);
|
92
|
+
};
|