browser 5.3.1 → 6.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 +4 -4
- data/{FUNDING.yml → .github/FUNDING.yml} +2 -1
- data/.github/workflows/{tests.yml → ruby-tests.yml} +17 -17
- data/.rubocop.yml +3 -23
- data/CHANGELOG.md +6 -0
- data/LICENSE.md +20 -0
- data/README.md +10 -3
- data/browser.gemspec +4 -5
- data/gemfiles/{rails6_0.gemfile → 7_0.gemfile} +1 -1
- data/gemfiles/{rails6_1.gemfile → 7_1.gemfile} +1 -1
- data/lib/browser/accept_language.rb +1 -1
- data/lib/browser/base.rb +34 -29
- data/lib/browser/browser.rb +4 -3
- data/lib/browser/chrome.rb +4 -0
- data/lib/browser/device.rb +9 -9
- data/lib/browser/edge.rb +1 -1
- data/lib/browser/meta/base.rb +1 -1
- data/lib/browser/platform.rb +1 -1
- data/lib/browser/testing.rb +3 -3
- data/lib/browser/version.rb +1 -1
- data/lib/browser.rb +1 -1
- data/search_engines.yml +1 -0
- data/test/browser_test.rb +3 -3
- data/test/rails_test.rb +1 -1
- data/test/test_helper.rb +4 -2
- data/test/ua.yml +5 -0
- data/test/unit/accept_language_test.rb +1 -1
- data/test/unit/android_app_test.rb +3 -3
- data/test/unit/android_test.rb +17 -17
- data/test/unit/blackberry_test.rb +1 -1
- data/test/unit/bots_test.rb +15 -4
- data/test/unit/chrome_test.rb +1 -0
- data/test/unit/device_test.rb +25 -25
- data/test/unit/edge_test.rb +6 -0
- data/test/unit/electron_test.rb +1 -1
- data/test/unit/facebook_test.rb +3 -3
- data/test/unit/generic_test.rb +3 -3
- data/test/unit/instagram_test.rb +2 -2
- data/test/unit/internet_explorer_test.rb +18 -18
- data/test/unit/ios_app_test.rb +3 -3
- data/test/unit/ios_test.rb +12 -12
- data/test/unit/kindle_test.rb +15 -0
- data/test/unit/meta_test.rb +13 -13
- data/test/unit/platform_test.rb +33 -25
- data/test/unit/proxy_test.rb +2 -2
- data/test/unit/safari_test.rb +14 -9
- data/test/unit/snapchat_test.rb +3 -3
- data/test/unit/uc_browser_test.rb +1 -1
- data/test/unit/windows_test.rb +11 -11
- metadata +12 -77
data/test/test_helper.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "simplecov"
|
4
|
-
SimpleCov.start
|
4
|
+
SimpleCov.start do
|
5
|
+
add_filter %r{/test/}
|
6
|
+
end
|
5
7
|
|
6
8
|
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
|
7
9
|
require "bundler/setup"
|
@@ -14,7 +16,7 @@ require "yaml"
|
|
14
16
|
module Minitest
|
15
17
|
class Test
|
16
18
|
setup do
|
17
|
-
Browser::Bot.instance_variable_set(
|
19
|
+
Browser::Bot.instance_variable_set(:@detect_empty_ua, false)
|
18
20
|
end
|
19
21
|
|
20
22
|
def assert_deprecated(message, file, line, &block)
|
data/test/ua.yml
CHANGED
@@ -83,6 +83,11 @@ KINDLE: "Mozilla/5.0 (Linux; U; en-US) AppleWebKit/528.5+ (KHTML, like Gecko, Sa
|
|
83
83
|
KINDLE_FIRE: "Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Kindle Fire Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"
|
84
84
|
KINDLE_FIRE_HD: "Mozilla/5.0 (Linux; U; en-us; KFTT Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.4 Safari/535.19 Silk-Accelerated=true"
|
85
85
|
KINDLE_FIRE_HD_MOBILE: "Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; KFTT Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.4 Mobile Safari/535.19 Silk-Accelerated=true"
|
86
|
+
KINDLE_SILK_TABLET: Mozilla/5.0 (Linux; Android 4.4.3; KFTHWI Build/KTU84M) AppleWebKit/537.36 (KHTML, like Gecko) Silk/44.1.54 like Chrome/44.0.2403.63 Safari/537.36
|
87
|
+
KINDLE_SILK_DESKTOP: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Silk/44.1.54 like Chrome/44.0.2403.63 Safari/537.36
|
88
|
+
KINDLE_SILK_MOBILE: Mozilla/5.0 (Linux; U; Android 4.4.3; KFTHWI Build/KTU84M) AppleWebKit/537.36 (KHTML, like Gecko) Silk/44.1.54 like Chrome/44.0.2403.63 Mobile Safari/537.36
|
89
|
+
KINDLE_SILK_TABLET_1ST_GEN: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us; Silk/1.0.13.81_10003810) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16 Silk-Accelerated=true
|
90
|
+
KINDLE_SILK_MOBILE_1ST_GEN: Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Silk/1.0.13.81_10003810) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 Silk-Accelerated=true
|
86
91
|
LUMIA800: "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; XBLWP7; ZuneWP7"
|
87
92
|
MAC_OS: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Safari/605.1.15"
|
88
93
|
MAC_OSX: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/601.3.9 (KHTML, like Gecko) Version/9.0.2 Safari/601.3.9"
|
@@ -161,6 +161,6 @@ class AcceptLanguageTest < Minitest::Test
|
|
161
161
|
test "sets default quality value for invalid strings" do
|
162
162
|
result = Browser::AcceptLanguage.parse(";q=0.0.0.0")
|
163
163
|
|
164
|
-
assert_equal 0.1, result[0].quality
|
164
|
+
assert_equal 0.1, result[0].quality # rubocop:disable Minitest/AssertInDelta
|
165
165
|
end
|
166
166
|
end
|
@@ -5,15 +5,15 @@ require "test_helper"
|
|
5
5
|
class AndroidAppTest < Minitest::Test
|
6
6
|
let(:browser) { Browser.new(Browser["ANDROID_WEBVIEW"]) }
|
7
7
|
|
8
|
-
test "
|
8
|
+
test "detects as android" do
|
9
9
|
assert browser.platform.android?
|
10
10
|
end
|
11
11
|
|
12
|
-
test "
|
12
|
+
test "detects as webview" do
|
13
13
|
assert browser.platform.android_webview?
|
14
14
|
end
|
15
15
|
|
16
|
-
test "
|
16
|
+
test "does not detect non-webviews as webview" do
|
17
17
|
%w[
|
18
18
|
ANDROID_CUPCAKE
|
19
19
|
ANDROID_DONUT
|
data/test/unit/android_test.rb
CHANGED
@@ -3,102 +3,102 @@
|
|
3
3
|
require "test_helper"
|
4
4
|
|
5
5
|
class AndroidTest < Minitest::Test
|
6
|
-
test "
|
6
|
+
test "detects android cupcake (1.5)" do
|
7
7
|
browser = Browser.new(Browser["ANDROID_CUPCAKE"])
|
8
8
|
assert browser.platform.android?
|
9
9
|
assert browser.platform.android?(1.5)
|
10
10
|
end
|
11
11
|
|
12
|
-
test "
|
12
|
+
test "detects android donut (1.6)" do
|
13
13
|
browser = Browser.new(Browser["ANDROID_DONUT"])
|
14
14
|
assert browser.platform.android?
|
15
15
|
assert browser.platform.android?(1.6)
|
16
16
|
end
|
17
17
|
|
18
|
-
test "
|
18
|
+
test "detects android eclair (2.1)" do
|
19
19
|
browser = Browser.new(Browser["ANDROID_ECLAIR_21"])
|
20
20
|
assert browser.platform.android?
|
21
21
|
assert browser.platform.android?(2.1)
|
22
22
|
end
|
23
23
|
|
24
|
-
test "
|
24
|
+
test "detects android froyo (2.2)" do
|
25
25
|
browser = Browser.new(Browser["ANDROID_FROYO"])
|
26
26
|
assert browser.platform.android?
|
27
27
|
assert browser.platform.android?(2.2)
|
28
28
|
end
|
29
29
|
|
30
|
-
test "
|
30
|
+
test "detects android gingerbread (2.3)" do
|
31
31
|
browser = Browser.new(Browser["ANDROID_GINGERBREAD"])
|
32
32
|
assert browser.platform.android?
|
33
33
|
assert browser.platform.android?("~> 2.3.0")
|
34
34
|
end
|
35
35
|
|
36
|
-
test "
|
36
|
+
test "detects android honeycomb (3.0)" do
|
37
37
|
browser = Browser.new(Browser["ANDROID_HONEYCOMB_30"])
|
38
38
|
assert browser.platform.android?
|
39
39
|
assert browser.platform.android?("~> 3.0")
|
40
40
|
end
|
41
41
|
|
42
|
-
test "
|
42
|
+
test "detects android ice cream sandwich (4.0)" do
|
43
43
|
browser = Browser.new(Browser["ANDROID_ICECREAM"])
|
44
44
|
assert browser.platform.android?
|
45
45
|
assert browser.platform.android?("~> 4.0")
|
46
46
|
end
|
47
47
|
|
48
|
-
test "
|
48
|
+
test "detects android jellybean (4.1)" do
|
49
49
|
browser = Browser.new(Browser["ANDROID_JELLYBEAN_41"])
|
50
50
|
assert browser.platform.android?
|
51
51
|
assert browser.platform.android?("~> 4.1")
|
52
52
|
end
|
53
53
|
|
54
|
-
test "
|
54
|
+
test "detects android jellybean (4.2)" do
|
55
55
|
browser = Browser.new(Browser["ANDROID_JELLYBEAN_42"])
|
56
56
|
assert browser.platform.android?
|
57
57
|
assert browser.platform.android?(4.2)
|
58
58
|
end
|
59
59
|
|
60
|
-
test "
|
60
|
+
test "detects android jellybean (4.3)" do
|
61
61
|
browser = Browser.new(Browser["ANDROID_JELLYBEAN_43"])
|
62
62
|
assert browser.platform.android?
|
63
63
|
assert browser.platform.android?(4.3)
|
64
64
|
end
|
65
65
|
|
66
|
-
test "
|
66
|
+
test "detects android kitkat (4.4)" do
|
67
67
|
browser = Browser.new(Browser["ANDROID_KITKAT"])
|
68
68
|
assert browser.platform.android?
|
69
69
|
assert browser.platform.android?(4.4)
|
70
70
|
end
|
71
71
|
|
72
|
-
test "
|
72
|
+
test "detects android lollipop (5.0)" do
|
73
73
|
browser = Browser.new(Browser["ANDROID_LOLLIPOP_50"])
|
74
74
|
assert browser.platform.android?
|
75
75
|
assert browser.platform.android?(5.0)
|
76
76
|
end
|
77
77
|
|
78
|
-
test "
|
78
|
+
test "detects android lollipop (5.1)" do
|
79
79
|
browser = Browser.new(Browser["ANDROID_LOLLIPOP_51"])
|
80
80
|
assert browser.platform.android?
|
81
81
|
assert browser.platform.android?(5.1)
|
82
82
|
end
|
83
83
|
|
84
|
-
test "
|
84
|
+
test "detects android oreo (8.0)" do
|
85
85
|
browser = Browser.new(Browser["ANDROID_OREO"])
|
86
86
|
assert browser.platform.android?
|
87
87
|
assert browser.platform.android?(8.0)
|
88
88
|
end
|
89
89
|
|
90
|
-
test "
|
90
|
+
test "detects android tv" do
|
91
91
|
browser = Browser.new(Browser["ANDROID_TV"])
|
92
92
|
assert browser.platform.android?
|
93
93
|
assert browser.device.tv?
|
94
94
|
end
|
95
95
|
|
96
|
-
test "
|
96
|
+
test "detects nexus player" do
|
97
97
|
browser = Browser.new(Browser["ANDROID_NEXUS_PLAYER"])
|
98
98
|
assert browser.platform.android?
|
99
99
|
end
|
100
100
|
|
101
|
-
test "
|
101
|
+
test "detects firefox for android without android version" do
|
102
102
|
browser = Browser.new(Browser["FIREFOX_ANDROID"])
|
103
103
|
|
104
104
|
assert browser.platform.android?
|
@@ -72,7 +72,7 @@ class BlackberryTest < Minitest::Test
|
|
72
72
|
assert_equal "7", browser.version
|
73
73
|
end
|
74
74
|
|
75
|
-
test "
|
75
|
+
test "does not detect as two different versions" do
|
76
76
|
browser = Browser.new(Browser["BLACKBERRY10"])
|
77
77
|
assert browser.platform.blackberry?("~> 10.0")
|
78
78
|
refute browser.platform.blackberry?("~> 7.0")
|
data/test/unit/bots_test.rb
CHANGED
@@ -4,13 +4,13 @@ require "test_helper"
|
|
4
4
|
|
5
5
|
class BotsTest < Minitest::Test
|
6
6
|
Browser.bot_user_agents.each do |key, ua|
|
7
|
-
test "
|
7
|
+
test "detects #{key} as bot" do
|
8
8
|
browser = Browser.new(ua)
|
9
9
|
assert browser.bot?
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
|
-
test "
|
13
|
+
test "does not detect as bot" do
|
14
14
|
browser = Browser.new(Browser["CHROME"])
|
15
15
|
refute browser.bot?
|
16
16
|
end
|
@@ -55,7 +55,7 @@ class BotsTest < Minitest::Test
|
|
55
55
|
refute browser.safari?
|
56
56
|
end
|
57
57
|
|
58
|
-
test "custom android user agent (#144)" do
|
58
|
+
test "handles custom android user agent (#144)" do
|
59
59
|
browser = Browser.new(Browser["CUSTOM_APP"])
|
60
60
|
|
61
61
|
assert browser.platform.android?
|
@@ -86,7 +86,7 @@ class BotsTest < Minitest::Test
|
|
86
86
|
end
|
87
87
|
|
88
88
|
test "adds custom bot matcher" do
|
89
|
-
Browser::Bot.matchers << ->(ua, _) { ua.
|
89
|
+
Browser::Bot.matchers << ->(ua, _) { ua.include?("some-script") }
|
90
90
|
browser = Browser.new("some-script")
|
91
91
|
|
92
92
|
assert browser.bot?
|
@@ -108,4 +108,15 @@ class BotsTest < Minitest::Test
|
|
108
108
|
assert_equal Browser::Bot::KeywordMatcher, browser.bot.why?
|
109
109
|
end
|
110
110
|
end
|
111
|
+
|
112
|
+
test "extends lists" do
|
113
|
+
Browser::Bot.bots["another-bot"] = "Another bot"
|
114
|
+
Browser::Bot.bot_exceptions.push("exclude-this-bot")
|
115
|
+
Browser::Bot.search_engines["new-search-engine"] = "New search engine"
|
116
|
+
|
117
|
+
assert_equal "Another bot", Browser::Bot.bots["another-bot"]
|
118
|
+
assert_includes Browser::Bot.bot_exceptions, "exclude-this-bot"
|
119
|
+
assert_equal "New search engine",
|
120
|
+
Browser::Bot.search_engines["new-search-engine"]
|
121
|
+
end
|
111
122
|
end
|
data/test/unit/chrome_test.rb
CHANGED
data/test/unit/device_test.rb
CHANGED
@@ -13,7 +13,7 @@ class DeviceTest < Minitest::Test
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
test "
|
16
|
+
test "extends matchers" do
|
17
17
|
Browser::Device.matchers.unshift(CustomDevice)
|
18
18
|
device = Browser::Device.new("Custom")
|
19
19
|
assert_equal :custom, device.id
|
@@ -23,28 +23,28 @@ class DeviceTest < Minitest::Test
|
|
23
23
|
assert_equal :unknown_device, device.id
|
24
24
|
end
|
25
25
|
|
26
|
-
test "
|
26
|
+
test "detects generic device" do
|
27
27
|
device = Browser::Device.new("")
|
28
28
|
|
29
29
|
assert device.unknown?
|
30
30
|
assert_equal :unknown_device, device.id
|
31
31
|
end
|
32
32
|
|
33
|
-
test "
|
33
|
+
test "detects ipad" do
|
34
34
|
device = Browser::Device.new(Browser["IOS9"])
|
35
35
|
assert device.ipad?
|
36
36
|
assert_equal :ipad, device.id
|
37
37
|
assert_equal "iPad", device.name
|
38
38
|
end
|
39
39
|
|
40
|
-
test "
|
40
|
+
test "detects old ipad" do
|
41
41
|
device = Browser::Device.new(Browser["IOS3"])
|
42
42
|
assert device.ipad?
|
43
43
|
assert_equal :ipad, device.id
|
44
44
|
assert_equal "iPad", device.name
|
45
45
|
end
|
46
46
|
|
47
|
-
test "
|
47
|
+
test "detects ipod" do
|
48
48
|
device = Browser::Device.new(Browser["IPOD"])
|
49
49
|
assert device.ipod_touch?
|
50
50
|
assert device.ipod?
|
@@ -52,14 +52,14 @@ class DeviceTest < Minitest::Test
|
|
52
52
|
assert_equal "iPod Touch", device.name
|
53
53
|
end
|
54
54
|
|
55
|
-
test "
|
55
|
+
test "detects iphone" do
|
56
56
|
device = Browser::Device.new(Browser["IOS8"])
|
57
57
|
assert device.iphone?
|
58
58
|
assert_equal :iphone, device.id
|
59
59
|
assert_equal "iPhone", device.name
|
60
60
|
end
|
61
61
|
|
62
|
-
test "
|
62
|
+
test "detects ps3" do
|
63
63
|
device = Browser::Device.new(Browser["PLAYSTATION3"])
|
64
64
|
assert device.ps3?
|
65
65
|
assert device.playstation3?
|
@@ -68,7 +68,7 @@ class DeviceTest < Minitest::Test
|
|
68
68
|
assert_equal "PlayStation 3", device.name
|
69
69
|
end
|
70
70
|
|
71
|
-
test "
|
71
|
+
test "detects ps4" do
|
72
72
|
device = Browser::Device.new(Browser["PLAYSTATION4"])
|
73
73
|
assert device.ps4?
|
74
74
|
assert device.playstation4?
|
@@ -99,14 +99,14 @@ class DeviceTest < Minitest::Test
|
|
99
99
|
assert_equal "Xbox One", device.name
|
100
100
|
end
|
101
101
|
|
102
|
-
test "
|
102
|
+
test "detects psp" do
|
103
103
|
device = Browser::Device.new(Browser["PSP"])
|
104
104
|
assert device.psp?
|
105
105
|
assert_equal :psp, device.id
|
106
106
|
assert_equal "PlayStation Portable", device.name
|
107
107
|
end
|
108
108
|
|
109
|
-
test "
|
109
|
+
test "detects psvita" do
|
110
110
|
device = Browser::Device.new(Browser["PSP_VITA"])
|
111
111
|
assert device.playstation_vita?
|
112
112
|
assert device.vita?
|
@@ -114,7 +114,7 @@ class DeviceTest < Minitest::Test
|
|
114
114
|
assert_equal "PlayStation Vita", device.name
|
115
115
|
end
|
116
116
|
|
117
|
-
test "
|
117
|
+
test "detects kindle" do
|
118
118
|
device = Browser::Device.new(Browser["KINDLE"])
|
119
119
|
assert device.kindle?
|
120
120
|
assert_equal :kindle, device.id
|
@@ -127,7 +127,7 @@ class DeviceTest < Minitest::Test
|
|
127
127
|
KINDLE_FIRE_HD
|
128
128
|
KINDLE_FIRE_HD_MOBILE
|
129
129
|
].each do |key|
|
130
|
-
test "
|
130
|
+
test "detects #{key} as kindle fire" do
|
131
131
|
device = Browser::Device.new(Browser[key])
|
132
132
|
|
133
133
|
assert device.kindle?
|
@@ -137,7 +137,7 @@ class DeviceTest < Minitest::Test
|
|
137
137
|
end
|
138
138
|
end
|
139
139
|
|
140
|
-
test "
|
140
|
+
test "detects wii" do
|
141
141
|
device = Browser::Device.new(Browser["NINTENDO_WII"])
|
142
142
|
assert device.nintendo_wii?
|
143
143
|
assert device.console?
|
@@ -147,7 +147,7 @@ class DeviceTest < Minitest::Test
|
|
147
147
|
assert_equal "Nintendo Wii", device.name
|
148
148
|
end
|
149
149
|
|
150
|
-
test "
|
150
|
+
test "detects wiiu" do
|
151
151
|
device = Browser::Device.new(Browser["NINTENDO_WIIU"])
|
152
152
|
assert device.nintendo_wiiu?
|
153
153
|
assert device.wiiu?
|
@@ -157,7 +157,7 @@ class DeviceTest < Minitest::Test
|
|
157
157
|
assert_equal "Nintendo WiiU", device.name
|
158
158
|
end
|
159
159
|
|
160
|
-
test "
|
160
|
+
test "detects switch" do
|
161
161
|
device = Browser::Device.new(Browser["NINTENDO_SWITCH"])
|
162
162
|
assert device.nintendo_switch?
|
163
163
|
assert device.switch?
|
@@ -167,7 +167,7 @@ class DeviceTest < Minitest::Test
|
|
167
167
|
assert_equal "Nintendo Switch", device.name
|
168
168
|
end
|
169
169
|
|
170
|
-
test "
|
170
|
+
test "detects blackberry playbook" do
|
171
171
|
device = Browser::Device.new(Browser["PLAYBOOK"])
|
172
172
|
assert device.playbook?
|
173
173
|
assert device.blackberry_playbook?
|
@@ -175,21 +175,21 @@ class DeviceTest < Minitest::Test
|
|
175
175
|
assert_equal "BlackBerry Playbook", device.name
|
176
176
|
end
|
177
177
|
|
178
|
-
test "
|
178
|
+
test "detects surface" do
|
179
179
|
device = Browser::Device.new(Browser["SURFACE"])
|
180
180
|
assert device.surface?
|
181
181
|
assert_equal :surface, device.id
|
182
182
|
assert_equal "Microsoft Surface", device.name
|
183
183
|
end
|
184
184
|
|
185
|
-
test "
|
185
|
+
test "detects tv" do
|
186
186
|
device = Browser::Device.new(Browser["SMART_TV"])
|
187
187
|
assert device.tv?
|
188
188
|
assert_equal :tv, device.id
|
189
189
|
assert_equal "TV", device.name
|
190
190
|
end
|
191
191
|
|
192
|
-
test "
|
192
|
+
test "detects unknown device" do
|
193
193
|
device = Browser::Device.new("")
|
194
194
|
|
195
195
|
assert device.unknown?
|
@@ -214,7 +214,7 @@ class DeviceTest < Minitest::Test
|
|
214
214
|
OPERA_MOBI
|
215
215
|
KINDLE_FIRE_HD_MOBILE
|
216
216
|
].each do |key|
|
217
|
-
test "
|
217
|
+
test "detects #{key} as mobile" do
|
218
218
|
device = Browser::Device.new(Browser[key])
|
219
219
|
assert device.mobile?
|
220
220
|
refute device.tablet?
|
@@ -232,7 +232,7 @@ class DeviceTest < Minitest::Test
|
|
232
232
|
FIREFOX_TABLET
|
233
233
|
NEXUS7
|
234
234
|
].each do |key|
|
235
|
-
test "
|
235
|
+
test "detects #{key} as tablet" do
|
236
236
|
device = Browser::Device.new(Browser[key])
|
237
237
|
assert device.tablet?
|
238
238
|
refute device.mobile?
|
@@ -253,13 +253,13 @@ class DeviceTest < Minitest::Test
|
|
253
253
|
"CUSTOM_APP" => "HTC Ruby",
|
254
254
|
"NOOK" => "NOOK BNTV250A"
|
255
255
|
}.each do |key, name|
|
256
|
-
test "
|
256
|
+
test "detects device name of #{key} as #{name}" do
|
257
257
|
device = Browser::Device.new(Browser[key])
|
258
258
|
assert_equal name, device.name
|
259
259
|
end
|
260
260
|
end
|
261
261
|
|
262
|
-
test "
|
262
|
+
test "detects samsung devices" do
|
263
263
|
device = Browser::Device.new(Browser["SAMSUNG_SM-G975F"])
|
264
264
|
|
265
265
|
assert device.samsung?
|
@@ -267,7 +267,7 @@ class DeviceTest < Minitest::Test
|
|
267
267
|
assert_equal "Samsung Galaxy S10+", device.name
|
268
268
|
end
|
269
269
|
|
270
|
-
test "
|
270
|
+
test "detects generic samsung devices" do
|
271
271
|
device = Browser::Device.new(Browser["SAMSUNG_SM-FAKE"])
|
272
272
|
|
273
273
|
assert device.samsung?
|
@@ -280,7 +280,7 @@ class DeviceTest < Minitest::Test
|
|
280
280
|
"SAMSUNG_SM-G960F" => "Samsung Galaxy S9",
|
281
281
|
"SAMSUNG_SM-F700F" => "Samsung Galaxy Z Flip"
|
282
282
|
}.each do |key, name|
|
283
|
-
test "
|
283
|
+
test "detects device name of #{key} as #{name}" do
|
284
284
|
device = Browser::Device.new(Browser[key])
|
285
285
|
assert_equal name, device.name
|
286
286
|
end
|
data/test/unit/edge_test.rb
CHANGED
@@ -16,6 +16,7 @@ class EdgeTest < ActionController::TestCase
|
|
16
16
|
refute browser.chrome?
|
17
17
|
refute browser.safari?
|
18
18
|
refute browser.device.mobile?
|
19
|
+
refute browser.chromium_based?
|
19
20
|
end
|
20
21
|
|
21
22
|
test "detects Microsoft Edge in compatibility view" do
|
@@ -33,6 +34,7 @@ class EdgeTest < ActionController::TestCase
|
|
33
34
|
refute browser.chrome?
|
34
35
|
refute browser.safari?
|
35
36
|
refute browser.device.mobile?
|
37
|
+
refute browser.chromium_based?
|
36
38
|
end
|
37
39
|
|
38
40
|
test "detects Microsoft Edge Mobile" do
|
@@ -48,6 +50,7 @@ class EdgeTest < ActionController::TestCase
|
|
48
50
|
refute browser.webkit?
|
49
51
|
refute browser.chrome?
|
50
52
|
refute browser.safari?
|
53
|
+
refute browser.chromium_based?
|
51
54
|
end
|
52
55
|
|
53
56
|
test "detects Microsoft Edge based on Chrome" do
|
@@ -58,6 +61,7 @@ class EdgeTest < ActionController::TestCase
|
|
58
61
|
assert_equal "79.0.309.18", browser.full_version
|
59
62
|
assert_equal "79", browser.version
|
60
63
|
assert browser.platform.mac?
|
64
|
+
assert browser.chromium_based?
|
61
65
|
refute browser.platform.windows?
|
62
66
|
assert browser.edge?
|
63
67
|
assert browser.webkit?
|
@@ -79,6 +83,7 @@ class EdgeTest < ActionController::TestCase
|
|
79
83
|
refute browser.webkit?
|
80
84
|
refute browser.chrome?
|
81
85
|
refute browser.safari?
|
86
|
+
refute browser.chromium_based?
|
82
87
|
end
|
83
88
|
|
84
89
|
test "detects Microsoft Edge Mobile on Android" do
|
@@ -95,6 +100,7 @@ class EdgeTest < ActionController::TestCase
|
|
95
100
|
refute browser.webkit?
|
96
101
|
refute browser.chrome?
|
97
102
|
refute browser.safari?
|
103
|
+
refute browser.chromium_based?
|
98
104
|
end
|
99
105
|
|
100
106
|
test "detects version by range" do
|
data/test/unit/electron_test.rb
CHANGED
data/test/unit/facebook_test.rb
CHANGED
@@ -8,7 +8,7 @@ class FacebookTest < Minitest::Test
|
|
8
8
|
|
9
9
|
assert_equal "Facebook", browser.name
|
10
10
|
assert browser.facebook?
|
11
|
-
|
11
|
+
assert_equal :facebook, browser.id
|
12
12
|
assert_equal "135.0.0.45.90", browser.full_version
|
13
13
|
assert_equal "135", browser.version
|
14
14
|
end
|
@@ -18,7 +18,7 @@ class FacebookTest < Minitest::Test
|
|
18
18
|
|
19
19
|
assert_equal "Facebook", browser.name
|
20
20
|
assert browser.facebook?
|
21
|
-
|
21
|
+
assert_equal :facebook, browser.id
|
22
22
|
assert_equal "AppleWebKit/605.1.15", browser.full_version
|
23
23
|
assert_equal "AppleWebKit/605", browser.version
|
24
24
|
end
|
@@ -28,7 +28,7 @@ class FacebookTest < Minitest::Test
|
|
28
28
|
|
29
29
|
assert_equal "Facebook", browser.name
|
30
30
|
assert browser.facebook?
|
31
|
-
|
31
|
+
assert_equal :facebook, browser.id
|
32
32
|
assert_equal "214.0.0.43.83", browser.full_version
|
33
33
|
assert_equal "214", browser.version
|
34
34
|
end
|
data/test/unit/generic_test.rb
CHANGED
@@ -3,20 +3,20 @@
|
|
3
3
|
require "test_helper"
|
4
4
|
|
5
5
|
class GenericTest < Minitest::Test
|
6
|
-
test "
|
6
|
+
test "returns default msie version" do
|
7
7
|
browser = Browser.new("")
|
8
8
|
|
9
9
|
assert_equal "0.0", browser.msie_full_version
|
10
10
|
assert_equal "0", browser.msie_version
|
11
11
|
end
|
12
12
|
|
13
|
-
test "
|
13
|
+
test "returns default compatibility view" do
|
14
14
|
browser = Browser.new("")
|
15
15
|
|
16
16
|
refute browser.compatibility_view?
|
17
17
|
end
|
18
18
|
|
19
|
-
test "
|
19
|
+
test "returns default safari web app mode" do
|
20
20
|
browser = Browser.new("")
|
21
21
|
|
22
22
|
refute browser.safari_webapp_mode?
|
data/test/unit/instagram_test.rb
CHANGED
@@ -8,7 +8,7 @@ class InstagramTest < Minitest::Test
|
|
8
8
|
|
9
9
|
assert_equal "Instagram", browser.name
|
10
10
|
assert browser.instagram?
|
11
|
-
|
11
|
+
assert_equal :instagram, browser.id
|
12
12
|
assert_equal "41.0.0.14.90", browser.full_version
|
13
13
|
assert_equal "41", browser.version
|
14
14
|
end
|
@@ -18,7 +18,7 @@ class InstagramTest < Minitest::Test
|
|
18
18
|
|
19
19
|
assert_equal "Instagram", browser.name
|
20
20
|
assert browser.instagram?
|
21
|
-
|
21
|
+
assert_equal :instagram, browser.id
|
22
22
|
assert_equal "182257141", browser.full_version
|
23
23
|
assert_equal "182257141", browser.version
|
24
24
|
end
|
@@ -261,43 +261,43 @@ class IeTest < Minitest::Test
|
|
261
261
|
browser = Browser.new(Browser["IE6"])
|
262
262
|
meta = browser.meta
|
263
263
|
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
264
|
+
assert_includes meta, "ie"
|
265
|
+
assert_includes meta, "ie6"
|
266
|
+
assert_includes meta, "oldie"
|
267
|
+
assert_includes meta, "lt-ie8"
|
268
|
+
assert_includes meta, "lt-ie9"
|
269
|
+
assert_includes meta, "windows"
|
270
270
|
end
|
271
271
|
|
272
272
|
test "returns string representation for ie7" do
|
273
273
|
browser = Browser.new(Browser["IE7"])
|
274
274
|
meta = browser.meta
|
275
275
|
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
276
|
+
assert_includes meta, "ie"
|
277
|
+
assert_includes meta, "ie7"
|
278
|
+
assert_includes meta, "oldie"
|
279
|
+
assert_includes meta, "lt-ie8"
|
280
|
+
assert_includes meta, "lt-ie9"
|
281
|
+
assert_includes meta, "windows"
|
282
282
|
end
|
283
283
|
|
284
284
|
test "returns string representation for ie8" do
|
285
285
|
browser = Browser.new(Browser["IE8"])
|
286
286
|
meta = browser.meta
|
287
287
|
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
288
|
+
assert_includes meta, "ie"
|
289
|
+
assert_includes meta, "ie8"
|
290
|
+
assert_includes meta, "lt-ie9"
|
291
|
+
assert_includes meta, "windows"
|
292
292
|
end
|
293
293
|
|
294
|
-
test "
|
294
|
+
test "does not detect as two different versions" do
|
295
295
|
browser = Browser.new(Browser["IE8"])
|
296
296
|
assert browser.ie?(8)
|
297
297
|
refute browser.ie?(7)
|
298
298
|
end
|
299
299
|
|
300
|
-
test "more complex versioning check" do
|
300
|
+
test "handles more complex versioning check" do
|
301
301
|
browser = Browser.new(Browser["IE8"])
|
302
302
|
assert browser.ie?(["> 7", "< 9"])
|
303
303
|
end
|
data/test/unit/ios_app_test.rb
CHANGED
@@ -5,15 +5,15 @@ require "test_helper"
|
|
5
5
|
class IosAppTest < Minitest::Test
|
6
6
|
let(:browser) { Browser.new(Browser["IOS_WEBVIEW"]) }
|
7
7
|
|
8
|
-
test "
|
8
|
+
test "detects as ios" do
|
9
9
|
assert browser.platform.ios?
|
10
10
|
end
|
11
11
|
|
12
|
-
test "
|
12
|
+
test "does not detect as safari" do
|
13
13
|
refute browser.safari?
|
14
14
|
end
|
15
15
|
|
16
|
-
test "
|
16
|
+
test "detects as webview" do
|
17
17
|
assert browser.platform.ios_webview?
|
18
18
|
end
|
19
19
|
end
|