browser2 1.0.0

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.
Files changed (65) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +5 -0
  3. data/.hound.yml +90 -0
  4. data/.rubocop.yml +90 -0
  5. data/.travis.yml +14 -0
  6. data/CONTRIBUTING.md +44 -0
  7. data/Gemfile +2 -0
  8. data/LICENSE +20 -0
  9. data/README.md +125 -0
  10. data/Rakefile +33 -0
  11. data/browser2.gemspec +42 -0
  12. data/config.ru +2 -0
  13. data/data/bots.json +176 -0
  14. data/data/languages.json +115 -0
  15. data/gemfiles/rails3.gemfile +4 -0
  16. data/lib/browser/action_controller.rb +20 -0
  17. data/lib/browser/data/bots.rb +5 -0
  18. data/lib/browser/data/languages.rb +5 -0
  19. data/lib/browser/data/search_engines.rb +14 -0
  20. data/lib/browser/meta/base.rb +20 -0
  21. data/lib/browser/meta/generic_browser.rb +15 -0
  22. data/lib/browser/meta/id.rb +9 -0
  23. data/lib/browser/meta/ie.rb +18 -0
  24. data/lib/browser/meta/ios.rb +9 -0
  25. data/lib/browser/meta/mobile.rb +9 -0
  26. data/lib/browser/meta/modern.rb +9 -0
  27. data/lib/browser/meta/platform.rb +9 -0
  28. data/lib/browser/meta/safari.rb +9 -0
  29. data/lib/browser/meta/webkit.rb +9 -0
  30. data/lib/browser/methods/blackberry.rb +51 -0
  31. data/lib/browser/methods/bots.rb +37 -0
  32. data/lib/browser/methods/consoles.rb +43 -0
  33. data/lib/browser/methods/devices.rb +41 -0
  34. data/lib/browser/methods/ie.rb +104 -0
  35. data/lib/browser/methods/language.rb +16 -0
  36. data/lib/browser/methods/mobile.rb +30 -0
  37. data/lib/browser/methods/platform.rb +142 -0
  38. data/lib/browser/methods/tv.rb +8 -0
  39. data/lib/browser/middleware/context/additions.rb +16 -0
  40. data/lib/browser/middleware/context/url_methods.rb +13 -0
  41. data/lib/browser/middleware/context.rb +20 -0
  42. data/lib/browser/middleware.rb +66 -0
  43. data/lib/browser/rails.rb +14 -0
  44. data/lib/browser/version.rb +8 -0
  45. data/lib/browser.rb +255 -0
  46. data/test/benchmark_test.rb +83 -0
  47. data/test/browser_test.rb +248 -0
  48. data/test/middleware_test.rb +50 -0
  49. data/test/sample_app.rb +31 -0
  50. data/test/test_helper.rb +20 -0
  51. data/test/ua.yml +122 -0
  52. data/test/unit/adobe_air_test.rb +13 -0
  53. data/test/unit/android_test.rb +93 -0
  54. data/test/unit/blackberry_test.rb +104 -0
  55. data/test/unit/bots_test.rb +116 -0
  56. data/test/unit/chrome_test.rb +56 -0
  57. data/test/unit/console_test.rb +67 -0
  58. data/test/unit/firefox_test.rb +37 -0
  59. data/test/unit/ie_test.rb +377 -0
  60. data/test/unit/ios_test.rb +139 -0
  61. data/test/unit/kindle_test.rb +37 -0
  62. data/test/unit/opera_test.rb +42 -0
  63. data/test/unit/windows_phone_test.rb +50 -0
  64. data/test/unit/windows_test.rb +60 -0
  65. metadata +240 -0
