webfontloader 1.4.6 → 1.4.7

Sign up to get free protection for your applications and to get access to all the features.
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