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.
- checksums.yaml +7 -0
- data/.gitignore +5 -0
- data/.hound.yml +90 -0
- data/.rubocop.yml +90 -0
- data/.travis.yml +14 -0
- data/CONTRIBUTING.md +44 -0
- data/Gemfile +2 -0
- data/LICENSE +20 -0
- data/README.md +125 -0
- data/Rakefile +33 -0
- data/browser2.gemspec +42 -0
- data/config.ru +2 -0
- data/data/bots.json +176 -0
- data/data/languages.json +115 -0
- data/gemfiles/rails3.gemfile +4 -0
- data/lib/browser/action_controller.rb +20 -0
- data/lib/browser/data/bots.rb +5 -0
- data/lib/browser/data/languages.rb +5 -0
- data/lib/browser/data/search_engines.rb +14 -0
- data/lib/browser/meta/base.rb +20 -0
- data/lib/browser/meta/generic_browser.rb +15 -0
- data/lib/browser/meta/id.rb +9 -0
- data/lib/browser/meta/ie.rb +18 -0
- data/lib/browser/meta/ios.rb +9 -0
- data/lib/browser/meta/mobile.rb +9 -0
- data/lib/browser/meta/modern.rb +9 -0
- data/lib/browser/meta/platform.rb +9 -0
- data/lib/browser/meta/safari.rb +9 -0
- data/lib/browser/meta/webkit.rb +9 -0
- data/lib/browser/methods/blackberry.rb +51 -0
- data/lib/browser/methods/bots.rb +37 -0
- data/lib/browser/methods/consoles.rb +43 -0
- data/lib/browser/methods/devices.rb +41 -0
- data/lib/browser/methods/ie.rb +104 -0
- data/lib/browser/methods/language.rb +16 -0
- data/lib/browser/methods/mobile.rb +30 -0
- data/lib/browser/methods/platform.rb +142 -0
- data/lib/browser/methods/tv.rb +8 -0
- data/lib/browser/middleware/context/additions.rb +16 -0
- data/lib/browser/middleware/context/url_methods.rb +13 -0
- data/lib/browser/middleware/context.rb +20 -0
- data/lib/browser/middleware.rb +66 -0
- data/lib/browser/rails.rb +14 -0
- data/lib/browser/version.rb +8 -0
- data/lib/browser.rb +255 -0
- data/test/benchmark_test.rb +83 -0
- data/test/browser_test.rb +248 -0
- data/test/middleware_test.rb +50 -0
- data/test/sample_app.rb +31 -0
- data/test/test_helper.rb +20 -0
- data/test/ua.yml +122 -0
- data/test/unit/adobe_air_test.rb +13 -0
- data/test/unit/android_test.rb +93 -0
- data/test/unit/blackberry_test.rb +104 -0
- data/test/unit/bots_test.rb +116 -0
- data/test/unit/chrome_test.rb +56 -0
- data/test/unit/console_test.rb +67 -0
- data/test/unit/firefox_test.rb +37 -0
- data/test/unit/ie_test.rb +377 -0
- data/test/unit/ios_test.rb +139 -0
- data/test/unit/kindle_test.rb +37 -0
- data/test/unit/opera_test.rb +42 -0
- data/test/unit/windows_phone_test.rb +50 -0
- data/test/unit/windows_test.rb +60 -0
- 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
|