@@ -0,0 +1,377 @@
1
+ require "test_helper"
2
+
3
+ class IeTest < Minitest::Test
4
+ test "detects ie6" do
5
+ @browser = Browser.new ua: $ua["IE6"]
6
+
7
+ assert_equal "Internet Explorer", @browser.name
8
+ assert @browser.ie?
9
+ assert @browser.ie?(6)
10
+ refute @browser.modern?
11
+ assert_equal "6.0", @browser.full_version
12
+ assert_equal "6", @browser.version
13
+ end
14
+
15
+ test "detects ie7" do
16
+ @browser = Browser.new ua: $ua["IE7"]
17
+
18
+ assert_equal "Internet Explorer", @browser.name
19
+ assert @browser.ie?
20
+ assert @browser.ie?(7)
21
+ refute @browser.modern?
22
+ assert_equal "7.0", @browser.full_version
23
+ assert_equal "7", @browser.version
24
+ end
25
+
26
+ test "detects ie8" do
27
+ @browser = Browser.new ua: $ua["IE8"]
28
+
29
+ assert_equal "Internet Explorer", @browser.name
30
+ assert @browser.ie?
31
+ assert @browser.ie?(8)
32
+ refute @browser.modern?
33
+ refute @browser.compatibility_view?
34
+ assert_equal "8.0", @browser.full_version
35
+ assert_equal "8", @browser.version
36
+ end
37
+
38
+ test "detects ie8 in compatibility view" do
39
+ @browser = Browser.new ua: $ua["IE8_COMPAT"]
40
+
41
+ assert_equal "Internet Explorer", @browser.name
42
+ assert @browser.ie?
43
+ assert @browser.ie?(8)
44
+ refute @browser.modern?
45
+ assert @browser.compatibility_view?
46
+ assert_equal "8.0", @browser.full_version
47
+ assert_equal "8", @browser.version
48
+ assert_equal "7.0", @browser.msie_full_version
49
+ assert_equal "7", @browser.msie_version
50
+ end
51
+
52
+ test "detects ie9" do
53
+ @browser = Browser.new ua: $ua["IE9"]
54
+
55
+ assert_equal "Internet Explorer", @browser.name
56
+ assert @browser.ie?
57
+ assert @browser.ie?(9)
58
+ assert @browser.modern?
59
+ refute @browser.compatibility_view?
60
+ assert_equal "9.0", @browser.full_version
61
+ assert_equal "9", @browser.version
62
+ end
63
+
64
+ test "detects ie9 in compatibility view" do
65
+ @browser = Browser.new ua: $ua["IE9_COMPAT"]
66
+
67
+ assert_equal "Internet Explorer", @browser.name
68
+ assert @browser.ie?
69
+ assert @browser.ie?(9)
70
+ refute @browser.modern?
71
+ assert @browser.compatibility_view?
72
+ assert_equal "9.0", @browser.full_version
73
+ assert_equal "9", @browser.version
74
+ assert_equal "7.0", @browser.msie_full_version
75
+ assert_equal "7", @browser.msie_version
76
+ end
77
+
78
+ test "detects ie10" do
79
+ @browser = Browser.new ua: $ua["IE10"]
80
+
81
+ assert_equal "Internet Explorer", @browser.name
82
+ assert @browser.ie?
83
+ assert @browser.ie?(10)
84
+ assert @browser.modern?
85
+ refute @browser.compatibility_view?
86
+ assert_equal "10.0", @browser.full_version
87
+ assert_equal "10", @browser.version
88
+ end
89
+
90
+ test "detects ie10 in compatibility view" do
91
+ @browser = Browser.new ua: $ua["IE10_COMPAT"]
92
+
93
+ assert_equal "Internet Explorer", @browser.name
94
+ assert @browser.ie?
95
+ assert @browser.ie?(10)
96
+ refute @browser.modern?
97
+ assert @browser.compatibility_view?
98
+ assert_equal "10.0", @browser.full_version
99
+ assert_equal "10", @browser.version
100
+ assert_equal "7.0", @browser.msie_full_version
101
+ assert_equal "7", @browser.msie_version
102
+ end
103
+
104
+ test "detects ie11" do
105
+ @browser = Browser.new ua: $ua["IE11"]
106
+
107
+ assert_equal "Internet Explorer", @browser.name
108
+ assert @browser.ie?
109
+ assert @browser.ie?(11)
110
+ assert @browser.modern?
111
+ refute @browser.compatibility_view?
112
+ assert_equal "11.0", @browser.full_version
113
+ assert_equal "11", @browser.version
114
+ end
115
+
116
+ test "detects ie11 in compatibility view" do
117
+ @browser = Browser.new ua: $ua["IE11_COMPAT"]
118
+
119
+ assert_equal "Internet Explorer", @browser.name
120
+ assert @browser.ie?
121
+ assert @browser.ie?(11)
122
+ refute @browser.modern?
123
+ assert @browser.compatibility_view?
124
+ assert_equal "11.0", @browser.full_version
125
+ assert_equal "11", @browser.version
126
+ assert_equal "7.0", @browser.msie_full_version
127
+ assert_equal "7", @browser.msie_version
128
+ end
129
+
130
+ test "detects Lumia 800" do
131
+ @browser = Browser.new ua: $ua["LUMIA800"]
132
+
133
+ assert_equal "Internet Explorer", @browser.name
134
+ assert @browser.ie?
135
+ assert @browser.ie?(9)
136
+ assert_equal "9.0", @browser.full_version
137
+ assert_equal "9", @browser.version
138
+ refute @browser.tablet?
139
+ assert @browser.mobile?
140
+ end
141
+
142
+ test "detects ie11 touch desktop pc" do
143
+ @browser = Browser.new ua: $ua["IE11_TOUCH_SCREEN"]
144
+
145
+ assert_equal "Internet Explorer", @browser.name
146
+ assert @browser.ie?
147
+ assert @browser.ie?(11)
148
+ assert @browser.modern?
149
+ refute @browser.compatibility_view?
150
+ refute @browser.windows_rt?
151
+ assert @browser.windows_touchscreen_desktop?
152
+ assert @browser.windows8?
153
+ assert_equal "11.0", @browser.full_version
154
+ assert_equal "11", @browser.version
155
+ end
156
+
157
+ test "detects Microsoft Edge" do
158
+ @browser = Browser.new ua: $ua["MS_EDGE"]
159
+
160
+ assert_equal :edge, @browser.id
161
+ assert_equal "Microsoft Edge", @browser.name
162
+ assert_equal "12.0", @browser.full_version
163
+ assert_equal "12", @browser.version
164
+ assert @browser.windows10?
165
+ assert @browser.edge?
166
+ assert @browser.modern?
167
+ refute @browser.webkit?
168
+ refute @browser.chrome?
169
+ refute @browser.safari?
170
+ refute @browser.mobile?
171
+ end
172
+
173
+ test "detects Microsoft Edge in compatibility view" do
174
+ @browser = Browser.new ua: $ua["MS_EDGE_COMPAT"]
175
+
176
+ assert_equal :edge, @browser.id
177
+ assert_equal "Microsoft Edge", @browser.name
178
+ assert_equal "12.0", @browser.full_version
179
+ assert_equal "12", @browser.version
180
+ assert_equal "7.0", @browser.msie_full_version
181
+ assert_equal "7", @browser.msie_version
182
+ assert @browser.edge?
183
+ assert @browser.compatibility_view?
184
+ refute @browser.modern?
185
+ refute @browser.webkit?
186
+ refute @browser.chrome?
187
+ refute @browser.safari?
188
+ refute @browser.mobile?
189
+ end
190
+
191
+ test "detects Microsoft Edge Mobile" do
192
+ @browser = Browser.new ua: $ua["MS_EDGE_MOBILE"]
193
+
194
+ assert_equal :edge, @browser.id
195
+ assert_equal "Microsoft Edge", @browser.name
196
+ assert_equal "12.0", @browser.full_version
197
+ assert_equal "12", @browser.version
198
+ refute @browser.windows10?
199
+ assert @browser.windows_phone?
200
+ assert @browser.edge?
201
+ assert @browser.modern?
202
+ assert @browser.mobile?
203
+ refute @browser.webkit?
204
+ refute @browser.chrome?
205
+ refute @browser.safari?
206
+ end
207
+
208
+ test "detects IE without Trident" do
209
+ @browser = Browser.new ua: $ua["IE_WITHOUT_TRIDENT"]
210
+
211
+ assert_equal :ie, @browser.id
212
+ assert_equal "Internet Explorer", @browser.name
213
+ assert_equal "0.0", @browser.msie_full_version
214
+ assert_equal "0", @browser.msie_version
215
+ assert_equal "0.0", @browser.full_version
216
+ assert_equal "0", @browser.version
217
+ refute @browser.windows10?
218
+ refute @browser.windows_phone?
219
+ refute @browser.edge?
220
+ refute @browser.modern?
221
+ refute @browser.mobile?
222
+ refute @browser.webkit?
223
+ refute @browser.chrome?
224
+ refute @browser.safari?
225
+ end
226
+
227
+ test "detects windows phone" do
228
+ @browser = Browser.new ua: $ua["WINDOWS_PHONE"]
229
+
230
+ assert @browser.ie?
231
+ assert_equal "7", @browser.version
232
+ assert @browser.mobile?
233
+ assert @browser.windows_phone?
234
+ refute @browser.windows_mobile?
235
+ refute @browser.tablet?
236
+ end
237
+
238
+ test "detects windows phone 8" do
239
+ @browser = Browser.new ua: $ua["WINDOWS_PHONE8"]
240
+
241
+ assert @browser.ie?
242
+ assert_equal "10", @browser.version
243
+ assert @browser.mobile?
244
+ assert @browser.windows_phone?
245
+ refute @browser.windows_mobile?
246
+ refute @browser.tablet?
247
+ end
248
+
249
+ test "detects windows phone 8.1" do
250
+ @browser = Browser.new ua: $ua["WINDOWS_PHONE_81"]
251
+
252
+ assert @browser.ie?
253
+ assert_equal "Internet Explorer", @browser.name
254
+ assert_equal :ie, @browser.id
255
+ assert_equal "11", @browser.version
256
+ assert_equal "11.0", @browser.full_version
257
+ assert @browser.mobile?
258
+ assert @browser.windows_phone?
259
+ refute @browser.windows_mobile?
260
+ refute @browser.tablet?
261
+ end
262
+
263
+ test "detects windows mobile (windows phone 8)" do
264
+ @browser = Browser.new ua: $ua["WINDOWS_PHONE8"]
265
+
266
+ assert @browser.ie?
267
+ assert_equal "10", @browser.version
268
+ assert @browser.mobile?
269
+ assert @browser.windows_phone?
270
+ refute @browser.windows_mobile?
271
+ refute @browser.tablet?
272
+ end
273
+
274
+ test "detects windows x64" do
275
+ @browser = Browser.new ua: $ua["IE10_X64_WINX64"]
276
+ assert @browser.windows_x64?
277
+ refute @browser.windows_wow64?
278
+ assert @browser.windows_x64_inclusive?
279
+ end
280
+
281
+ test "detects windows wow64" do
282
+ @browser = Browser.new ua: $ua["WINDOWS_WOW64"]
283
+ refute @browser.windows_x64?
284
+ assert @browser.windows_wow64?
285
+ assert @browser.windows_x64_inclusive?
286
+ end
287
+
288
+ test "detects windows platform" do
289
+ @browser = Browser.new ua: "Windows"
290
+ assert_equal :windows, @browser.platform
291
+ assert @browser.windows?
292
+ end
293
+
294
+ test "detects windows_xp" do
295
+ @browser = Browser.new ua: $ua["WINDOWS_XP"]
296
+
297
+ assert @browser.windows?
298
+ assert @browser.windows_xp?
299
+ end
300
+
301
+ test "detects windows_vista" do
302
+ @browser = Browser.new ua: $ua["WINDOWS_VISTA"]
303
+
304
+ assert @browser.windows?
305
+ assert @browser.windows_vista?
306
+ end
307
+
308
+ test "detects windows7" do
309
+ @browser = Browser.new ua: $ua["WINDOWS7"]
310
+
311
+ assert @browser.windows?
312
+ assert @browser.windows7?
313
+ end
314
+
315
+ test "detects windows8" do
316
+ @browser = Browser.new ua: $ua["WINDOWS8"]
317
+
318
+ assert @browser.windows?
319
+ assert @browser.windows8?
320
+ refute @browser.windows8_1?
321
+ end
322
+
323
+ test "detects windows8.1" do
324
+ @browser = Browser.new ua: $ua["WINDOWS81"]
325
+
326
+ assert @browser.windows?
327
+ assert @browser.windows8?
328
+ assert @browser.windows8_1?
329
+ end
330
+
331
+ test "returns string representation for ie6" do
332
+ @browser = Browser.new ua: $ua["IE6"]
333
+ meta = @browser.meta
334
+
335
+ assert meta.include?("ie")
336
+ assert meta.include?("ie6")
337
+ assert meta.include?("oldie")
338
+ assert meta.include?("lt-ie8")
339
+ assert meta.include?("lt-ie9")
340
+ assert meta.include?("windows")
341
+ end
342
+
343
+ test "returns string representation for ie7" do
344
+ @browser = Browser.new ua: $ua["IE7"]
345
+ meta = @browser.meta
346
+
347
+ assert meta.include?("ie")
348
+ assert meta.include?("ie7")
349
+ assert meta.include?("oldie")
350
+ assert meta.include?("lt-ie8")
351
+ assert meta.include?("lt-ie9")
352
+ assert meta.include?("windows")
353
+ end
354
+
355
+ test "returns string representation for ie8" do
356
+ @browser = Browser.new ua: $ua["IE8"]
357
+ meta = @browser.meta
358
+
359
+ assert meta.include?("ie")
360
+ assert meta.include?("ie8")
361
+ assert meta.include?("lt-ie9")
362
+ assert meta.include?("windows")
363
+ end
364
+
365
+ test "warn about deprecated numbered version" do
366
+ @browser = Browser.new ua: $ua["IE6"]
367
+
368
+ message = "Browser#ie6? is deprecated; use Browser#ie?(version) instead"
369
+ assert_deprecated(message, __FILE__, __LINE__) { @browser.ie6? }
370
+ end
371
+
372
+ test "don't detect as two different versions" do
373
+ @browser = Browser.new ua: $ua["IE8"]
374
+ assert @browser.ie?(8)
375
+ refute @browser.ie?(7)
376
+ end
377
+ end
@@ -0,0 +1,139 @@
1
+ require "test_helper"
2
+
3
+ class IosTest < Minitest::Test
4
+ test "detects iphone" do
5
+ @browser = Browser.new ua: $ua["IPHONE"]
6
+
7
+ assert_equal "iPhone", @browser.name
8
+ assert @browser.iphone?
9
+ assert @browser.safari?
10
+ assert @browser.webkit?
11
+ assert @browser.mobile?
12
+ assert @browser.modern?
13
+ assert @browser.ios?
14
+ refute @browser.tablet?
15
+ refute @browser.mac?
16
+ assert_equal "3.0", @browser.full_version
17
+ assert_equal "3", @browser.version
18
+ end
19
+
20
+ test "detects safari" do
21
+ @browser = Browser.new ua: $ua["SAFARI"]
22
+
23
+ assert_equal "Safari", @browser.name
24
+ assert @browser.safari?
25
+ assert @browser.webkit?
26
+ assert @browser.modern?
27
+ assert_equal "5.0.1", @browser.full_version
28
+ assert_equal "5", @browser.version
29
+ end
30
+
31
+ test "detects safari in webapp mode" do
32
+ @browser = Browser.new ua: $ua["SAFARI_IPAD_WEBAPP_MODE"]
33
+ assert @browser.safari?
34
+
35
+ @browser = Browser.new ua: $ua["SAFARI_IPHONE_WEBAPP_MODE"]
36
+ assert @browser.safari?
37
+ end
38
+
39
+ test "detects ipod" do
40
+ @browser = Browser.new ua: $ua["IPOD"]
41
+
42
+ assert_equal "iPod Touch", @browser.name
43
+ assert @browser.ipod?
44
+ assert @browser.safari?
45
+ assert @browser.webkit?
46
+ assert @browser.mobile?
47
+ assert @browser.modern?
48
+ assert @browser.ios?
49
+ refute @browser.tablet?
50
+ refute @browser.mac?
51
+ assert_equal "3.0", @browser.full_version
52
+ assert_equal "3", @browser.version
53
+ end
54
+
55
+ test "detects ipad" do
56
+ @browser = Browser.new ua: $ua["IPAD"]
57
+
58
+ assert_equal "iPad", @browser.name
59
+ assert @browser.ipad?
60
+ assert @browser.safari?
61
+ assert @browser.webkit?
62
+ assert @browser.modern?
63
+ assert @browser.ios?
64
+ assert @browser.tablet?
65
+ refute @browser.mobile?
66
+ refute @browser.mac?
67
+ assert_equal "4.0.4", @browser.full_version
68
+ assert_equal "4", @browser.version
69
+ end
70
+
71
+ test "detects ios4" do
72
+ @browser = Browser.new ua: $ua["IOS4"]
73
+ assert @browser.ios?
74
+ assert @browser.ios?(4)
75
+ refute @browser.mac?
76
+ end
77
+
78
+
79
+ test "detects ios5" do
80
+ @browser = Browser.new ua: $ua["IOS5"]
81
+ assert @browser.ios?
82
+ assert @browser.ios?(5)
83
+ refute @browser.mac?
84
+ end
85
+
86
+ test "detects ios6" do
87
+ @browser = Browser.new ua: $ua["IOS6"]
88
+ assert @browser.ios?
89
+ assert @browser.ios?(6)
90
+ refute @browser.mac?
91
+ end
92
+
93
+ test "detects ios7" do
94
+ @browser = Browser.new ua: $ua["IOS7"]
95
+ assert @browser.ios?
96
+ assert @browser.ios?(7)
97
+ refute @browser.mac?
98
+ end
99
+
100
+ test "detects ios8" do
101
+ @browser = Browser.new ua: $ua["IOS8"]
102
+ assert @browser.ios?
103
+ assert @browser.ios?(8)
104
+ refute @browser.mac?
105
+ end
106
+
107
+ test "detects ios9" do
108
+ @browser = Browser.new ua: $ua["IOS9"]
109
+ assert @browser.ios?
110
+ assert @browser.ios?(9)
111
+ refute @browser.mac?
112
+ end
113
+
114
+ test "don't detect as two different versions" do
115
+ @browser = Browser.new ua: $ua["IOS8"]
116
+ assert @browser.ios?(8)
117
+ refute @browser.ios?(7)
118
+ end
119
+
120
+ test "warn about deprecated numbered version" do
121
+ @browser = Browser.new ua: $ua["IOS8"]
122
+
123
+ message = "Browser#ios8? is deprecated; use Browser#ios?(version) instead"
124
+ assert_deprecated(message, __FILE__, __LINE__) { @browser.ios8? }
125
+ end
126
+
127
+ test "returns string representation for ios" do
128
+ @browser = Browser.new ua: $ua["IPHONE"]
129
+ meta = @browser.to_s
130
+
131
+ assert meta.include?("iphone")
132
+ assert meta.include?("webkit")
133
+ assert meta.include?("ios")
134
+ assert meta.include?("safari")
135
+ assert meta.include?("safari3")
136
+ assert meta.include?("modern")
137
+ assert meta.include?("mobile")
138
+ end
139
+ end
@@ -0,0 +1,37 @@
1
+ require "test_helper"
2
+
3
+ class KindleTest < Minitest::Test
4
+ test "detects kindle monochrome" do
5
+ @browser = Browser.new ua: $ua["KINDLE"]
6
+
7
+ assert @browser.kindle?
8
+ assert @browser.webkit?
9
+ end
10
+
11
+ test "detects kindle fire" do
12
+ @browser = Browser.new ua: $ua["KINDLE_FIRE"]
13
+
14
+ assert @browser.kindle?
15
+ assert @browser.webkit?
16
+ end
17
+
18
+ test "detects kindle fire hd" do
19
+ @browser = Browser.new ua: $ua["KINDLE_FIRE_HD"]
20
+
21
+ assert @browser.silk?
22
+ assert @browser.kindle?
23
+ assert @browser.webkit?
24
+ assert @browser.modern?
25
+ refute @browser.mobile?
26
+ end
27
+
28
+ test "detects kindle fire hd mobile" do
29
+ @browser = Browser.new ua: $ua["KINDLE_FIRE_HD_MOBILE"]
30
+
31
+ assert @browser.silk?
32
+ assert @browser.kindle?
33
+ assert @browser.webkit?
34
+ assert @browser.modern?
35
+ assert @browser.mobile?
36
+ end
37
+ end
@@ -0,0 +1,42 @@
1
+ require "test_helper"
2
+
3
+ class OperaTest < Minitest::Test
4
+ test "detects opera" do
5
+ @browser = Browser.new ua: $ua["OPERA"]
6
+
7
+ assert_equal "Opera", @browser.name
8
+ assert @browser.opera?
9
+ refute @browser.modern?
10
+ assert_equal "11.64", @browser.full_version
11
+ assert_equal "11", @browser.version
12
+ end
13
+
14
+ test "detects opera next" do
15
+ @browser = Browser.new ua: $ua["OPERA_NEXT"]
16
+
17
+ assert_equal "Opera", @browser.name
18
+ assert_equal :opera, @browser.id
19
+ assert @browser.opera?
20
+ assert @browser.webkit?
21
+ assert @browser.modern?
22
+ refute @browser.chrome?
23
+ assert_equal "15.0.1147.44", @browser.full_version
24
+ assert_equal "15", @browser.version
25
+ end
26
+
27
+ test "detects opera mini" do
28
+ @browser = Browser.new ua: $ua["OPERA_MINI"]
29
+
30
+ assert @browser.opera_mini?
31
+ refute @browser.tablet?
32
+ assert @browser.mobile?
33
+ end
34
+
35
+ test "detects opera mobi" do
36
+ @browser = Browser.new ua: $ua["OPERA_MOBI"]
37
+
38
+ assert @browser.opera?
39
+ refute @browser.tablet?
40
+ assert @browser.mobile?
41
+ end
42
+ end
@@ -0,0 +1,50 @@
1
+ require "test_helper"
2
+
3
+ class WindowPhoneTest < Minitest::Test
4
+ test "detects windows phone" do
5
+ @browser = Browser.new ua: $ua["WINDOWS_PHONE"]
6
+
7
+ assert @browser.ie?
8
+ assert_equal "7", @browser.version
9
+ assert @browser.mobile?
10
+ assert @browser.windows_phone?
11
+ refute @browser.windows_mobile?
12
+ refute @browser.tablet?
13
+ end
14
+
15
+ test "detects windows phone 8" do
16
+ @browser = Browser.new ua: $ua["WINDOWS_PHONE8"]
17
+
18
+ assert @browser.ie?
19
+ assert_equal "10", @browser.version
20
+ assert @browser.mobile?
21
+ assert @browser.windows_phone?
22
+ refute @browser.windows_mobile?
23
+ refute @browser.tablet?
24
+ end
25
+
26
+ test "detects windows phone 8.1" do
27
+ @browser = Browser.new ua: $ua["WINDOWS_PHONE_81"]
28
+
29
+ assert @browser.ie?
30
+ assert_equal "Internet Explorer", @browser.name
31
+ assert_equal :ie, @browser.id
32
+ assert_equal "11", @browser.version
33
+ assert_equal "11.0", @browser.full_version
34
+ assert @browser.mobile?
35
+ assert @browser.windows_phone?
36
+ refute @browser.windows_mobile?
37
+ refute @browser.tablet?
38
+ end
39
+
40
+ test "detects windows mobile (windows phone 8)" do
41
+ @browser = Browser.new ua: $ua["WINDOWS_PHONE8"]
42
+
43
+ assert @browser.ie?
44
+ assert_equal "10", @browser.version
45
+ assert @browser.mobile?
46
+ assert @browser.windows_phone?
47
+ refute @browser.windows_mobile?
48
+ refute @browser.tablet?
49
+ end
50
+ end
@@ -0,0 +1,60 @@
1
+ require "test_helper"
2
+
3
+ class WindowsTest < Minitest::Test
4
+ test "detects windows x64" do
5
+ @browser = Browser.new ua: $ua["IE10_X64_WINX64"]
6
+ assert @browser.windows_x64?
7
+ refute @browser.windows_wow64?
8
+ assert @browser.windows_x64_inclusive?
9
+ end
10
+
11
+ test "detects windows wow64" do
12
+ @browser = Browser.new ua: $ua["WINDOWS_WOW64"]
13
+ refute @browser.windows_x64?
14
+ assert @browser.windows_wow64?
15
+ assert @browser.windows_x64_inclusive?
16
+ end
17
+
18
+ test "detects windows platform" do
19
+ @browser = Browser.new ua: "Windows"
20
+ assert_equal :windows, @browser.platform
21
+ assert @browser.windows?
22
+ end
23
+
24
+ test "detects windows_xp" do
25
+ @browser = Browser.new ua: $ua["WINDOWS_XP"]
26
+
27
+ assert @browser.windows?
28
+ assert @browser.windows_xp?
29
+ end
30
+
31
+ test "detects windows_vista" do
32
+ @browser = Browser.new ua: $ua["WINDOWS_VISTA"]
33
+
34
+ assert @browser.windows?
35
+ assert @browser.windows_vista?
36
+ end
37
+
38
+ test "detects windows7" do
39
+ @browser = Browser.new ua: $ua["WINDOWS7"]
40
+
41
+ assert @browser.windows?
42
+ assert @browser.windows7?
43
+ end
44
+
45
+ test "detects windows8" do
46
+ @browser = Browser.new ua: $ua["WINDOWS8"]
47
+
48
+ assert @browser.windows?
49
+ assert @browser.windows8?
50
+ refute @browser.windows8_1?
51
+ end
52
+
53
+ test "detects windows8.1" do
54
+ @browser = Browser.new ua: $ua["WINDOWS81"]
55
+
56
+ assert @browser.windows?
57
+ assert @browser.windows8?
58
+ assert @browser.windows8_1?
59
+ end
60
+ end