webfontloader 1.4.6 → 1.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/CHANGELOG CHANGED
@@ -1,3 +1,7 @@
1
+ v1.4.7 (June 6, 2013)
2
+ * Fix backwards compatibility with version strings for Chrome
3
+ * Restore specs that test against version strings for backwards compatibility with the old UserAgent API.
4
+
1
5
  v1.4.6 (May 29, 2013)
2
6
  * Merge font watching strategies from core and the Google module
3
7
  * Add support for the Samsung Galaxy S4 user agent string
data/lib/webfontloader.rb CHANGED
@@ -3,7 +3,7 @@ require 'yaml'
3
3
  require 'webfontloader/modules'
4
4
 
5
5
  module WebFontLoader
6
- VERSION = '1.4.6'
6
+ VERSION = '1.4.7'
7
7
 
8
8
  ProjectRoot = File.expand_path(File.dirname(__FILE__) + "/..")
9
9
 
@@ -19,8 +19,13 @@ describe('UserAgentParser', function () {
19
19
  return false;
20
20
  }
21
21
 
22
- if (actual.getParsedVersion().ne(expected.version)) {
23
- this.message = msg('version', actual.getParsedVersion(), expected.version);
22
+ if (actual.getParsedVersion().ne(expected.parsedVersion)) {
23
+ this.message = msg('parsed version', actual.getParsedVersion(), expected.parsedVersion);
24
+ return false;
25
+ }
26
+
27
+ if (actual.getVersion() !== expected.version) {
28
+ this.message = msg('version', actual.getVersion(), expected.version);
24
29
  return false;
25
30
  }
26
31
 
@@ -29,8 +34,13 @@ describe('UserAgentParser', function () {
29
34
  return false;
30
35
  }
31
36
 
32
- if (actual.getParsedPlatformVersion().ne(expected.platformVersion)) {
33
- this.message = msg('platform version', actual.getParsedPlatformVersion(), expected.platformVersion);
37
+ if (actual.getParsedPlatformVersion().ne(expected.parsedPlatformVersion)) {
38
+ this.message = msg('platform parsed version', actual.getParsedPlatformVersion(), expected.parsedPlatformVersion);
39
+ return false;
40
+ }
41
+
42
+ if (actual.getPlatformVersion() !== expected.platformVersion) {
43
+ this.message = msg('platform version', actual.getPlatformVersion(), expected.platformVersion);
34
44
  return false;
35
45
  }
36
46
 
@@ -39,8 +49,13 @@ describe('UserAgentParser', function () {
39
49
  return false;
40
50
  }
41
51
 
42
- if (actual.getParsedEngineVersion().ne(expected.engineVersion)) {
43
- this.message = msg('engine version', actual.getParsedEngineVersion(), expected.engineVersion);
52
+ if (actual.getParsedEngineVersion().ne(expected.parsedEngineVersion)) {
53
+ this.message = msg('engine parsed version', actual.getParsedEngineVersion(), expected.parsedEngineVersion);
54
+ return false;
55
+ }
56
+
57
+ if (actual.getEngineVersion() !== expected.engineVersion) {
58
+ this.message = msg('engine version', actual.getEngineVersion(), expected.engineVersion);
44
59
  return false;
45
60
  }
46
61
 
@@ -74,7 +89,7 @@ describe('UserAgentParser', function () {
74
89
  return new UserAgentParser(str, {}).getPlatformVersionString_();
75
90
  }
76
91
 
77
- it('should parse Linux versions correctly', function () {
92
+ it('should parse Linux parsedVersions correctly', function () {
78
93
  expect(parsePlatformVersion('(Linux; U; en-us; KFJWI Build/IML74K)')).toEqual('Unknown');
79
94
  expect(parsePlatformVersion('(Linux i686; U; en)')).toEqual('Unknown');
80
95
  expect(parsePlatformVersion('(X11; Linux i686; U; Linux Mint; nb)')).toEqual('Unknown');
@@ -84,7 +99,7 @@ describe('UserAgentParser', function () {
84
99
  expect(parsePlatformVersion('(X11; Linux 10.1; U; en-US)')).toEqual('10.1');
85
100
  });
86
101
 
87
- it('should parse ChromeOS versions correctly', function () {
102
+ it('should parse ChromeOS parsedVersions correctly', function () {
88
103
  expect(parsePlatformVersion('(X11; CrOS i686 1660.57.0)')).toEqual('1660.57.0');
89
104
  });
90
105
  });
@@ -99,11 +114,14 @@ describe('UserAgentParser', function () {
99
114
  expect(parse('Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en) AppleWebKit/531.9 (KHTML, like Gecko) AdobeAIR/2.5'))
100
115
  .toMatchUserAgent({
101
116
  name: 'AdobeAIR',
102
- version: new Version(2, 5),
117
+ parsedVersion: new Version(2, 5),
118
+ version: '2.5',
103
119
  platform: 'Macintosh',
104
- platformVersion: new Version(),
120
+ parsedPlatformVersion: new Version(),
121
+ platformVersion: 'Unknown',
105
122
  engine: 'AppleWebKit',
106
- engineVersion: new Version(531, 9),
123
+ parsedEngineVersion: new Version(531, 9),
124
+ engineVersion: '531.9',
107
125
  documentMode: undefined,
108
126
  browserInfo: {
109
127
  hasWebFontSupport: true,
@@ -117,11 +135,14 @@ describe('UserAgentParser', function () {
117
135
  expect(parse('Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en) AppleWebKit/531.9 (KHTML, like Gecko) AdobeAIR/2.0'))
118
136
  .toMatchUserAgent({
119
137
  name: 'AdobeAIR',
120
- version: new Version(2, 0),
138
+ parsedVersion: new Version(2, 0),
139
+ version: '2.0',
121
140
  platform: 'Macintosh',
122
- platformVersion: new Version(),
141
+ parsedPlatformVersion: new Version(),
142
+ platformVersion: 'Unknown',
123
143
  engine: 'AppleWebKit',
124
- engineVersion: new Version(531, 9),
144
+ parsedEngineVersion: new Version(531, 9),
145
+ engineVersion: '531.9',
125
146
  documentMode: undefined,
126
147
  browserInfo: {
127
148
  hasWebFontSupport: false,
@@ -137,11 +158,14 @@ describe('UserAgentParser', function () {
137
158
  expect(parse('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'))
138
159
  .toMatchUserAgent({
139
160
  name: 'Firefox',
140
- version: new Version(3, 6, 3),
161
+ parsedVersion: new Version(3, 6, 3),
162
+ version: '3.6.3',
141
163
  platform: 'Macintosh',
142
- platformVersion: new Version(10, 5),
164
+ parsedPlatformVersion: new Version(10, 5),
165
+ platformVersion: '10.5',
143
166
  engine: 'Gecko',
144
- engineVersion: new Version(1, 9, 2, 3),
167
+ parsedEngineVersion: new Version(1, 9, 2, 3),
168
+ engineVersion: '1.9.2.3',
145
169
  documentMode: undefined,
146
170
  browserInfo: {
147
171
  hasWebFontSupport: true,
@@ -153,11 +177,14 @@ describe('UserAgentParser', function () {
153
177
  expect(parse('Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.9.2a1pre) Gecko/20090405 Ubuntu/9.04 (jaunty) Firefox/3.6a1pre'))
154
178
  .toMatchUserAgent({
155
179
  name: 'Firefox',
156
- version: new Version(3, 6, null, 'a1pre'),
180
+ parsedVersion: new Version(3, 6, null, 'a1pre'),
181
+ version: '3.6a1pre',
157
182
  platform: 'Linux',
158
- platformVersion: new Version(), //'i686'
183
+ parsedPlatformVersion: new Version(), //'i686'
184
+ platformVersion: 'Unknown',
159
185
  engine: 'Gecko',
160
- engineVersion: new Version(1, 9, 2, 'a1pre'),
186
+ parsedEngineVersion: new Version(1, 9, 2, 'a1pre'),
187
+ engineVersion: '1.9.2a1pre',
161
188
  documentMode: undefined,
162
189
  browserInfo: {
163
190
  hasWebFontSupport: true,
@@ -171,11 +198,14 @@ describe('UserAgentParser', function () {
171
198
  expect(parse('Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:2.0b1) Gecko/20100630 Firefox/4.0b1'))
172
199
  .toMatchUserAgent({
173
200
  name: 'Firefox',
174
- version: new Version(4, 0, null, 'b1'),
201
+ parsedVersion: new Version(4, 0, null, 'b1'),
202
+ version: '4.0b1',
175
203
  platform: 'Macintosh',
176
- platformVersion: new Version(10, 6),
204
+ parsedPlatformVersion: new Version(10, 6),
205
+ platformVersion: '10.6',
177
206
  engine: 'Gecko',
178
- engineVersion: new Version(2, 0, 'b1'),
207
+ parsedEngineVersion: new Version(2, 0, 'b1'),
208
+ engineVersion: '2.0b1',
179
209
  documentMode: undefined,
180
210
  browserInfo: {
181
211
  hasWebFontSupport: true,
@@ -186,16 +216,19 @@ describe('UserAgentParser', function () {
186
216
  });
187
217
 
188
218
  it('should detect Firefox on Android', function () {
189
- // This useragent has been slightly doctored with versions to ensure the right
219
+ // This useragent has been slightly doctored with parsedVersions to ensure the right
190
220
  // info is coming from the right places.
191
221
  expect(parse('Mozilla/5.0 (Android; Mobile; rv:13.0) Gecko/15.0 Firefox/14.0'))
192
222
  .toMatchUserAgent({
193
223
  name: 'Firefox',
194
- version: new Version(14, 0),
224
+ parsedVersion: new Version(14, 0),
225
+ version: '14.0',
195
226
  platform: 'Android',
196
- platformVersion: new Version(),
227
+ parsedPlatformVersion: new Version(),
228
+ platformVersion: 'Unknown',
197
229
  engine: 'Gecko',
198
- engineVersion: new Version(13, 0),
230
+ parsedEngineVersion: new Version(13, 0),
231
+ engineVersion: '13.0',
199
232
  documentMode: undefined,
200
233
  browserInfo: {
201
234
  hasWebFontSupport: true,
@@ -209,11 +242,14 @@ describe('UserAgentParser', function () {
209
242
  expect(parse('Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.19) Gecko/20081202 Firefox (Debian-2.0.0.19-0etch1)'))
210
243
  .toMatchUserAgent({
211
244
  name: 'Firefox',
212
- version: new Version(),
245
+ parsedVersion: new Version(),
246
+ version: '',
213
247
  platform: 'Linux',
214
- platformVersion: new Version(), //'i686'
248
+ parsedPlatformVersion: new Version(), //'i686'
249
+ platformVersion: 'Unknown',
215
250
  engine: 'Gecko',
216
- engineVersion: new Version(1, 8, 1, 19),
251
+ parsedEngineVersion: new Version(1, 8, 1, 19),
252
+ engineVersion: '1.8.1.19',
217
253
  documentMode: undefined,
218
254
  browserInfo: {
219
255
  hasWebFontSupport: false,
@@ -229,11 +265,14 @@ describe('UserAgentParser', function () {
229
265
  expect(parse('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'))
230
266
  .toMatchUserAgent({
231
267
  name: 'Chrome',
232
- version: new Version(5, 0, 342, 9),
268
+ parsedVersion: new Version(5, 0, 342, 9),
269
+ version: '5.0.342.9',
233
270
  platform: 'Macintosh',
234
- platformVersion: new Version(10, 5, 8),
271
+ parsedPlatformVersion: new Version(10, 5, 8),
272
+ platformVersion: '10_5_8',
235
273
  engine: 'AppleWebKit',
236
- engineVersion: new Version(533, 2),
274
+ parsedEngineVersion: new Version(533, 2),
275
+ engineVersion: '533.2',
237
276
  documentMode: undefined,
238
277
  browserInfo: {
239
278
  hasWebFontSupport: true,
@@ -247,11 +286,14 @@ describe('UserAgentParser', function () {
247
286
  expect(parse('Mozilla/5.0 (X11; CrOS i686 1660.57.0) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.46 Safari/535.19'))
248
287
  .toMatchUserAgent({
249
288
  name: 'Chrome',
250
- version: new Version(18, 0, 1025, 46),
289
+ parsedVersion: new Version(18, 0, 1025, 46),
290
+ version: '18.0.1025.46',
251
291
  platform: 'CrOS',
252
- platformVersion: new Version(1660, 57, 0),
292
+ parsedPlatformVersion: new Version(1660, 57, 0),
293
+ platformVersion: '1660.57.0',
253
294
  engine: 'AppleWebKit',
254
- engineVersion: new Version(535, 19),
295
+ parsedEngineVersion: new Version(535, 19),
296
+ engineVersion: '535.19',
255
297
  documentMode: undefined,
256
298
  browserInfo: {
257
299
  hasWebFontSupport: true,
@@ -265,11 +307,14 @@ describe('UserAgentParser', function () {
265
307
  expect(parse('Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; Nexus S Build/IML74K) AppleWebKit/535.7 (KHTML, like Gecko) CrMo/16.0.912.75 Mobile Safari/535.7'))
266
308
  .toMatchUserAgent({
267
309
  name: 'Chrome',
268
- version: new Version(16, 0, 912, 75),
310
+ parsedVersion: new Version(16, 0, 912, 75),
311
+ version: '16.0.912.75',
269
312
  platform: 'Android',
270
- platformVersion: new Version(4, 0, 3),
313
+ parsedPlatformVersion: new Version(4, 0, 3),
314
+ platformVersion: '4.0.3',
271
315
  engine: 'AppleWebKit',
272
- engineVersion: new Version(535, 7),
316
+ parsedEngineVersion: new Version(535, 7),
317
+ engineVersion: '535.7',
273
318
  documentMode: undefined,
274
319
  browserInfo: {
275
320
  hasWebFontSupport: true,
@@ -281,11 +326,14 @@ describe('UserAgentParser', function () {
281
326
  expect(parse('Mozilla/5.0 (Linux; Android 4.2.2; SGH-M919 Build/JDQ39) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.169 Mobile Safari/537.22'))
282
327
  .toMatchUserAgent({
283
328
  name: 'Chrome',
284
- version: new Version(25, 0, 1364, 169),
329
+ parsedVersion: new Version(25, 0, 1364, 169),
330
+ version: '25.0.1364.169',
285
331
  platform: 'Android',
286
- platformVersion: new Version(4, 2, 2),
332
+ parsedPlatformVersion: new Version(4, 2, 2),
333
+ platformVersion: '4.2.2',
287
334
  engine: 'AppleWebKit',
288
- engineVersion: new Version(537, 22),
335
+ parsedEngineVersion: new Version(537, 22),
336
+ engineVersion: '537.22',
289
337
  documentMode: undefined,
290
338
  browserInfo: {
291
339
  hasWebFontSupport: true,
@@ -299,11 +347,14 @@ describe('UserAgentParser', function () {
299
347
  expect(parse('Mozilla/5.0 (iPad; U; CPU OS 5_1_1 like Mac OS X; en-us) AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/19.0.1084.60 Mobile/9B206 Safari/7534.48.3'))
300
348
  .toMatchUserAgent({
301
349
  name: 'Chrome',
302
- version: new Version(19, 0, 1084, 60),
350
+ parsedVersion: new Version(19, 0, 1084, 60),
351
+ version: '19.0.1084.60',
303
352
  platform: 'iPad',
304
- platformVersion: new Version(5, 1, 1),
353
+ parsedPlatformVersion: new Version(5, 1, 1),
354
+ platformVersion: '5_1_1',
305
355
  engine: 'AppleWebKit',
306
- engineVersion: new Version(534, 46, 0),
356
+ parsedEngineVersion: new Version(534, 46, 0),
357
+ engineVersion: '534.46.0',
307
358
  documentMode: undefined,
308
359
  browserInfo: {
309
360
  hasWebFontSupport: true,
@@ -317,11 +368,14 @@ describe('UserAgentParser', function () {
317
368
  expect(parse('Mozilla/5.0 (iPod; U; CPU iPhone OS 5_1_1 like Mac OS X; en-us) AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/19.0.1084.60 Mobile/9B206 Safari/7534.48.3'))
318
369
  .toMatchUserAgent({
319
370
  name: 'Chrome',
320
- version: new Version(19, 0, 1084, 60),
371
+ parsedVersion: new Version(19, 0, 1084, 60),
372
+ version: '19.0.1084.60',
321
373
  platform: 'iPod',
322
- platformVersion: new Version(5, 1, 1),
374
+ parsedPlatformVersion: new Version(5, 1, 1),
375
+ platformVersion: '5_1_1',
323
376
  engine: 'AppleWebKit',
324
- engineVersion: new Version(534, 46, 0),
377
+ parsedEngineVersion: new Version(534, 46, 0),
378
+ engineVersion: '534.46.0',
325
379
  documentMode: undefined,
326
380
  browserInfo: {
327
381
  hasWebFontSupport: true,
@@ -337,11 +391,14 @@ describe('UserAgentParser', function () {
337
391
  expect(parse('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'))
338
392
  .toMatchUserAgent({
339
393
  name: 'Safari',
340
- version: new Version(4, 0, 4),
394
+ parsedVersion: new Version(4, 0, 4),
395
+ version: '4.0.4',
341
396
  platform: 'Macintosh',
342
- platformVersion: new Version(10, 5, 8),
397
+ parsedPlatformVersion: new Version(10, 5, 8),
398
+ platformVersion: '10_5_8',
343
399
  engine: 'AppleWebKit',
344
- engineVersion: new Version(531, 21, 8),
400
+ parsedEngineVersion: new Version(531, 21, 8),
401
+ engineVersion: '531.21.8',
345
402
  documentMode: undefined,
346
403
  browserInfo: {
347
404
  hasWebFontSupport: true,
@@ -353,11 +410,14 @@ describe('UserAgentParser', function () {
353
410
  expect(parse('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'))
354
411
  .toMatchUserAgent({
355
412
  name: 'Safari',
356
- version: new Version(4, 0, null, 'dp1'),
413
+ parsedVersion: new Version(4, 0, null, 'dp1'),
414
+ version: '4.0dp1',
357
415
  platform: 'Macintosh',
358
- platformVersion: new Version(10, 4, 11),
416
+ parsedPlatformVersion: new Version(10, 4, 11),
417
+ platformVersion: '10_4_11',
359
418
  engine: 'AppleWebKit',
360
- engineVersion: new Version(528, 4),
419
+ parsedEngineVersion: new Version(528, 4),
420
+ engineVersion: '528.4+',
361
421
  documentMode: undefined,
362
422
  browserInfo: {
363
423
  hasWebFontSupport: true,
@@ -371,11 +431,14 @@ describe('UserAgentParser', function () {
371
431
  expect(parse('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'))
372
432
  .toMatchUserAgent({
373
433
  name: 'Safari',
374
- version: new Version(4, 0),
434
+ parsedVersion: new Version(4, 0),
435
+ version: '4.0',
375
436
  platform: 'iPhone',
376
- platformVersion: new Version(3, 1, 2),
437
+ parsedPlatformVersion: new Version(3, 1, 2),
438
+ platformVersion: '3_1_2',
377
439
  engine: 'AppleWebKit',
378
- engineVersion: new Version(528, 18),
440
+ parsedEngineVersion: new Version(528, 18),
441
+ engineVersion: '528.18',
379
442
  documentMode: undefined,
380
443
  browserInfo: {
381
444
  hasWebFontSupport: true,
@@ -389,11 +452,14 @@ describe('UserAgentParser', function () {
389
452
  expect(parse('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'))
390
453
  .toMatchUserAgent({
391
454
  name: 'Safari',
392
- version: new Version(4, 0, 4),
455
+ parsedVersion: new Version(4, 0, 4),
456
+ version: '4.0.4',
393
457
  platform: 'iPad',
394
- platformVersion: new Version(3, 2),
458
+ parsedPlatformVersion: new Version(3, 2),
459
+ platformVersion: '3_2',
395
460
  engine: 'AppleWebKit',
396
- engineVersion: new Version(531, 21, 10),
461
+ parsedEngineVersion: new Version(531, 21, 10),
462
+ engineVersion: '531.21.10',
397
463
  documentMode: undefined,
398
464
  browserInfo: {
399
465
  hasWebFontSupport: true,
@@ -405,11 +471,14 @@ describe('UserAgentParser', function () {
405
471
  expect(parse('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"'))
406
472
  .toMatchUserAgent({
407
473
  name: 'Safari',
408
- version: new Version(4, 0, 4),
474
+ parsedVersion: new Version(4, 0, 4),
475
+ version: '4.0.4',
409
476
  platform: 'iPad',
410
- platformVersion: new Version(3, 2),
477
+ parsedPlatformVersion: new Version(3, 2),
478
+ platformVersion: '3_2',
411
479
  engine: 'AppleWebKit',
412
- engineVersion: new Version(531, 21, 10),
480
+ parsedEngineVersion: new Version(531, 21, 10),
481
+ engineVersion: '531.21.10',
413
482
  documentMode: undefined,
414
483
  browserInfo: {
415
484
  hasWebFontSupport: true,
@@ -421,11 +490,14 @@ describe('UserAgentParser', function () {
421
490
  expect(parse('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'))
422
491
  .toMatchUserAgent({
423
492
  name: 'Safari',
424
- version: new Version(4, 0, 4),
493
+ parsedVersion: new Version(4, 0, 4),
494
+ version: '4.0.4',
425
495
  platform: 'iPad',
426
- platformVersion: new Version(3, 2),
496
+ parsedPlatformVersion: new Version(3, 2),
497
+ platformVersion: '3_2',
427
498
  engine: 'AppleWebKit',
428
- engineVersion: new Version(531, 21, 10),
499
+ parsedEngineVersion: new Version(531, 21, 10),
500
+ engineVersion: '531.21.10',
429
501
  documentMode: undefined,
430
502
  browserInfo: {
431
503
  hasWebFontSupport: true,
@@ -439,11 +511,14 @@ describe('UserAgentParser', function () {
439
511
  expect(parse('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'))
440
512
  .toMatchUserAgent({
441
513
  name: 'Unknown',
442
- version: new Version(),
514
+ parsedVersion: new Version(),
515
+ version: 'Unknown',
443
516
  platform: 'iPod',
444
- platformVersion: new Version(2, 2, 1),
517
+ parsedPlatformVersion: new Version(2, 2, 1),
518
+ platformVersion: '2_2_1',
445
519
  engine: 'AppleWebKit',
446
- engineVersion: new Version(525, 18, 1),
520
+ parsedEngineVersion: new Version(525, 18, 1),
521
+ engineVersion: '525.18.1',
447
522
  documentMode: undefined,
448
523
  browserInfo: {
449
524
  hasWebFontSupport: true,
@@ -455,11 +530,14 @@ describe('UserAgentParser', function () {
455
530
  expect(parse('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'))
456
531
  .toMatchUserAgent({
457
532
  name: 'Safari',
458
- version: new Version(4, 0),
533
+ parsedVersion: new Version(4, 0),
534
+ version: '4.0',
459
535
  platform: 'iPod',
460
- platformVersion: new Version(3, 1),
536
+ parsedPlatformVersion: new Version(3, 1),
537
+ platformVersion: '3_1',
461
538
  engine: 'AppleWebKit',
462
- engineVersion: new Version(528, 18),
539
+ parsedEngineVersion: new Version(528, 18),
540
+ engineVersion: '528.18',
463
541
  documentMode: undefined,
464
542
  browserInfo: {
465
543
  hasWebFontSupport: true,
@@ -475,11 +553,14 @@ describe('UserAgentParser', function () {
475
553
  expect(parse('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)'))
476
554
  .toMatchUserAgent({
477
555
  name: 'MSIE',
478
- version: new Version(7, 0),
556
+ parsedVersion: new Version(7, 0),
557
+ version: '7.0',
479
558
  platform: 'Windows',
480
- platformVersion: new Version(5, 1),
559
+ parsedPlatformVersion: new Version(5, 1),
560
+ platformVersion: '5.1',
481
561
  engine: 'MSIE',
482
- engineVersion: new Version(7, 0),
562
+ parsedEngineVersion: new Version(7, 0),
563
+ engineVersion: '7.0',
483
564
  documentMode: undefined,
484
565
  browserInfo: {
485
566
  hasWebFontSupport: true,
@@ -491,11 +572,14 @@ describe('UserAgentParser', function () {
491
572
  expect(parse('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)'))
492
573
  .toMatchUserAgent({
493
574
  name: 'MSIE',
494
- version: new Version(7, 0, null, 'b'),
575
+ parsedVersion: new Version(7, 0, null, 'b'),
576
+ version: '7.0b',
495
577
  platform: 'Windows',
496
- platformVersion: new Version(5, 1),
578
+ parsedPlatformVersion: new Version(5, 1),
579
+ platformVersion: '5.1',
497
580
  engine: 'MSIE',
498
- engineVersion: new Version(7, 0, null, 'b'),
581
+ parsedEngineVersion: new Version(7, 0, null, 'b'),
582
+ engineVersion: '7.0b',
499
583
  documentMode: undefined,
500
584
  browserInfo: {
501
585
  hasWebFontSupport: true,
@@ -509,11 +593,14 @@ describe('UserAgentParser', function () {
509
593
  expect(parse('Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)'))
510
594
  .toMatchUserAgent({
511
595
  name: 'MSIE',
512
- version: new Version(7, 0),
596
+ parsedVersion: new Version(7, 0),
597
+ version: '7.0',
513
598
  platform: 'Windows',
514
- platformVersion: new Version(5, 1),
599
+ parsedPlatformVersion: new Version(5, 1),
600
+ platformVersion: '5.1',
515
601
  engine: 'MSIE',
516
- engineVersion: new Version(7, 0),
602
+ parsedEngineVersion: new Version(7, 0),
603
+ engineVersion: '7.0',
517
604
  documentMode: undefined,
518
605
  browserInfo: {
519
606
  hasWebFontSupport: true,
@@ -527,11 +614,14 @@ describe('UserAgentParser', function () {
527
614
  expect(parse('Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; ARM; Touch; IEMobile/10.0; <Manufacturer>; <Device>; <Operator>)'))
528
615
  .toMatchUserAgent({
529
616
  name: 'MSIE',
530
- version: new Version(10, 0),
617
+ parsedVersion: new Version(10, 0),
618
+ version: '10.0',
531
619
  platform: 'Windows Phone',
532
- platformVersion: new Version(8, 0),
620
+ parsedPlatformVersion: new Version(8, 0),
621
+ platformVersion: '8.0',
533
622
  engine: 'MSIE',
534
- engineVersion: new Version(10, 0),
623
+ parsedEngineVersion: new Version(10, 0),
624
+ engineVersion: '10.0',
535
625
  documentMode: undefined,
536
626
  browserInfo: {
537
627
  hasWebFontSupport: true,
@@ -545,11 +635,14 @@ describe('UserAgentParser', function () {
545
635
  expect(parse('Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; SGH-i917)'))
546
636
  .toMatchUserAgent({
547
637
  name: 'MSIE',
548
- version: new Version(9, 0),
638
+ parsedVersion: new Version(9, 0),
639
+ version: '9.0',
549
640
  platform: 'Windows Phone',
550
- platformVersion: new Version(7, 5),
641
+ parsedPlatformVersion: new Version(7, 5),
642
+ platformVersion: '7.5',
551
643
  engine: 'MSIE',
552
- engineVersion: new Version(9, 0),
644
+ parsedEngineVersion: new Version(9, 0),
645
+ engineVersion: '9.0',
553
646
  documentMode: undefined,
554
647
  browserInfo: {
555
648
  hasWebFontSupport: false,
@@ -563,11 +656,14 @@ describe('UserAgentParser', function () {
563
656
  expect(parse('Mozilla/4.0 (compatible; MSIE 5.23; Mac_PowerPC)'))
564
657
  .toMatchUserAgent({
565
658
  name: 'MSIE',
566
- version: new Version(5, 23),
659
+ parsedVersion: new Version(5, 23),
660
+ version: '5.23',
567
661
  platform: 'Macintosh',
568
- platformVersion: new Version(),
662
+ parsedPlatformVersion: new Version(),
663
+ platformVersion: 'Unknown',
569
664
  engine: 'MSIE',
570
- engineVersion: new Version(5, 23),
665
+ parsedEngineVersion: new Version(5, 23),
666
+ engineVersion: '5.23',
571
667
  documentMode: undefined,
572
668
  browserInfo: {
573
669
  hasWebFontSupport: false,
@@ -577,15 +673,18 @@ describe('UserAgentParser', function () {
577
673
  });
578
674
  });
579
675
 
580
- it('should detect Internet Explorer with Trident version', function () {
676
+ it('should detect Internet Explorer with Trident parsedVersion', function () {
581
677
  expect(parse('Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; InfoPath.2)', { documentMode: 8 }))
582
678
  .toMatchUserAgent({
583
679
  name: 'MSIE',
584
- version: new Version(8, 0),
680
+ parsedVersion: new Version(8, 0),
681
+ version: '8.0',
585
682
  platform: 'Windows',
586
- platformVersion: new Version(6, 1),
683
+ parsedPlatformVersion: new Version(6, 1),
684
+ platformVersion: '6.1',
587
685
  engine: 'MSIE',
588
- engineVersion: new Version(8, 0),
686
+ parsedEngineVersion: new Version(8, 0),
687
+ engineVersion: '8.0',
589
688
  documentMode: 8,
590
689
  browserInfo: {
591
690
  hasWebFontSupport: true,
@@ -601,11 +700,14 @@ describe('UserAgentParser', function () {
601
700
  expect(parse('Mozilla/5.0 (Linux; U; Android 2.2.1; en-ca; LG-P505R Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'))
602
701
  .toMatchUserAgent({
603
702
  name: 'BuiltinBrowser',
604
- version: new Version(),
703
+ parsedVersion: new Version(),
704
+ version: 'Unknown',
605
705
  platform: 'Android',
606
- platformVersion: new Version(2, 2, 1),
706
+ parsedPlatformVersion: new Version(2, 2, 1),
707
+ platformVersion: '2.2.1',
607
708
  engine: 'AppleWebKit',
608
- engineVersion: new Version(533, 1),
709
+ parsedEngineVersion: new Version(533, 1),
710
+ engineVersion: '533.1',
609
711
  documentMode: undefined,
610
712
  browserInfo: {
611
713
  hasWebFontSupport: true,
@@ -619,11 +721,14 @@ describe('UserAgentParser', function () {
619
721
  expect(parse('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'))
620
722
  .toMatchUserAgent({
621
723
  name: 'BuiltinBrowser',
622
- version: new Version(),
724
+ parsedVersion: new Version(),
725
+ version: 'Unknown',
623
726
  platform: 'Android',
624
- platformVersion: new Version(2, 1, null, 'update1'),
727
+ parsedPlatformVersion: new Version(2, 1, null, 'update1'),
728
+ platformVersion: '2.1-update1',
625
729
  engine: 'AppleWebKit',
626
- engineVersion: new Version(530, 17),
730
+ parsedEngineVersion: new Version(530, 17),
731
+ engineVersion: '530.17',
627
732
  documentMode: undefined,
628
733
  browserInfo: {
629
734
  hasWebFontSupport: false,
@@ -637,11 +742,14 @@ describe('UserAgentParser', function () {
637
742
  expect(parse('Mozilla/5.0 (Linux; Android 4.2.2; sl-si; SAMSUNG GT-I9505 Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Version/1.0 Chrome/18.0.1025.308 Mobile Safari/535.19'))
638
743
  .toMatchUserAgent({
639
744
  name: 'Chrome',
640
- version: new Version(18, 0, 1025, 308),
745
+ parsedVersion: new Version(18, 0, 1025, 308),
746
+ version: '18.0.1025.308',
641
747
  platform: 'Android',
642
- platformVersion: new Version(4, 2, 2),
748
+ parsedPlatformVersion: new Version(4, 2, 2),
749
+ platformVersion: '4.2.2',
643
750
  engine: 'AppleWebKit',
644
- engineVersion: new Version(535, 19),
751
+ parsedEngineVersion: new Version(535, 19),
752
+ engineVersion: '535.19',
645
753
  documentMode: undefined,
646
754
  browserInfo: {
647
755
  hasWebFontSupport: true,
@@ -653,11 +761,14 @@ describe('UserAgentParser', function () {
653
761
  expect(parse('Mozilla/5.0 (Linux; Android 4.2.2; en-us; SAMSUNG SGH-M919 Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Version/1.0 Chrome/18.0.1025.308 Mobile Safari/535.19'))
654
762
  .toMatchUserAgent({
655
763
  name: 'Chrome',
656
- version: new Version(18, 0, 1025, 308),
764
+ parsedVersion: new Version(18, 0, 1025, 308),
765
+ version: '18.0.1025.308',
657
766
  platform: 'Android',
658
- platformVersion: new Version(4, 2, 2),
767
+ parsedPlatformVersion: new Version(4, 2, 2),
768
+ platformVersion: '4.2.2',
659
769
  engine: 'AppleWebKit',
660
- engineVersion: new Version(535, 19),
770
+ parsedEngineVersion: new Version(535, 19),
771
+ engineVersion: '535.19',
661
772
  documentMode: undefined,
662
773
  browserInfo: {
663
774
  hasWebFontSupport: true,
@@ -671,11 +782,14 @@ describe('UserAgentParser', function () {
671
782
  expect(parse('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.34 Safari/534.24'))
672
783
  .toMatchUserAgent({
673
784
  name: 'Chrome',
674
- version: new Version(11, 0, 696, 34),
785
+ parsedVersion: new Version(11, 0, 696, 34),
786
+ version: '11.0.696.34',
675
787
  platform: 'Linux',
676
- platformVersion: new Version(),
788
+ parsedPlatformVersion: new Version(),
789
+ platformVersion: 'Unknown',
677
790
  engine: 'AppleWebKit',
678
- engineVersion: new Version(534, 24),
791
+ parsedEngineVersion: new Version(534, 24),
792
+ engineVersion: '534.24',
679
793
  documentMode: undefined,
680
794
  browserInfo: {
681
795
  hasWebFontSupport: true,
@@ -689,11 +803,14 @@ describe('UserAgentParser', function () {
689
803
  expect(parse('Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; sdk Build/MASTER) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'))
690
804
  .toMatchUserAgent({
691
805
  name: 'BuiltinBrowser',
692
- version: new Version(),
806
+ parsedVersion: new Version(),
807
+ version: 'Unknown',
693
808
  platform: 'Android',
694
- platformVersion: new Version(4, 1, 2),
809
+ parsedPlatformVersion: new Version(4, 1, 2),
810
+ platformVersion: '4.1.2',
695
811
  engine: 'AppleWebKit',
696
- engineVersion: new Version(534, 30),
812
+ parsedEngineVersion: new Version(534, 30),
813
+ engineVersion: '534.30',
697
814
  documentMode: undefined,
698
815
  browserInfo: {
699
816
  hasWebFontSupport: true,
@@ -707,11 +824,14 @@ describe('UserAgentParser', function () {
707
824
  expect(parse('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.34 Safari/534.24'))
708
825
  .toMatchUserAgent({
709
826
  name: 'Chrome',
710
- version: new Version(11, 0, 696, 34),
827
+ parsedVersion: new Version(11, 0, 696, 34),
828
+ version: '11.0.696.34',
711
829
  platform: 'Linux',
712
- platformVersion: new Version(),
830
+ parsedPlatformVersion: new Version(),
831
+ platformVersion: 'Unknown',
713
832
  engine: 'AppleWebKit',
714
- engineVersion: new Version(534, 24),
833
+ parsedEngineVersion: new Version(534, 24),
834
+ engineVersion: '534.24',
715
835
  documentMode: undefined,
716
836
  browserInfo: {
717
837
  hasWebFontSupport: true,
@@ -725,11 +845,14 @@ describe('UserAgentParser', function () {
725
845
  expect(parse('Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; Nexus S Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'))
726
846
  .toMatchUserAgent({
727
847
  name: 'BuiltinBrowser',
728
- version: new Version(),
848
+ parsedVersion: new Version(),
849
+ version: 'Unknown',
729
850
  platform: 'Android',
730
- platformVersion: new Version(4, 1, 2),
851
+ parsedPlatformVersion: new Version(4, 1, 2),
852
+ platformVersion: '4.1.2',
731
853
  engine: 'AppleWebKit',
732
- engineVersion: new Version(534, 30),
854
+ parsedEngineVersion: new Version(534, 30),
855
+ engineVersion: '534.30',
733
856
  documentMode: undefined,
734
857
  browserInfo: {
735
858
  hasWebFontSupport: true,
@@ -743,11 +866,14 @@ describe('UserAgentParser', function () {
743
866
  expect(parse('Mozilla/5.0 (BB10; Touch) AppleWebKit/537.3+ (KHTML, like Gecko) Version/10.0.9.388 Mobile Safari/537.3+'))
744
867
  .toMatchUserAgent({
745
868
  name: 'BuiltinBrowser',
746
- version: new Version(),
869
+ parsedVersion: new Version(),
870
+ version: 'Unknown',
747
871
  platform: 'BlackBerry',
748
- platformVersion: new Version(10, 0, 9, 388),
872
+ parsedPlatformVersion: new Version(10, 0, 9, 388),
873
+ platformVersion: '10.0.9.388',
749
874
  engine: 'AppleWebKit',
750
- engineVersion: new Version(537, 3),
875
+ parsedEngineVersion: new Version(537, 3),
876
+ engineVersion: '537.3+',
751
877
  documentMode: undefined,
752
878
  browserInfo: {
753
879
  hasWebFontSupport: true,
@@ -761,11 +887,14 @@ describe('UserAgentParser', function () {
761
887
  expect(parse('Mozilla/5.0 (BlackBerry; U; BlackBerry 9900; en) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.1.0.346 Mobile Safari/534.11+'))
762
888
  .toMatchUserAgent({
763
889
  name: 'BuiltinBrowser',
764
- version: new Version(),
890
+ parsedVersion: new Version(),
891
+ version: 'Unknown',
765
892
  platform: 'BlackBerry',
766
- platformVersion: new Version(7, 1, 0, 346),
893
+ parsedPlatformVersion: new Version(7, 1, 0, 346),
894
+ platformVersion: '7.1.0.346',
767
895
  engine: 'AppleWebKit',
768
- engineVersion: new Version(534, 11),
896
+ parsedEngineVersion: new Version(534, 11),
897
+ engineVersion: '534.11+',
769
898
  documentMode: undefined,
770
899
  browserInfo: {
771
900
  hasWebFontSupport: false,
@@ -781,11 +910,14 @@ describe('UserAgentParser', function () {
781
910
  expect(parse('Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; KFOT Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Silk/2.6 Mobile Safari/535.19 Silk-Accelerated=false'))
782
911
  .toMatchUserAgent({
783
912
  name: 'Silk',
784
- version: new Version(2, 6),
913
+ parsedVersion: new Version(2, 6),
914
+ version: '2.6',
785
915
  platform: 'Android',
786
- platformVersion: new Version(4, 0, 3),
916
+ parsedPlatformVersion: new Version(4, 0, 3),
917
+ platformVersion: '4.0.3',
787
918
  engine: 'AppleWebKit',
788
- engineVersion: new Version(535, 19),
919
+ parsedEngineVersion: new Version(535, 19),
920
+ engineVersion: '535.19',
789
921
  documentMode: undefined,
790
922
  browserInfo: {
791
923
  hasWebFontSupport: true,
@@ -799,11 +931,14 @@ describe('UserAgentParser', function () {
799
931
  expect(parse('Mozilla/5.0 (Linux; U; en-us; KFOT Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Silk/2.6 Safari/535.19 Silk-Accelerated=false'))
800
932
  .toMatchUserAgent({
801
933
  name: 'Silk',
802
- version: new Version(2, 6),
934
+ parsedVersion: new Version(2, 6),
935
+ version: '2.6',
803
936
  platform: 'Linux',
804
- platformVersion: new Version(),
937
+ parsedPlatformVersion: new Version(),
938
+ platformVersion: 'Unknown',
805
939
  engine: 'AppleWebKit',
806
- engineVersion: new Version(535, 19),
940
+ parsedEngineVersion: new Version(535, 19),
941
+ engineVersion: '535.19',
807
942
  documentMode: undefined,
808
943
  browserInfo: {
809
944
  hasWebFontSupport: true,
@@ -817,11 +952,14 @@ describe('UserAgentParser', function () {
817
952
  expect(parse('Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; KFTT Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Silk/2.6 Mobile Safari/535.19 Silk-Accelerated=false'))
818
953
  .toMatchUserAgent({
819
954
  name: 'Silk',
820
- version: new Version(2, 6),
955
+ parsedVersion: new Version(2, 6),
956
+ version: '2.6',
821
957
  platform: 'Android',
822
- platformVersion: new Version(4, 0, 3),
958
+ parsedPlatformVersion: new Version(4, 0, 3),
959
+ platformVersion: '4.0.3',
823
960
  engine: 'AppleWebKit',
824
- engineVersion: new Version(535, 19),
961
+ parsedEngineVersion: new Version(535, 19),
962
+ engineVersion: '535.19',
825
963
  documentMode: undefined,
826
964
  browserInfo: {
827
965
  hasWebFontSupport: true,
@@ -835,11 +973,14 @@ describe('UserAgentParser', function () {
835
973
  expect(parse('Mozilla/5.0 (Linux; U; en-us; KFTT Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Silk/2.6 Safari/535.19 Silk-Accelerated=false'))
836
974
  .toMatchUserAgent({
837
975
  name: 'Silk',
838
- version: new Version(2, 6),
976
+ parsedVersion: new Version(2, 6),
977
+ version: '2.6',
839
978
  platform: 'Linux',
840
- platformVersion: new Version(),
979
+ parsedPlatformVersion: new Version(),
980
+ platformVersion: 'Unknown',
841
981
  engine: 'AppleWebKit',
842
- engineVersion: new Version(535, 19),
982
+ parsedEngineVersion: new Version(535, 19),
983
+ engineVersion: '535.19',
843
984
  documentMode: undefined,
844
985
  browserInfo: {
845
986
  hasWebFontSupport: true,
@@ -853,11 +994,14 @@ describe('UserAgentParser', function () {
853
994
  expect(parse('Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; KFJWI Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Silk/2.6 Mobile Safari/535.19 Silk-Accelerated=false'))
854
995
  .toMatchUserAgent({
855
996
  name: 'Silk',
856
- version: new Version(2, 6),
997
+ parsedVersion: new Version(2, 6),
998
+ version: '2.6',
857
999
  platform: 'Android',
858
- platformVersion: new Version(4, 0, 3),
1000
+ parsedPlatformVersion: new Version(4, 0, 3),
1001
+ platformVersion: '4.0.3',
859
1002
  engine: 'AppleWebKit',
860
- engineVersion: new Version(535, 19),
1003
+ parsedEngineVersion: new Version(535, 19),
1004
+ engineVersion: '535.19',
861
1005
  documentMode: undefined,
862
1006
  browserInfo: {
863
1007
  hasWebFontSupport: true,
@@ -871,11 +1015,14 @@ describe('UserAgentParser', function () {
871
1015
  expect(parse('Mozilla/5.0 (Linux; U; en-us; KFJWI Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Silk/2.6 Safari/535.19 Silk-Accelerated=false'))
872
1016
  .toMatchUserAgent({
873
1017
  name: 'Silk',
874
- version: new Version(2, 6),
1018
+ parsedVersion: new Version(2, 6),
1019
+ version: '2.6',
875
1020
  platform: 'Linux',
876
- platformVersion: new Version(),
1021
+ parsedPlatformVersion: new Version(),
1022
+ platformVersion: 'Unknown',
877
1023
  engine: 'AppleWebKit',
878
- engineVersion: new Version(535, 19),
1024
+ parsedEngineVersion: new Version(535, 19),
1025
+ engineVersion: '535.19',
879
1026
  documentMode: undefined,
880
1027
  browserInfo: {
881
1028
  hasWebFontSupport: true,
@@ -889,11 +1036,14 @@ describe('UserAgentParser', function () {
889
1036
  expect(parse('Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; KFJWA Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Silk/2.6 Mobile Safari/535.19 Silk-Accelerated=false'))
890
1037
  .toMatchUserAgent({
891
1038
  name: 'Silk',
892
- version: new Version(2, 6),
1039
+ parsedVersion: new Version(2, 6),
1040
+ version: '2.6',
893
1041
  platform: 'Android',
894
- platformVersion: new Version(4, 0, 3),
1042
+ parsedPlatformVersion: new Version(4, 0, 3),
1043
+ platformVersion: '4.0.3',
895
1044
  engine: 'AppleWebKit',
896
- engineVersion: new Version(535, 19),
1045
+ parsedEngineVersion: new Version(535, 19),
1046
+ engineVersion: '535.19',
897
1047
  documentMode: undefined,
898
1048
  browserInfo: {
899
1049
  hasWebFontSupport: true,
@@ -907,11 +1057,14 @@ describe('UserAgentParser', function () {
907
1057
  expect(parse('Mozilla/5.0 (Linux; U; en-us; KFJWA Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Silk/2.6 Safari/535.19 Silk-Accelerated=false'))
908
1058
  .toMatchUserAgent({
909
1059
  name: 'Silk',
910
- version: new Version(2, 6),
1060
+ parsedVersion: new Version(2, 6),
1061
+ version: '2.6',
911
1062
  platform: 'Linux',
912
- platformVersion: new Version(),
1063
+ parsedPlatformVersion: new Version(),
1064
+ platformVersion: 'Unknown',
913
1065
  engine: 'AppleWebKit',
914
- engineVersion: new Version(535, 19),
1066
+ parsedEngineVersion: new Version(535, 19),
1067
+ engineVersion: '535.19',
915
1068
  documentMode: undefined,
916
1069
  browserInfo: {
917
1070
  hasWebFontSupport: true,
@@ -925,11 +1078,14 @@ describe('UserAgentParser', function () {
925
1078
  expect(parse('Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Silk/1.0.22.79_10013310) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 Silk-Accelerated=false'))
926
1079
  .toMatchUserAgent({
927
1080
  name: 'Silk',
928
- version: new Version(1, 0, 22, '79_10013310'),
1081
+ parsedVersion: new Version(1, 0, 22, '79_10013310'),
1082
+ version: '1.0.22.79_10013310',
929
1083
  platform: 'Android',
930
- platformVersion: new Version(2, 3, 4),
1084
+ parsedPlatformVersion: new Version(2, 3, 4),
1085
+ platformVersion: '2.3.4',
931
1086
  engine: 'AppleWebKit',
932
- engineVersion: new Version(533, 1),
1087
+ parsedEngineVersion: new Version(533, 1),
1088
+ engineVersion: '533.1',
933
1089
  documentMode: undefined,
934
1090
  browserInfo: {
935
1091
  hasWebFontSupport: true,
@@ -943,11 +1099,14 @@ describe('UserAgentParser', function () {
943
1099
  expect(parse('Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us; Silk/1.0.22.79_10013310) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16 Silk-Accelerated=false'))
944
1100
  .toMatchUserAgent({
945
1101
  name: 'Silk',
946
- version: new Version(1, 0, 22, '79_10013310'),
1102
+ parsedVersion: new Version(1, 0, 22, '79_10013310'),
1103
+ version: '1.0.22.79_10013310',
947
1104
  platform: 'Macintosh',
948
- platformVersion: new Version(10, 6, 3),
1105
+ parsedPlatformVersion: new Version(10, 6, 3),
1106
+ platformVersion: '10_6_3',
949
1107
  engine: 'AppleWebKit',
950
- engineVersion: new Version(533, 16),
1108
+ parsedEngineVersion: new Version(533, 16),
1109
+ engineVersion: '533.16',
951
1110
  documentMode: undefined,
952
1111
  browserInfo: {
953
1112
  hasWebFontSupport: true,
@@ -963,11 +1122,14 @@ describe('UserAgentParser', function () {
963
1122
  expect(parse('Opera/9.80 (Linux i686; U; en) Presto/2.5.22 Version/10.51'))
964
1123
  .toMatchUserAgent({
965
1124
  name: 'Opera',
966
- version: new Version(10, 51),
1125
+ parsedVersion: new Version(10, 51),
1126
+ version: '10.51',
967
1127
  platform: 'Linux',
968
- platformVersion: new Version(), //'i686'
1128
+ parsedPlatformVersion: new Version(), //'i686'
1129
+ platformVersion: 'Unknown',
969
1130
  engine: 'Presto',
970
- engineVersion: new Version(2, 5, 22),
1131
+ parsedEngineVersion: new Version(2, 5, 22),
1132
+ engineVersion: '2.5.22',
971
1133
  documentMode: undefined,
972
1134
  browserInfo: {
973
1135
  hasWebFontSupport: true,
@@ -981,10 +1143,13 @@ describe('UserAgentParser', function () {
981
1143
  expect(parse('Mozilla/5.0 (Linux i686 ; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.70'))
982
1144
  .toMatchUserAgent({
983
1145
  name: 'Opera',
984
- version: new Version(9, 70),
1146
+ parsedVersion: new Version(9, 70),
1147
+ version: '9.70',
985
1148
  platform: 'Linux',
986
- platformVersion: new Version(), //'i686'
1149
+ parsedPlatformVersion: new Version(), //'i686'
1150
+ platformVersion: 'Unknown',
987
1151
  engine: 'Gecko',
1152
+ parsedEngineVersion: new Version(1, 8, 1),
988
1153
  engineVersion: '1.8.1',
989
1154
  documentMode: undefined,
990
1155
  browserInfo: {
@@ -999,11 +1164,14 @@ describe('UserAgentParser', function () {
999
1164
  expect(parse('Opera/9.64 (X11; Linux i686; U; Linux Mint; nb) Presto/2.1.1'))
1000
1165
  .toMatchUserAgent({
1001
1166
  name: 'Opera',
1002
- version: new Version(9, 64),
1167
+ parsedVersion: new Version(9, 64),
1168
+ version: '9.64',
1003
1169
  platform: 'Linux',
1004
- platformVersion: new Version(), //'i686'
1170
+ parsedPlatformVersion: new Version(), //'i686'
1171
+ platformVersion: 'Unknown',
1005
1172
  engine: 'Presto',
1006
- engineVersion: new Version(2, 1, 1),
1173
+ parsedEngineVersion: new Version(2, 1, 1),
1174
+ engineVersion: '2.1.1',
1007
1175
  documentMode: undefined,
1008
1176
  browserInfo: {
1009
1177
  hasWebFontSupport: false,
@@ -1017,11 +1185,14 @@ describe('UserAgentParser', function () {
1017
1185
  expect(parse('Opera/9.80 (Android 4.1.1; Linux; Opera Mobi/ADR-1207201819; U; en) Presto/2.10.254 Version/12.00'))
1018
1186
  .toMatchUserAgent({
1019
1187
  name: 'Opera',
1020
- version: new Version(12, 0),
1188
+ parsedVersion: new Version(12, 0),
1189
+ version: '12.00',
1021
1190
  platform: 'Android',
1022
- platformVersion: new Version(4, 1, 1),
1191
+ parsedPlatformVersion: new Version(4, 1, 1),
1192
+ platformVersion: '4.1.1',
1023
1193
  engine: 'Presto',
1024
- engineVersion: new Version(2, 10, 254),
1194
+ parsedEngineVersion: new Version(2, 10, 254),
1195
+ engineVersion: '2.10.254',
1025
1196
  documentMode: undefined,
1026
1197
  browserInfo: {
1027
1198
  hasWebFontSupport: true,
@@ -1035,11 +1206,14 @@ describe('UserAgentParser', function () {
1035
1206
  expect(parse('Opera/9.80 (Android; Opera Mini/7.0.29952/28.2144; U; en) Presto/2.8.119 Version/11.10'))
1036
1207
  .toMatchUserAgent({
1037
1208
  name: 'OperaMini',
1038
- version: new Version(7, 0, 29952),
1209
+ parsedVersion: new Version(7, 0, 29952),
1210
+ version: '7.0.29952',
1039
1211
  platform: 'Android',
1212
+ parsedPlatformVersion: new Version(),
1040
1213
  platformVersion: 'Unknown',
1041
1214
  engine: 'Presto',
1042
- engineVersion: new Version(2, 8, 119),
1215
+ parsedEngineVersion: new Version(2, 8, 119),
1216
+ engineVersion: '2.8.119',
1043
1217
  documentMode: undefined,
1044
1218
  browserInfo: {
1045
1219
  hasWebFontSupport: false,
@@ -1055,11 +1229,14 @@ describe('UserAgentParser', function () {
1055
1229
  expect(parse('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5'))
1056
1230
  .toMatchUserAgent({
1057
1231
  name: 'Chrome',
1058
- version: new Version(19, 0, 1084, 9),
1232
+ parsedVersion: new Version(19, 0, 1084, 9),
1233
+ version: '19.0.1084.9',
1059
1234
  platform: 'Linux',
1060
- platformVersion: new Version(),
1235
+ parsedPlatformVersion: new Version(),
1236
+ platformVersion: 'Unknown',
1061
1237
  engine: 'AppleWebKit',
1062
- engineVersion: new Version(536, 5),
1238
+ parsedEngineVersion: new Version(536, 5),
1239
+ engineVersion: '536.5',
1063
1240
  documentMode: undefined,
1064
1241
  browserInfo: {
1065
1242
  hasWebFontSupport: true,
@@ -1073,11 +1250,14 @@ describe('UserAgentParser', function () {
1073
1250
  expect(parse('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.814.2 Safari/536.11'))
1074
1251
  .toMatchUserAgent({
1075
1252
  name: 'Chrome',
1076
- version: new Version(20, 0, 814, 2),
1253
+ parsedVersion: new Version(20, 0, 814, 2),
1254
+ version: '20.0.814.2',
1077
1255
  platform: 'Linux',
1078
- platformVersion: new Version(),
1256
+ parsedPlatformVersion: new Version(),
1257
+ platformVersion: 'Unknown',
1079
1258
  engine: 'AppleWebKit',
1080
- engineVersion: new Version(536, 11),
1259
+ parsedEngineVersion: new Version(536, 11),
1260
+ engineVersion: '536.11',
1081
1261
  documentMode: undefined,
1082
1262
  browserInfo: {
1083
1263
  hasWebFontSupport: true,
@@ -1093,11 +1273,14 @@ describe('UserAgentParser', function () {
1093
1273
  expect(parse('Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.9.1.4) Gecko/20091016 (.NET CLR 3.5.30729)'))
1094
1274
  .toMatchUserAgent({
1095
1275
  name: 'Mozilla',
1096
- version: new Version(),
1276
+ parsedVersion: new Version(),
1277
+ version: 'Unknown',
1097
1278
  platform: 'Windows',
1098
- platformVersion: new Version(5, 1),
1279
+ parsedPlatformVersion: new Version(5, 1),
1280
+ platformVersion: '5.1',
1099
1281
  engine: 'Gecko',
1100
- engineVersion: new Version(1, 9, 1, 4),
1282
+ parsedEngineVersion: new Version(1, 9, 1, 4),
1283
+ engineVersion: '1.9.1.4',
1101
1284
  documentMode: undefined,
1102
1285
  browserInfo: {
1103
1286
  hasWebFontSupport: true,
@@ -1107,15 +1290,18 @@ describe('UserAgentParser', function () {
1107
1290
  });
1108
1291
  });
1109
1292
 
1110
- it('should detect unknown versions of Gecko as supporting web fonts', function () {
1293
+ it('should detect unknown parsedVersions of Gecko as supporting web fonts', function () {
1111
1294
  expect(parse('Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:2.5.8) Gecko/20091016 (.NET CLR 3.5.30729)'))
1112
1295
  .toMatchUserAgent({
1113
1296
  name: 'Mozilla',
1114
- version: new Version(),
1297
+ parsedVersion: new Version(),
1298
+ version: 'Unknown',
1115
1299
  platform: 'Windows',
1116
- platformVersion: new Version(5, 1),
1300
+ parsedPlatformVersion: new Version(5, 1),
1301
+ platformVersion: '5.1',
1117
1302
  engine: 'Gecko',
1118
- engineVersion: new Version(2, 5, 8),
1303
+ parsedEngineVersion: new Version(2, 5, 8),
1304
+ engineVersion: '2.5.8',
1119
1305
  documentMode: undefined,
1120
1306
  browserInfo: {
1121
1307
  hasWebFontSupport: true,
@@ -1129,11 +1315,14 @@ describe('UserAgentParser', function () {
1129
1315
  expect(parse('Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.10.1b) Gecko/20091016 (.NET CLR 3.5.30729)'))
1130
1316
  .toMatchUserAgent({
1131
1317
  name: 'Mozilla',
1132
- version: new Version(),
1318
+ parsedVersion: new Version(),
1319
+ version: 'Unknown',
1133
1320
  platform: 'Windows',
1134
- platformVersion: new Version(5, 1),
1321
+ parsedPlatformVersion: new Version(5, 1),
1322
+ platformVersion: '5.1',
1135
1323
  engine: 'Gecko',
1136
- engineVersion: new Version(1, 10, 1, 'b'),
1324
+ parsedEngineVersion: new Version(1, 10, 1, 'b'),
1325
+ engineVersion: '1.10.1b',
1137
1326
  documentMode: undefined,
1138
1327
  browserInfo: {
1139
1328
  hasWebFontSupport: true,
@@ -1143,15 +1332,18 @@ describe('UserAgentParser', function () {
1143
1332
  });
1144
1333
  });
1145
1334
 
1146
- it('should detect Gecko with an invalid version number as not supporting web fonts', function () {
1335
+ it('should detect Gecko with an invalid parsedVersion number as not supporting web fonts', function () {
1147
1336
  expect(parse('Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.b) Gecko/20091016 (.NET CLR 3.5.30729)'))
1148
1337
  .toMatchUserAgent({
1149
1338
  name: 'Mozilla',
1150
- version: new Version(),
1339
+ parsedVersion: new Version(),
1340
+ version: 'Unknown',
1151
1341
  platform: 'Windows',
1152
- platformVersion: new Version(5, 1),
1342
+ parsedPlatformVersion: new Version(5, 1),
1343
+ platformVersion: '5.1',
1153
1344
  engine: 'Gecko',
1154
- engineVersion: new Version(1, null, null, 'b'),
1345
+ parsedEngineVersion: new Version(1, null, null, 'b'),
1346
+ engineVersion: '1.b',
1155
1347
  documentMode: undefined,
1156
1348
  browserInfo: {
1157
1349
  hasWebFontSupport: false,
@@ -1163,11 +1355,14 @@ describe('UserAgentParser', function () {
1163
1355
  expect(parse('Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.b) Gecko/20091016 (.NET CLR 3.5.30729)'))
1164
1356
  .toMatchUserAgent({
1165
1357
  name: 'Mozilla',
1166
- version: new Version(),
1358
+ parsedVersion: new Version(),
1359
+ version: 'Unknown',
1167
1360
  platform: 'Windows',
1168
- platformVersion: new Version(5, 1),
1361
+ parsedPlatformVersion: new Version(5, 1),
1362
+ platformVersion: '5.1',
1169
1363
  engine: 'Gecko',
1170
- engineVersion: new Version(1, null, null, 'b'),
1364
+ parsedEngineVersion: new Version(1, null, null, 'b'),
1365
+ engineVersion: '1.b',
1171
1366
  documentMode: undefined,
1172
1367
  browserInfo: {
1173
1368
  hasWebFontSupport: false,
@@ -1179,11 +1374,14 @@ describe('UserAgentParser', function () {
1179
1374
  expect(parse('Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.9) Gecko/20091016 (.NET CLR 3.5.30729)'))
1180
1375
  .toMatchUserAgent({
1181
1376
  name: 'Mozilla',
1182
- version: new Version(),
1377
+ parsedVersion: new Version(),
1378
+ version: 'Unknown',
1183
1379
  platform: 'Windows',
1184
- platformVersion: new Version(5, 1),
1380
+ parsedPlatformVersion: new Version(5, 1),
1381
+ platformVersion: '5.1',
1185
1382
  engine: 'Gecko',
1186
- engineVersion: new Version(1, 9),
1383
+ parsedEngineVersion: new Version(1, 9),
1384
+ engineVersion: '1.9',
1187
1385
  documentMode: undefined,
1188
1386
  browserInfo: {
1189
1387
  hasWebFontSupport: false,
@@ -1195,11 +1393,14 @@ describe('UserAgentParser', function () {
1195
1393
  expect(parse('Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:0.10.1) Gecko/20091016 (.NET CLR 3.5.30729)'))
1196
1394
  .toMatchUserAgent({
1197
1395
  name: 'Mozilla',
1198
- version: new Version(),
1396
+ parsedVersion: new Version(),
1397
+ version: 'Unknown',
1199
1398
  platform: 'Windows',
1200
- platformVersion: new Version(5, 1),
1399
+ parsedPlatformVersion: new Version(5, 1),
1400
+ platformVersion: '5.1',
1201
1401
  engine: 'Gecko',
1202
- engineVersion: new Version(0, 10, 1),
1402
+ parsedEngineVersion: new Version(0, 10, 1),
1403
+ engineVersion: '0.10.1',
1203
1404
  documentMode: undefined,
1204
1405
  browserInfo: {
1205
1406
  hasWebFontSupport: false,
@@ -1211,11 +1412,14 @@ describe('UserAgentParser', function () {
1211
1412
  expect(parse('Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:0.3.42) Gecko/20091016 (.NET CLR 3.5.30729)'))
1212
1413
  .toMatchUserAgent({
1213
1414
  name: 'Mozilla',
1214
- version: new Version(),
1415
+ parsedVersion: new Version(),
1416
+ version: 'Unknown',
1215
1417
  platform: 'Windows',
1216
- platformVersion: new Version(5, 1),
1418
+ parsedPlatformVersion: new Version(5, 1),
1419
+ platformVersion: '5.1',
1217
1420
  engine: 'Gecko',
1218
- engineVersion: new Version(0, 3, 42),
1421
+ parsedEngineVersion: new Version(0, 3, 42),
1422
+ engineVersion: '0.3.42',
1219
1423
  documentMode: undefined,
1220
1424
  browserInfo: {
1221
1425
  hasWebFontSupport: false,
@@ -310,16 +310,17 @@ goog.scope(function () {
310
310
  }
311
311
 
312
312
  if (browserName == UserAgentParser.BUILTIN_BROWSER) {
313
- browserVersion = new Version();
313
+ browserVersionString = UserAgentParser.UNKNOWN;
314
314
  } else if (browserName == "Silk") {
315
- browserVersion = Version.parse(this.getMatchingGroup_(this.userAgent_, /Silk\/([\d\._]+)/, 1));
315
+ browserVersionString = this.getMatchingGroup_(this.userAgent_, /Silk\/([\d\._]+)/, 1);
316
316
  } else if (browserName == "Chrome") {
317
- browserVersion = Version.parse(this.getMatchingGroup_(this.userAgent_, /(Chrome|CrMo|CriOS)\/([\d\.]+)/, 2));
317
+ browserVersionString = this.getMatchingGroup_(this.userAgent_, /(Chrome|CrMo|CriOS)\/([\d\.]+)/, 2);
318
318
  } else if (this.userAgent_.indexOf("Version/") != -1) {
319
- browserVersion = Version.parse(this.getMatchingGroup_(this.userAgent_, /Version\/([\d\.\w]+)/, 1));
319
+ browserVersionString = this.getMatchingGroup_(this.userAgent_, /Version\/([\d\.\w]+)/, 1);
320
320
  } else if (browserName == "AdobeAIR") {
321
- browserVersion = Version.parse(this.getMatchingGroup_(this.userAgent_, /AdobeAIR\/([\d\.]+)/, 1));
321
+ browserVersionString = this.getMatchingGroup_(this.userAgent_, /AdobeAIR\/([\d\.]+)/, 1);
322
322
  }
323
+ browserVersion = Version.parse(browserVersionString);
323
324
 
324
325
  if (browserName == "AdobeAIR") {
325
326
  supportWebFont = browserVersion.major > 2 || browserVersion.major == 2 && browserVersion.minor >= 5;
@@ -13,8 +13,8 @@ Gem::Specification.new do |s|
13
13
  ## If your rubyforge_project name is different, then edit it and comment out
14
14
  ## the sub! line in the Rakefile
15
15
  s.name = 'webfontloader'
16
- s.version = '1.4.6'
17
- s.date = '2013-05-29'
16
+ s.version = '1.4.7'
17
+ s.date = '2013-06-06'
18
18
 
19
19
  ## Make sure your summary is short. The description may be as long
20
20
  ## as you like.
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webfontloader
3
3
  version: !ruby/object:Gem::Version
4
- hash: 11
4
+ hash: 9
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 4
9
- - 6
10
- version: 1.4.6
9
+ - 7
10
+ version: 1.4.7
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ryan Carver
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2013-05-29 00:00:00 Z
19
+ date: 2013-06-06 00:00:00 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  name: rake