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.
@@ -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
@@ -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