browser 4.2.0 → 5.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +32 -1
  3. data/FUNDING.yml +3 -0
  4. data/README.md +97 -47
  5. data/bots.yml +1 -1
  6. data/lib/browser/base.rb +61 -6
  7. data/lib/browser/browser.rb +22 -2
  8. data/lib/browser/chrome.rb +7 -1
  9. data/lib/browser/device.rb +9 -2
  10. data/lib/browser/device/samsung.rb +33 -0
  11. data/lib/browser/device/unknown.rb +1 -1
  12. data/lib/browser/google_search_app.rb +21 -0
  13. data/lib/browser/huawei_browser.rb +21 -0
  14. data/lib/browser/maxthon.rb +21 -0
  15. data/lib/browser/miui_browser.rb +21 -0
  16. data/lib/browser/platform.rb +4 -4
  17. data/lib/browser/platform/ios.rb +1 -1
  18. data/lib/browser/platform/mac.rb +1 -1
  19. data/lib/browser/platform/{other.rb → unknown.rb} +3 -3
  20. data/lib/browser/platform/windows.rb +1 -1
  21. data/lib/browser/safari.rb +9 -1
  22. data/lib/browser/sougou_browser.rb +24 -0
  23. data/lib/browser/{generic.rb → unknown.rb} +3 -3
  24. data/lib/browser/version.rb +1 -1
  25. data/samsung.yml +138 -0
  26. data/test/browser_test.rb +37 -6
  27. data/test/ua.yml +16 -4
  28. data/test/unit/adobe_air_test.rb +1 -1
  29. data/test/unit/alipay_test.rb +6 -0
  30. data/test/unit/console_test.rb +2 -2
  31. data/test/unit/device_test.rb +29 -2
  32. data/test/unit/duck_duck_go_test.rb +2 -0
  33. data/test/unit/google_search_app_test.rb +54 -0
  34. data/test/unit/huawei_browser_test.rb +25 -0
  35. data/test/unit/maxthon_test.rb +25 -0
  36. data/test/unit/meta_test.rb +9 -0
  37. data/test/unit/miui_browser_test.rb +25 -0
  38. data/test/unit/opera_test.rb +1 -0
  39. data/test/unit/platform_test.rb +6 -6
  40. data/test/unit/qq_test.rb +12 -0
  41. data/test/unit/safari_test.rb +12 -7
  42. data/test/unit/sougou_browser_test.rb +41 -0
  43. metadata +26 -8
@@ -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.2.0
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-05-31 00:00:00.000000000 Z
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/generic.rb
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/other.rb
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.2
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