iGEL-ua_parser 0.0.1
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.
- data/README.rdoc +50 -0
- data/Rakefile +12 -0
- data/apache_log_tester.rb +138 -0
- data/lib/ua_parser/user_agent.rb +492 -0
- data/lib/ua_parser/version.rb +85 -0
- data/lib/ua_parser.rb +2 -0
- data/test/crawler_test.rb +620 -0
- data/test/gecko_test.rb +493 -0
- data/test/other_test.rb +146 -0
- data/test/presto_test.rb +169 -0
- data/test/trident_test.rb +146 -0
- data/test/version_test.rb +130 -0
- data/test/webkit_test.rb +242 -0
- data/ua_parser.gemspec +32 -0
- metadata +81 -0
data/test/presto_test.rb
ADDED
@@ -0,0 +1,169 @@
|
|
1
|
+
$:.unshift File.join(File.dirname(__FILE__),'..','lib')
|
2
|
+
|
3
|
+
require 'test/unit'
|
4
|
+
require 'ua_parser'
|
5
|
+
|
6
|
+
class PrestoTest < Test::Unit::TestCase
|
7
|
+
include UaParser
|
8
|
+
|
9
|
+
def test_opera_852_linux_as_ie_6
|
10
|
+
ua = UserAgent.new "Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux i686; en) Opera 8.52"
|
11
|
+
assert ua.known?
|
12
|
+
assert ua.browser?
|
13
|
+
assert !ua.bot?
|
14
|
+
assert !ua.feed_reader?
|
15
|
+
assert !ua.other?
|
16
|
+
assert_equal :presto, ua.render_engine
|
17
|
+
assert_equal nil, ua.render_engine_version
|
18
|
+
assert_equal :opera, ua.name
|
19
|
+
assert_equal "8.52", ua.version.full
|
20
|
+
assert_equal "8.5", ua.version.major
|
21
|
+
assert_equal [], ua.emails
|
22
|
+
assert_equal nil, ua.email
|
23
|
+
assert_equal [], ua.urls
|
24
|
+
assert_equal nil, ua.url
|
25
|
+
[:architecture, :dotnet_versions, :os, :os_type, :os_version, :ui_lang, :ui_lang_country, :vendor].each do |method|
|
26
|
+
assert_raise NotImplementedError do
|
27
|
+
ua.method(method).call
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_opera_854_win_xp
|
33
|
+
ua = UserAgent.new "Opera/8.54 (Windows NT 5.1; U; pl)"
|
34
|
+
assert ua.known?
|
35
|
+
assert ua.browser?
|
36
|
+
assert !ua.bot?
|
37
|
+
assert !ua.feed_reader?
|
38
|
+
assert !ua.other?
|
39
|
+
assert_equal :presto, ua.render_engine
|
40
|
+
assert_equal nil, ua.render_engine_version
|
41
|
+
assert_equal :opera, ua.name
|
42
|
+
assert_equal "8.54", ua.version.full
|
43
|
+
assert_equal "8.5", ua.version.major
|
44
|
+
assert_equal [], ua.emails
|
45
|
+
assert_equal nil, ua.email
|
46
|
+
assert_equal [], ua.urls
|
47
|
+
assert_equal nil, ua.url
|
48
|
+
[:architecture, :dotnet_versions, :os, :os_type, :os_version, :ui_lang, :ui_lang_country, :vendor].each do |method|
|
49
|
+
assert_raise NotImplementedError do
|
50
|
+
ua.method(method).call
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_opera_923_win_xp
|
56
|
+
ua = UserAgent.new "Opera/9.23 (Windows NT 5.1; U; SV1; MEGAUPLOAD 1.0; ru)"
|
57
|
+
assert ua.known?
|
58
|
+
assert ua.browser?
|
59
|
+
assert !ua.bot?
|
60
|
+
assert !ua.feed_reader?
|
61
|
+
assert !ua.other?
|
62
|
+
assert_equal :presto, ua.render_engine
|
63
|
+
assert_equal nil, ua.render_engine_version
|
64
|
+
assert_equal :opera, ua.name
|
65
|
+
assert_equal "9.23", ua.version.full
|
66
|
+
assert_equal "9.2", ua.version.major
|
67
|
+
assert_equal [], ua.emails
|
68
|
+
assert_equal nil, ua.email
|
69
|
+
assert_equal [], ua.urls
|
70
|
+
assert_equal nil, ua.url
|
71
|
+
[:architecture, :dotnet_versions, :os, :os_type, :os_version, :ui_lang, :ui_lang_country, :vendor].each do |method|
|
72
|
+
assert_raise NotImplementedError do
|
73
|
+
ua.method(method).call
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def test_opera_963_linux
|
79
|
+
ua = UserAgent.new "Opera/9.63 (X11; Linux i686; U; de) Presto/2.1.1"
|
80
|
+
assert ua.known?
|
81
|
+
assert ua.browser?
|
82
|
+
assert !ua.bot?
|
83
|
+
assert !ua.feed_reader?
|
84
|
+
assert !ua.other?
|
85
|
+
assert_equal :presto, ua.render_engine
|
86
|
+
assert_equal "2.1.1", ua.render_engine_version.full
|
87
|
+
assert_equal :opera, ua.name
|
88
|
+
assert_equal "9.63", ua.version.full
|
89
|
+
assert_equal "9.6", ua.version.major
|
90
|
+
assert_equal [], ua.emails
|
91
|
+
assert_equal nil, ua.email
|
92
|
+
assert_equal [], ua.urls
|
93
|
+
assert_equal nil, ua.url
|
94
|
+
[:architecture, :dotnet_versions, :os, :os_type, :os_version, :ui_lang, :ui_lang_country, :vendor].each do |method|
|
95
|
+
assert_raise NotImplementedError do
|
96
|
+
ua.method(method).call
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
def test_opera_963_win_me_as_ie_6
|
102
|
+
ua = UserAgent.new "Mozilla/5.0 (Windows ME; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.63"
|
103
|
+
assert ua.known?
|
104
|
+
assert ua.browser?
|
105
|
+
assert !ua.bot?
|
106
|
+
assert !ua.feed_reader?
|
107
|
+
assert !ua.other?
|
108
|
+
assert_equal :presto, ua.render_engine
|
109
|
+
assert_equal nil, ua.render_engine_version
|
110
|
+
assert_equal :opera, ua.name
|
111
|
+
assert_equal "9.63", ua.version.full
|
112
|
+
assert_equal "9.6", ua.version.major
|
113
|
+
assert_equal [], ua.emails
|
114
|
+
assert_equal nil, ua.email
|
115
|
+
assert_equal [], ua.urls
|
116
|
+
assert_equal nil, ua.url
|
117
|
+
[:architecture, :dotnet_versions, :os, :os_type, :os_version, :ui_lang, :ui_lang_country, :vendor].each do |method|
|
118
|
+
assert_raise NotImplementedError do
|
119
|
+
ua.method(method).call
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
def test_opera_963_win_vista
|
125
|
+
ua = UserAgent.new "Opera/9.63 (Windows NT 6.0; U; en) Presto/2.1.1"
|
126
|
+
assert ua.known?
|
127
|
+
assert ua.browser?
|
128
|
+
assert !ua.bot?
|
129
|
+
assert !ua.feed_reader?
|
130
|
+
assert !ua.other?
|
131
|
+
assert_equal :presto, ua.render_engine
|
132
|
+
assert_equal "2.1.1", ua.render_engine_version.full
|
133
|
+
assert_equal :opera, ua.name
|
134
|
+
assert_equal "9.63", ua.version.full
|
135
|
+
assert_equal "9.6", ua.version.major
|
136
|
+
assert_equal [], ua.emails
|
137
|
+
assert_equal nil, ua.email
|
138
|
+
assert_equal [], ua.urls
|
139
|
+
assert_equal nil, ua.url
|
140
|
+
[:architecture, :dotnet_versions, :os, :os_type, :os_version, :ui_lang, :ui_lang_country, :vendor].each do |method|
|
141
|
+
assert_raise NotImplementedError do
|
142
|
+
ua.method(method).call
|
143
|
+
end
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
def test_opera_963_win_vista_as_ie_6
|
148
|
+
ua = UserAgent.new "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 6.0; ja) Opera 9.63"
|
149
|
+
assert ua.known?
|
150
|
+
assert ua.browser?
|
151
|
+
assert !ua.bot?
|
152
|
+
assert !ua.feed_reader?
|
153
|
+
assert !ua.other?
|
154
|
+
assert_equal :presto, ua.render_engine
|
155
|
+
assert_equal nil, ua.render_engine_version
|
156
|
+
assert_equal :opera, ua.name
|
157
|
+
assert_equal "9.63", ua.version.full
|
158
|
+
assert_equal "9.6", ua.version.major
|
159
|
+
assert_equal [], ua.emails
|
160
|
+
assert_equal nil, ua.email
|
161
|
+
assert_equal [], ua.urls
|
162
|
+
assert_equal nil, ua.url
|
163
|
+
[:architecture, :dotnet_versions, :os, :os_type, :os_version, :ui_lang, :ui_lang_country, :vendor].each do |method|
|
164
|
+
assert_raise NotImplementedError do
|
165
|
+
ua.method(method).call
|
166
|
+
end
|
167
|
+
end
|
168
|
+
end
|
169
|
+
end
|
@@ -0,0 +1,146 @@
|
|
1
|
+
$:.unshift File.join(File.dirname(__FILE__),'..','lib')
|
2
|
+
|
3
|
+
require 'test/unit'
|
4
|
+
require 'ua_parser'
|
5
|
+
|
6
|
+
class TridentTest < Test::Unit::TestCase
|
7
|
+
include UaParser
|
8
|
+
|
9
|
+
def test_msie_60_win_2003
|
10
|
+
ua = UserAgent.new "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)"
|
11
|
+
assert ua.known?
|
12
|
+
assert ua.browser?
|
13
|
+
assert !ua.bot?
|
14
|
+
assert !ua.feed_reader?
|
15
|
+
assert !ua.other?
|
16
|
+
assert_equal :trident, ua.render_engine
|
17
|
+
assert_equal nil, ua.render_engine_version
|
18
|
+
assert_equal :internet_explorer, ua.name
|
19
|
+
assert_equal "6.0", ua.version.full
|
20
|
+
assert_equal "6", ua.version.major
|
21
|
+
assert_equal [], ua.emails
|
22
|
+
assert_equal nil, ua.email
|
23
|
+
assert_equal [], ua.urls
|
24
|
+
assert_equal nil, ua.url
|
25
|
+
[:architecture, :dotnet_versions, :os, :os_type, :os_version, :ui_lang, :ui_lang_country, :vendor].each do |method|
|
26
|
+
assert_raise NotImplementedError do
|
27
|
+
ua.method(method).call
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_msie_60_win_xp
|
33
|
+
ua = UserAgent.new "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
|
34
|
+
assert ua.known?
|
35
|
+
assert ua.browser?
|
36
|
+
assert !ua.bot?
|
37
|
+
assert !ua.feed_reader?
|
38
|
+
assert !ua.other?
|
39
|
+
assert_equal :trident, ua.render_engine
|
40
|
+
assert_equal nil, ua.render_engine_version
|
41
|
+
assert_equal :internet_explorer, ua.name
|
42
|
+
assert_equal "6.0", ua.version.full
|
43
|
+
assert_equal "6", ua.version.major
|
44
|
+
assert_equal [], ua.emails
|
45
|
+
assert_equal nil, ua.email
|
46
|
+
assert_equal [], ua.urls
|
47
|
+
assert_equal nil, ua.url
|
48
|
+
[:architecture, :dotnet_versions, :os, :os_type, :os_version, :ui_lang, :ui_lang_country, :vendor].each do |method|
|
49
|
+
assert_raise NotImplementedError do
|
50
|
+
ua.method(method).call
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_msie_70_win_vista_dotnet_2050727_dotnet_3004506_media_center
|
56
|
+
ua = UserAgent.new "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)"
|
57
|
+
assert ua.known?
|
58
|
+
assert ua.browser?
|
59
|
+
assert !ua.bot?
|
60
|
+
assert !ua.feed_reader?
|
61
|
+
assert !ua.other?
|
62
|
+
assert_equal :trident, ua.render_engine
|
63
|
+
assert_equal nil, ua.render_engine_version
|
64
|
+
assert_equal :internet_explorer, ua.name
|
65
|
+
assert_equal "7.0", ua.version.full
|
66
|
+
assert_equal "7", ua.version.major
|
67
|
+
assert_equal [], ua.emails
|
68
|
+
assert_equal nil, ua.email
|
69
|
+
assert_equal [], ua.urls
|
70
|
+
assert_equal nil, ua.url
|
71
|
+
[:architecture, :dotnet_versions, :os, :os_type, :os_version, :ui_lang, :ui_lang_country, :vendor].each do |method|
|
72
|
+
assert_raise NotImplementedError do
|
73
|
+
ua.method(method).call
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def test_msie_70_win_xp_dotnet_114322
|
79
|
+
ua = UserAgent.new "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322)"
|
80
|
+
assert ua.known?
|
81
|
+
assert ua.browser?
|
82
|
+
assert !ua.bot?
|
83
|
+
assert !ua.feed_reader?
|
84
|
+
assert !ua.other?
|
85
|
+
assert_equal :trident, ua.render_engine
|
86
|
+
assert_equal nil, ua.render_engine_version
|
87
|
+
assert_equal :internet_explorer, ua.name
|
88
|
+
assert_equal "7.0", ua.version.full
|
89
|
+
assert_equal "7", ua.version.major
|
90
|
+
assert_equal [], ua.emails
|
91
|
+
assert_equal nil, ua.email
|
92
|
+
assert_equal [], ua.urls
|
93
|
+
assert_equal nil, ua.url
|
94
|
+
[:architecture, :dotnet_versions, :os, :os_type, :os_version, :ui_lang, :ui_lang_country, :vendor].each do |method|
|
95
|
+
assert_raise NotImplementedError do
|
96
|
+
ua.method(method).call
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
def test_msie_70_win_xp
|
102
|
+
ua = UserAgent.new "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)"
|
103
|
+
assert ua.known?
|
104
|
+
assert ua.browser?
|
105
|
+
assert !ua.bot?
|
106
|
+
assert !ua.feed_reader?
|
107
|
+
assert !ua.other?
|
108
|
+
assert_equal :trident, ua.render_engine
|
109
|
+
assert_equal nil, ua.render_engine_version
|
110
|
+
assert_equal :internet_explorer, ua.name
|
111
|
+
assert_equal "7.0", ua.version.full
|
112
|
+
assert_equal "7", ua.version.major
|
113
|
+
assert_equal [], ua.emails
|
114
|
+
assert_equal nil, ua.email
|
115
|
+
assert_equal [], ua.urls
|
116
|
+
assert_equal nil, ua.url
|
117
|
+
[:architecture, :dotnet_versions, :os, :os_type, :os_version, :ui_lang, :ui_lang_country, :vendor].each do |method|
|
118
|
+
assert_raise NotImplementedError do
|
119
|
+
ua.method(method).call
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
def test_msie_80_win_xp
|
125
|
+
ua = UserAgent.new "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)"
|
126
|
+
assert ua.known?
|
127
|
+
assert ua.browser?
|
128
|
+
assert !ua.bot?
|
129
|
+
assert !ua.feed_reader?
|
130
|
+
assert !ua.other?
|
131
|
+
assert_equal :trident, ua.render_engine
|
132
|
+
assert_equal "4.0", ua.render_engine_version.full
|
133
|
+
assert_equal :internet_explorer, ua.name
|
134
|
+
assert_equal "8.0", ua.version.full
|
135
|
+
assert_equal "8", ua.version.major
|
136
|
+
assert_equal [], ua.emails
|
137
|
+
assert_equal nil, ua.email
|
138
|
+
assert_equal [], ua.urls
|
139
|
+
assert_equal nil, ua.url
|
140
|
+
[:architecture, :dotnet_versions, :os, :os_type, :os_version, :ui_lang, :ui_lang_country, :vendor].each do |method|
|
141
|
+
assert_raise NotImplementedError do
|
142
|
+
ua.method(method).call
|
143
|
+
end
|
144
|
+
end
|
145
|
+
end
|
146
|
+
end
|
@@ -0,0 +1,130 @@
|
|
1
|
+
$:.unshift File.join(File.dirname(__FILE__),'..','lib')
|
2
|
+
|
3
|
+
require 'test/unit'
|
4
|
+
require 'ua_parser/version'
|
5
|
+
|
6
|
+
class VersionTest < Test::Unit::TestCase
|
7
|
+
include UaParser
|
8
|
+
def test_compare_1
|
9
|
+
assert Version.new("1.0") < Version.new("2.0")
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_compare_2
|
13
|
+
assert Version.new("1.0") < Version.new("1.2")
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_compare_3
|
17
|
+
assert Version.new("1.0.0") > Version.new("1.0b2")
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_compare_4
|
21
|
+
assert Version.new("1.0") > Version.new("1.0b2")
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_compare_5
|
25
|
+
assert Version.new("1.0") == Version.new("1.0")
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_compare_6
|
29
|
+
assert Version.new("1.0") < Version.new("1.0.2")
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_compare_7
|
33
|
+
assert Version.new("1.0.2") => Version.new("1.0")
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_compare_8
|
37
|
+
assert Version.new("1.10.3") => Version.new("1.3.7")
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_compare_different_agents
|
41
|
+
assert_raise Version::DifferentAgentsNotComparable do
|
42
|
+
Version.new("1.0", :opera) < Version.new("2.0", :netscape)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_compare_same_agents
|
47
|
+
assert Version.new("1.0.2", :opera) => Version.new("1.0", :opera)
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_compare_with_integer
|
51
|
+
assert_raise TypeError do
|
52
|
+
Version.new("1.0") < 3
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_initialize_with_array
|
57
|
+
assert_raise TypeError do
|
58
|
+
Version.new([1, 2, 3])
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_initialize_with_float
|
63
|
+
v = Version.new(1.0)
|
64
|
+
assert_kind_of Version, v
|
65
|
+
assert_equal "1.0", v.full
|
66
|
+
end
|
67
|
+
|
68
|
+
def test_initialize_with_integer
|
69
|
+
v = Version.new(1)
|
70
|
+
assert_kind_of Version, v
|
71
|
+
assert_equal "1", v.full
|
72
|
+
end
|
73
|
+
|
74
|
+
def test_initialize_with_nil
|
75
|
+
assert_raise TypeError do
|
76
|
+
Version.new(nil)
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
def test_initialize_with_string
|
81
|
+
v = Version.new("1.0")
|
82
|
+
assert_kind_of Version, v
|
83
|
+
assert_equal "1.0", v.full
|
84
|
+
end
|
85
|
+
|
86
|
+
def test_java_version
|
87
|
+
v = Version.new("1.6.0_03")
|
88
|
+
assert_equal [1, 6, 0, 0, 3], v.send(:tokens)
|
89
|
+
end
|
90
|
+
|
91
|
+
def test_major_1
|
92
|
+
v = Version.new "1"
|
93
|
+
assert_equal "1", v.major
|
94
|
+
end
|
95
|
+
|
96
|
+
def test_major_1_0
|
97
|
+
v = Version.new "1.0"
|
98
|
+
assert_equal "1.0", v.major
|
99
|
+
end
|
100
|
+
|
101
|
+
def test_major_1_12
|
102
|
+
v = Version.new "1.12"
|
103
|
+
assert_equal "1.12", v.major
|
104
|
+
end
|
105
|
+
|
106
|
+
def test_major_1_12_opera
|
107
|
+
v = Version.new "1.12", :opera
|
108
|
+
assert_equal "1.1", v.major
|
109
|
+
end
|
110
|
+
|
111
|
+
def test_major_2_0_0_14
|
112
|
+
v = Version.new "2.0.0.14"
|
113
|
+
assert_equal "2.0", v.major
|
114
|
+
end
|
115
|
+
|
116
|
+
def test_major_2_0b3
|
117
|
+
v = Version.new "2.0b3"
|
118
|
+
assert_equal "2.0b", v.major
|
119
|
+
end
|
120
|
+
|
121
|
+
def test_major_4_0_dp
|
122
|
+
v = Version.new "4.0dp"
|
123
|
+
assert_equal "4.0dp", v.major
|
124
|
+
end
|
125
|
+
|
126
|
+
def test_major_503_34
|
127
|
+
v = Version.new "503.34"
|
128
|
+
assert_equal "503.34", v.major
|
129
|
+
end
|
130
|
+
end
|
data/test/webkit_test.rb
ADDED
@@ -0,0 +1,242 @@
|
|
1
|
+
$:.unshift File.join(File.dirname(__FILE__),'..','lib')
|
2
|
+
|
3
|
+
require 'test/unit'
|
4
|
+
require 'ua_parser'
|
5
|
+
|
6
|
+
class WebkitTest < Test::Unit::TestCase
|
7
|
+
include UaParser
|
8
|
+
|
9
|
+
def test_chrome_031549_windows_7
|
10
|
+
ua = UserAgent.new "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/0.3.154.9 Safari/525.19"
|
11
|
+
assert ua.known?
|
12
|
+
assert ua.browser?
|
13
|
+
assert !ua.bot?
|
14
|
+
assert !ua.feed_reader?
|
15
|
+
assert !ua.other?
|
16
|
+
assert_equal :webkit, ua.render_engine
|
17
|
+
assert_equal "525.19", ua.render_engine_version.full
|
18
|
+
assert_equal :chrome, ua.name
|
19
|
+
assert_equal "0.3.154.9", ua.version.full
|
20
|
+
assert_equal "0.3", ua.version.major
|
21
|
+
assert_equal [], ua.emails
|
22
|
+
assert_equal nil, ua.email
|
23
|
+
assert_equal [], ua.urls
|
24
|
+
assert_equal nil, ua.url
|
25
|
+
[:architecture, :dotnet_versions, :os, :os_type, :os_version, :ui_lang, :ui_lang_country, :vendor].each do |method|
|
26
|
+
assert_raise NotImplementedError do
|
27
|
+
ua.method(method).call
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_chrome_1015439_windows_xp
|
33
|
+
ua = UserAgent.new "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.39 Safari/525.19"
|
34
|
+
assert ua.known?
|
35
|
+
assert ua.browser?
|
36
|
+
assert !ua.bot?
|
37
|
+
assert !ua.feed_reader?
|
38
|
+
assert !ua.other?
|
39
|
+
assert_equal :webkit, ua.render_engine
|
40
|
+
assert_equal "525.19", ua.render_engine_version.full
|
41
|
+
assert_equal :chrome, ua.name
|
42
|
+
assert_equal "1.0.154.39", ua.version.full
|
43
|
+
assert_equal "1.0", ua.version.major
|
44
|
+
assert_equal [], ua.emails
|
45
|
+
assert_equal nil, ua.email
|
46
|
+
assert_equal [], ua.urls
|
47
|
+
assert_equal nil, ua.url
|
48
|
+
[:architecture, :dotnet_versions, :os, :os_type, :os_version, :ui_lang, :ui_lang_country, :vendor].each do |method|
|
49
|
+
assert_raise NotImplementedError do
|
50
|
+
ua.method(method).call
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_chrome_201561_windows_7
|
56
|
+
ua = UserAgent.new "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/528.8 (KHTML, like Gecko) Chrome/2.0.156.1 Safari/528.8"
|
57
|
+
assert ua.known?
|
58
|
+
assert ua.browser?
|
59
|
+
assert !ua.bot?
|
60
|
+
assert !ua.feed_reader?
|
61
|
+
assert !ua.other?
|
62
|
+
assert_equal :webkit, ua.render_engine
|
63
|
+
assert_equal "528.8", ua.render_engine_version.full
|
64
|
+
assert_equal :chrome, ua.name
|
65
|
+
assert_equal "2.0.156.1", ua.version.full
|
66
|
+
assert_equal "2.0", ua.version.major
|
67
|
+
assert_equal [], ua.emails
|
68
|
+
assert_equal nil, ua.email
|
69
|
+
assert_equal [], ua.urls
|
70
|
+
assert_equal nil, ua.url
|
71
|
+
[:architecture, :dotnet_versions, :os, :os_type, :os_version, :ui_lang, :ui_lang_country, :vendor].each do |method|
|
72
|
+
assert_raise NotImplementedError do
|
73
|
+
ua.method(method).call
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def test_chrome_201572_windows_vista
|
79
|
+
ua = UserAgent.new "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/528.10 (KHTML, like Gecko) Chrome/2.0.157.2 Safari/528.10"
|
80
|
+
assert ua.known?
|
81
|
+
assert ua.browser?
|
82
|
+
assert !ua.bot?
|
83
|
+
assert !ua.feed_reader?
|
84
|
+
assert !ua.other?
|
85
|
+
assert_equal :webkit, ua.render_engine
|
86
|
+
assert_equal "528.10", ua.render_engine_version.full
|
87
|
+
assert_equal :chrome, ua.name
|
88
|
+
assert_equal "2.0.157.2", ua.version.full
|
89
|
+
assert_equal "2.0", ua.version.major
|
90
|
+
assert_equal [], ua.emails
|
91
|
+
assert_equal nil, ua.email
|
92
|
+
assert_equal [], ua.urls
|
93
|
+
assert_equal nil, ua.url
|
94
|
+
[:architecture, :dotnet_versions, :os, :os_type, :os_version, :ui_lang, :ui_lang_country, :vendor].each do |method|
|
95
|
+
assert_raise NotImplementedError do
|
96
|
+
ua.method(method).call
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
=begin
|
102
|
+
def test_safari_132_mac_10_ppc
|
103
|
+
ua = UserAgent.new "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-us) AppleWebKit/312.8 (KHTML, like Gecko) Safari/312.6"
|
104
|
+
assert ua.known?
|
105
|
+
assert ua.browser?
|
106
|
+
assert !ua.bot?
|
107
|
+
assert !ua.feed_reader?
|
108
|
+
assert !ua.other?
|
109
|
+
assert_equal :webkit, ua.render_engine
|
110
|
+
assert_equal "312.6", ua.render_engine_version.full
|
111
|
+
assert_equal :safari, ua.name
|
112
|
+
assert_equal "1.3.2", ua.version.full
|
113
|
+
assert_equal "1.3", ua.version.major
|
114
|
+
assert_equal [], ua.emails
|
115
|
+
assert_equal nil, ua.email
|
116
|
+
assert_equal [], ua.urls
|
117
|
+
assert_equal nil, ua.url
|
118
|
+
[:architecture, :dotnet_versions, :os, :os_type, :os_version, :ui_lang, :ui_lang_country, :vendor].each do |method|
|
119
|
+
assert_raise NotImplementedError do
|
120
|
+
ua.method(method).call
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
def test_safari_202
|
126
|
+
ua = UserAgent.new "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; fr) AppleWebKit/416.12 (KHTML, like Gecko) Safari/412.5"
|
127
|
+
assert ua.known?
|
128
|
+
assert ua.browser?
|
129
|
+
assert !ua.bot?
|
130
|
+
assert !ua.feed_reader?
|
131
|
+
assert !ua.other?
|
132
|
+
assert_equal :webkit, ua.render_engine
|
133
|
+
assert_equal "412.5", ua.render_engine_version.full
|
134
|
+
assert_equal :safari, ua.name
|
135
|
+
assert_equal "2.0.2", ua.version.full
|
136
|
+
assert_equal "2.0", ua.version.major
|
137
|
+
assert_equal [], ua.emails
|
138
|
+
assert_equal nil, ua.email
|
139
|
+
assert_equal [], ua.urls
|
140
|
+
assert_equal nil, ua.url
|
141
|
+
[:architecture, :dotnet_versions, :os, :os_type, :os_version, :ui_lang, :ui_lang_country, :vendor].each do |method|
|
142
|
+
assert_raise NotImplementedError do
|
143
|
+
ua.method(method).call
|
144
|
+
end
|
145
|
+
end
|
146
|
+
end
|
147
|
+
=end
|
148
|
+
|
149
|
+
def test_safari_32_mac_intel
|
150
|
+
ua = UserAgent.new "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_5; ja-jp) AppleWebKit/525.26.2 (KHTML, like Gecko) Version/3.2 Safari/525.26.12"
|
151
|
+
assert ua.known?
|
152
|
+
assert ua.browser?
|
153
|
+
assert !ua.bot?
|
154
|
+
assert !ua.feed_reader?
|
155
|
+
assert !ua.other?
|
156
|
+
assert_equal :webkit, ua.render_engine
|
157
|
+
assert_equal "525.26.2", ua.render_engine_version.full
|
158
|
+
assert_equal "525.26", ua.render_engine_version.major
|
159
|
+
assert_equal :safari, ua.name
|
160
|
+
assert_equal "3.2", ua.version.full
|
161
|
+
assert_equal "3.2", ua.version.major
|
162
|
+
assert_equal [], ua.emails
|
163
|
+
assert_equal nil, ua.email
|
164
|
+
assert_equal [], ua.urls
|
165
|
+
assert_equal nil, ua.url
|
166
|
+
[:architecture, :dotnet_versions, :os, :os_type, :os_version, :ui_lang, :ui_lang_country, :vendor].each do |method|
|
167
|
+
assert_raise NotImplementedError do
|
168
|
+
ua.method(method).call
|
169
|
+
end
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
def test_safari_32_windows_xp
|
174
|
+
ua = UserAgent.new "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU) AppleWebKit/525.26.2 (KHTML, like Gecko) Version/3.2 Safari/525.26.13"
|
175
|
+
assert ua.known?
|
176
|
+
assert ua.browser?
|
177
|
+
assert !ua.bot?
|
178
|
+
assert !ua.feed_reader?
|
179
|
+
assert !ua.other?
|
180
|
+
assert_equal :webkit, ua.render_engine
|
181
|
+
assert_equal "525.26.2", ua.render_engine_version.full
|
182
|
+
assert_equal :safari, ua.name
|
183
|
+
assert_equal "3.2", ua.version.full
|
184
|
+
assert_equal "3.2", ua.version.major
|
185
|
+
assert_equal [], ua.emails
|
186
|
+
assert_equal nil, ua.email
|
187
|
+
assert_equal [], ua.urls
|
188
|
+
assert_equal nil, ua.url
|
189
|
+
[:architecture, :dotnet_versions, :os, :os_type, :os_version, :ui_lang, :ui_lang_country, :vendor].each do |method|
|
190
|
+
assert_raise NotImplementedError do
|
191
|
+
ua.method(method).call
|
192
|
+
end
|
193
|
+
end
|
194
|
+
end
|
195
|
+
|
196
|
+
def test_safari_40_mac_ppc
|
197
|
+
ua = UserAgent.new "Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_4_11; en) AppleWebKit/528.4+ (KHTML, like Gecko) Version/4.0 Safari/528.1"
|
198
|
+
assert ua.known?
|
199
|
+
assert ua.browser?
|
200
|
+
assert !ua.bot?
|
201
|
+
assert !ua.feed_reader?
|
202
|
+
assert !ua.other?
|
203
|
+
assert_equal :webkit, ua.render_engine
|
204
|
+
assert_equal "528.4+", ua.render_engine_version.full
|
205
|
+
assert_equal "528.4+", ua.render_engine_version.major
|
206
|
+
assert_equal :safari, ua.name
|
207
|
+
assert_equal "4.0", ua.version.full
|
208
|
+
assert_equal "4.0", ua.version.major
|
209
|
+
assert_equal [], ua.emails
|
210
|
+
assert_equal nil, ua.email
|
211
|
+
assert_equal [], ua.urls
|
212
|
+
assert_equal nil, ua.url
|
213
|
+
[:architecture, :dotnet_versions, :os, :os_type, :os_version, :ui_lang, :ui_lang_country, :vendor].each do |method|
|
214
|
+
assert_raise NotImplementedError do
|
215
|
+
ua.method(method).call
|
216
|
+
end
|
217
|
+
end
|
218
|
+
end
|
219
|
+
|
220
|
+
def test_safari_40dp1_mac_10_intel
|
221
|
+
ua = UserAgent.new "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-gb) AppleWebKit/528.10+ (KHTML, like Gecko) Version/4.0dp1 Safari/526.11.2"
|
222
|
+
assert ua.known?
|
223
|
+
assert ua.browser?
|
224
|
+
assert !ua.bot?
|
225
|
+
assert !ua.feed_reader?
|
226
|
+
assert !ua.other?
|
227
|
+
assert_equal :webkit, ua.render_engine
|
228
|
+
assert_equal "528.10+", ua.render_engine_version.full
|
229
|
+
assert_equal :safari, ua.name
|
230
|
+
assert_equal "4.0dp1", ua.version.full
|
231
|
+
assert_equal "4.0dp", ua.version.major
|
232
|
+
assert_equal [], ua.emails
|
233
|
+
assert_equal nil, ua.email
|
234
|
+
assert_equal [], ua.urls
|
235
|
+
assert_equal nil, ua.url
|
236
|
+
[:architecture, :dotnet_versions, :os, :os_type, :os_version, :ui_lang, :ui_lang_country, :vendor].each do |method|
|
237
|
+
assert_raise NotImplementedError do
|
238
|
+
ua.method(method).call
|
239
|
+
end
|
240
|
+
end
|
241
|
+
end
|
242
|
+
end
|