browser 4.2.0 → 5.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +32 -1
- data/FUNDING.yml +3 -0
- data/README.md +97 -47
- data/bots.yml +1 -1
- data/lib/browser/base.rb +61 -6
- data/lib/browser/browser.rb +22 -2
- data/lib/browser/chrome.rb +7 -1
- data/lib/browser/device.rb +9 -2
- data/lib/browser/device/samsung.rb +33 -0
- data/lib/browser/device/unknown.rb +1 -1
- data/lib/browser/google_search_app.rb +21 -0
- data/lib/browser/huawei_browser.rb +21 -0
- data/lib/browser/maxthon.rb +21 -0
- data/lib/browser/miui_browser.rb +21 -0
- data/lib/browser/platform.rb +4 -4
- data/lib/browser/platform/ios.rb +1 -1
- data/lib/browser/platform/mac.rb +1 -1
- data/lib/browser/platform/{other.rb → unknown.rb} +3 -3
- data/lib/browser/platform/windows.rb +1 -1
- data/lib/browser/safari.rb +9 -1
- data/lib/browser/sougou_browser.rb +24 -0
- data/lib/browser/{generic.rb → unknown.rb} +3 -3
- data/lib/browser/version.rb +1 -1
- data/samsung.yml +138 -0
- data/test/browser_test.rb +37 -6
- data/test/ua.yml +16 -4
- data/test/unit/adobe_air_test.rb +1 -1
- data/test/unit/alipay_test.rb +6 -0
- data/test/unit/console_test.rb +2 -2
- data/test/unit/device_test.rb +29 -2
- data/test/unit/duck_duck_go_test.rb +2 -0
- data/test/unit/google_search_app_test.rb +54 -0
- data/test/unit/huawei_browser_test.rb +25 -0
- data/test/unit/maxthon_test.rb +25 -0
- data/test/unit/meta_test.rb +9 -0
- data/test/unit/miui_browser_test.rb +25 -0
- data/test/unit/opera_test.rb +1 -0
- data/test/unit/platform_test.rb +6 -6
- data/test/unit/qq_test.rb +12 -0
- data/test/unit/safari_test.rb +12 -7
- data/test/unit/sougou_browser_test.rb +41 -0
- metadata +26 -8
data/test/unit/safari_test.rb
CHANGED
@@ -7,7 +7,7 @@ class SafariTest < Minitest::Test
|
|
7
7
|
browser = Browser.new(Browser["SAFARI3"])
|
8
8
|
|
9
9
|
assert browser.safari?
|
10
|
-
assert browser.safari?(3)
|
10
|
+
assert browser.safari?("~>3.0")
|
11
11
|
assert_equal "3", browser.version
|
12
12
|
assert_equal "3.0.3", browser.full_version
|
13
13
|
end
|
@@ -16,7 +16,7 @@ class SafariTest < Minitest::Test
|
|
16
16
|
browser = Browser.new(Browser["SAFARI4"])
|
17
17
|
|
18
18
|
assert browser.safari?
|
19
|
-
assert browser.safari?(4)
|
19
|
+
assert browser.safari?("~>4.0")
|
20
20
|
assert_equal "4", browser.version
|
21
21
|
assert_equal "4.0.3", browser.full_version
|
22
22
|
end
|
@@ -25,7 +25,7 @@ class SafariTest < Minitest::Test
|
|
25
25
|
browser = Browser.new(Browser["SAFARI5"])
|
26
26
|
|
27
27
|
assert browser.safari?
|
28
|
-
assert browser.safari?(5)
|
28
|
+
assert browser.safari?("~>5.0")
|
29
29
|
assert_equal "5", browser.version
|
30
30
|
assert_equal "5.0.3", browser.full_version
|
31
31
|
end
|
@@ -34,7 +34,7 @@ class SafariTest < Minitest::Test
|
|
34
34
|
browser = Browser.new(Browser["SAFARI6"])
|
35
35
|
|
36
36
|
assert browser.safari?
|
37
|
-
assert browser.safari?(6)
|
37
|
+
assert browser.safari?("~>6.0")
|
38
38
|
assert_equal "6", browser.version
|
39
39
|
assert_equal "6.0", browser.full_version
|
40
40
|
end
|
@@ -43,7 +43,7 @@ class SafariTest < Minitest::Test
|
|
43
43
|
browser = Browser.new(Browser["SAFARI7"])
|
44
44
|
|
45
45
|
assert browser.safari?
|
46
|
-
assert browser.safari?(7)
|
46
|
+
assert browser.safari?("~>7.0")
|
47
47
|
assert_equal "7", browser.version
|
48
48
|
assert_equal "7.0", browser.full_version
|
49
49
|
end
|
@@ -52,7 +52,7 @@ class SafariTest < Minitest::Test
|
|
52
52
|
browser = Browser.new(Browser["SAFARI8"])
|
53
53
|
|
54
54
|
assert browser.safari?
|
55
|
-
assert browser.safari?(8)
|
55
|
+
assert browser.safari?("~>8.0")
|
56
56
|
assert_equal "8", browser.version
|
57
57
|
assert_equal "8.0", browser.full_version
|
58
58
|
end
|
@@ -61,7 +61,7 @@ class SafariTest < Minitest::Test
|
|
61
61
|
browser = Browser.new(Browser["SAFARI9"])
|
62
62
|
|
63
63
|
assert browser.safari?
|
64
|
-
assert browser.safari?(9)
|
64
|
+
assert browser.safari?("~>9.0")
|
65
65
|
assert_equal "9", browser.version
|
66
66
|
assert_equal "9.0.2", browser.full_version
|
67
67
|
end
|
@@ -88,4 +88,9 @@ class SafariTest < Minitest::Test
|
|
88
88
|
browser = Browser.new(Browser["SAFARI9"])
|
89
89
|
assert browser.webkit?(%w[>=601 <602])
|
90
90
|
end
|
91
|
+
|
92
|
+
test "detects safari version by range" do
|
93
|
+
browser = Browser.new(Browser["SAFARI9"])
|
94
|
+
assert browser.safari?(%w[>=9.0 <10])
|
95
|
+
end
|
91
96
|
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "test_helper"
|
4
|
+
|
5
|
+
class SougouBrowserTest < Minitest::Test
|
6
|
+
test "detects Sougou Browser on desktop device" do
|
7
|
+
browser = Browser.new(Browser["SOUGOU_BROWSER"])
|
8
|
+
assert browser.sougou_browser?
|
9
|
+
refute browser.safari?
|
10
|
+
refute browser.chrome?
|
11
|
+
assert_equal "Sougou Browser", browser.name
|
12
|
+
assert_equal :sougou_browser, browser.id
|
13
|
+
end
|
14
|
+
|
15
|
+
test "detects correct version on desktop device" do
|
16
|
+
browser = Browser.new(Browser["SOUGOU_BROWSER"])
|
17
|
+
assert_equal "0.0", browser.full_version
|
18
|
+
assert_equal "0", browser.version
|
19
|
+
end
|
20
|
+
|
21
|
+
test "detects Sougou Browser on mobile device" do
|
22
|
+
browser = Browser.new(Browser["SOUGOU_BROWSER_MOBILE"])
|
23
|
+
assert browser.sougou_browser?
|
24
|
+
assert browser.device.mobile?
|
25
|
+
refute browser.safari?
|
26
|
+
refute browser.chrome?
|
27
|
+
assert_equal "Sougou Browser", browser.name
|
28
|
+
assert_equal :sougou_browser, browser.id
|
29
|
+
end
|
30
|
+
|
31
|
+
test "detects correct version on mobile device" do
|
32
|
+
browser = Browser.new(Browser["SOUGOU_BROWSER_MOBILE"])
|
33
|
+
assert_equal "5.28.12", browser.full_version
|
34
|
+
assert_equal "5", browser.version
|
35
|
+
end
|
36
|
+
|
37
|
+
test "detects version by range on mobile device" do
|
38
|
+
browser = Browser.new(Browser["SOUGOU_BROWSER_MOBILE"])
|
39
|
+
assert browser.sougou_browser?(%w[>=5 <6])
|
40
|
+
end
|
41
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: browser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 5.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nando Vieira
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-10-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -177,6 +177,7 @@ files:
|
|
177
177
|
- ".rubocop.yml"
|
178
178
|
- ".travis.yml"
|
179
179
|
- CHANGELOG.md
|
180
|
+
- FUNDING.yml
|
180
181
|
- Gemfile
|
181
182
|
- README.md
|
182
183
|
- Rakefile
|
@@ -214,6 +215,7 @@ files:
|
|
214
215
|
- lib/browser/device/playstation4.rb
|
215
216
|
- lib/browser/device/psp.rb
|
216
217
|
- lib/browser/device/psvita.rb
|
218
|
+
- lib/browser/device/samsung.rb
|
217
219
|
- lib/browser/device/surface.rb
|
218
220
|
- lib/browser/device/switch.rb
|
219
221
|
- lib/browser/device/tv.rb
|
@@ -227,9 +229,11 @@ files:
|
|
227
229
|
- lib/browser/electron.rb
|
228
230
|
- lib/browser/facebook.rb
|
229
231
|
- lib/browser/firefox.rb
|
230
|
-
- lib/browser/
|
232
|
+
- lib/browser/google_search_app.rb
|
233
|
+
- lib/browser/huawei_browser.rb
|
231
234
|
- lib/browser/instagram.rb
|
232
235
|
- lib/browser/internet_explorer.rb
|
236
|
+
- lib/browser/maxthon.rb
|
233
237
|
- lib/browser/meta.rb
|
234
238
|
- lib/browser/meta/base.rb
|
235
239
|
- lib/browser/meta/device.rb
|
@@ -248,6 +252,7 @@ files:
|
|
248
252
|
- lib/browser/middleware/context.rb
|
249
253
|
- lib/browser/middleware/context/additions.rb
|
250
254
|
- lib/browser/middleware/context/url_methods.rb
|
255
|
+
- lib/browser/miui_browser.rb
|
251
256
|
- lib/browser/nokia.rb
|
252
257
|
- lib/browser/opera.rb
|
253
258
|
- lib/browser/otter.rb
|
@@ -262,7 +267,7 @@ files:
|
|
262
267
|
- lib/browser/platform/ios.rb
|
263
268
|
- lib/browser/platform/linux.rb
|
264
269
|
- lib/browser/platform/mac.rb
|
265
|
-
- lib/browser/platform/
|
270
|
+
- lib/browser/platform/unknown.rb
|
266
271
|
- lib/browser/platform/windows.rb
|
267
272
|
- lib/browser/platform/windows_mobile.rb
|
268
273
|
- lib/browser/platform/windows_phone.rb
|
@@ -271,12 +276,15 @@ files:
|
|
271
276
|
- lib/browser/safari.rb
|
272
277
|
- lib/browser/samsung_browser.rb
|
273
278
|
- lib/browser/snapchat.rb
|
279
|
+
- lib/browser/sougou_browser.rb
|
274
280
|
- lib/browser/sputnik.rb
|
275
281
|
- lib/browser/testing.rb
|
276
282
|
- lib/browser/uc_browser.rb
|
283
|
+
- lib/browser/unknown.rb
|
277
284
|
- lib/browser/version.rb
|
278
285
|
- lib/browser/weibo.rb
|
279
286
|
- lib/browser/yandex.rb
|
287
|
+
- samsung.yml
|
280
288
|
- search_engines.yml
|
281
289
|
- test/browser_test.rb
|
282
290
|
- test/middleware_test.rb
|
@@ -303,13 +311,17 @@ files:
|
|
303
311
|
- test/unit/facebook_test.rb
|
304
312
|
- test/unit/firefox_test.rb
|
305
313
|
- test/unit/generic_test.rb
|
314
|
+
- test/unit/google_search_app_test.rb
|
315
|
+
- test/unit/huawei_browser_test.rb
|
306
316
|
- test/unit/instagram_test.rb
|
307
317
|
- test/unit/internet_explorer_test.rb
|
308
318
|
- test/unit/ios_app_test.rb
|
309
319
|
- test/unit/ios_test.rb
|
310
320
|
- test/unit/kindle_test.rb
|
321
|
+
- test/unit/maxthon_test.rb
|
311
322
|
- test/unit/meta_test.rb
|
312
323
|
- test/unit/micro_messenger_test.rb
|
324
|
+
- test/unit/miui_browser_test.rb
|
313
325
|
- test/unit/nokia_test.rb
|
314
326
|
- test/unit/opera_test.rb
|
315
327
|
- test/unit/otter_test.rb
|
@@ -319,6 +331,7 @@ files:
|
|
319
331
|
- test/unit/safari_test.rb
|
320
332
|
- test/unit/samsung_browser_test.rb
|
321
333
|
- test/unit/snapchat_test.rb
|
334
|
+
- test/unit/sougou_browser_test.rb
|
322
335
|
- test/unit/sputnik_test.rb
|
323
336
|
- test/unit/uc_browser_test.rb
|
324
337
|
- test/unit/weibo_test.rb
|
@@ -330,7 +343,7 @@ licenses:
|
|
330
343
|
- MIT
|
331
344
|
metadata:
|
332
345
|
changelog_uri: https://github.com/fnando/browser/blob/master/CHANGELOG.md
|
333
|
-
post_install_message:
|
346
|
+
post_install_message:
|
334
347
|
rdoc_options: []
|
335
348
|
require_paths:
|
336
349
|
- lib
|
@@ -345,8 +358,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
345
358
|
- !ruby/object:Gem::Version
|
346
359
|
version: '0'
|
347
360
|
requirements: []
|
348
|
-
rubygems_version: 3.1.
|
349
|
-
signing_key:
|
361
|
+
rubygems_version: 3.1.4
|
362
|
+
signing_key:
|
350
363
|
specification_version: 4
|
351
364
|
summary: Do some browser detection with Ruby.
|
352
365
|
test_files:
|
@@ -375,13 +388,17 @@ test_files:
|
|
375
388
|
- test/unit/facebook_test.rb
|
376
389
|
- test/unit/firefox_test.rb
|
377
390
|
- test/unit/generic_test.rb
|
391
|
+
- test/unit/google_search_app_test.rb
|
392
|
+
- test/unit/huawei_browser_test.rb
|
378
393
|
- test/unit/instagram_test.rb
|
379
394
|
- test/unit/internet_explorer_test.rb
|
380
395
|
- test/unit/ios_app_test.rb
|
381
396
|
- test/unit/ios_test.rb
|
382
397
|
- test/unit/kindle_test.rb
|
398
|
+
- test/unit/maxthon_test.rb
|
383
399
|
- test/unit/meta_test.rb
|
384
400
|
- test/unit/micro_messenger_test.rb
|
401
|
+
- test/unit/miui_browser_test.rb
|
385
402
|
- test/unit/nokia_test.rb
|
386
403
|
- test/unit/opera_test.rb
|
387
404
|
- test/unit/otter_test.rb
|
@@ -391,6 +408,7 @@ test_files:
|
|
391
408
|
- test/unit/safari_test.rb
|
392
409
|
- test/unit/samsung_browser_test.rb
|
393
410
|
- test/unit/snapchat_test.rb
|
411
|
+
- test/unit/sougou_browser_test.rb
|
394
412
|
- test/unit/sputnik_test.rb
|
395
413
|
- test/unit/uc_browser_test.rb
|
396
414
|
- test/unit/weibo_test.rb
|