aua 0.2.2 → 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +3 -0
- data/.travis.yml +5 -0
- data/Gemfile +2 -0
- data/Guardfile +1 -1
- data/aua.gemspec +5 -5
- data/lib/aua.rb +17 -17
- data/lib/aua/agents.rb +2 -2
- data/lib/aua/agents/api_clients.rb +6 -6
- data/lib/aua/agents/chrome.rb +3 -3
- data/lib/aua/agents/engine_fallback.rb +2 -2
- data/lib/aua/agents/feed_reader.rb +6 -6
- data/lib/aua/agents/firefox.rb +4 -4
- data/lib/aua/agents/http_checker.rb +5 -5
- data/lib/aua/agents/konqueror.rb +4 -4
- data/lib/aua/agents/msie.rb +10 -7
- data/lib/aua/agents/opera.rb +4 -4
- data/lib/aua/agents/other_browsers.rb +3 -3
- data/lib/aua/agents/others.rb +5 -5
- data/lib/aua/agents/safari.rb +8 -8
- data/lib/aua/agents/search_bot.rb +5 -5
- data/lib/aua/operating_systems.rb +1 -1
- data/lib/aua/operating_systems/android.rb +8 -8
- data/lib/aua/operating_systems/ios.rb +4 -4
- data/lib/aua/operating_systems/linux.rb +6 -6
- data/lib/aua/operating_systems/mac.rb +11 -11
- data/lib/aua/operating_systems/mobiles.rb +5 -5
- data/lib/aua/operating_systems/palm.rb +9 -9
- data/lib/aua/operating_systems/windows.rb +10 -8
- data/lib/aua/version.rb +1 -1
- data/spec/aua_spec.rb +77 -57
- data/spec/spec_helper.rb +5 -0
- metadata +40 -31
- data/.rvmrc +0 -1
- data/Gemfile.lock +0 -42
data/lib/aua/agents/others.rb
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
module Aua::Agents::Others
|
2
2
|
KNOWN_CLIENTS = %w(1PasswordThumbs 1PasswordThumbs1)
|
3
|
-
|
3
|
+
|
4
4
|
def self.extend?(agent)
|
5
5
|
KNOWN_CLIENTS.include?(agent.app) ||
|
6
6
|
(agent.app == "Microsoft" && agent.products[1] == "Office") ||
|
7
7
|
agent.products[-1] == "Word"
|
8
8
|
end
|
9
|
-
|
9
|
+
|
10
10
|
def type
|
11
11
|
:Others
|
12
12
|
end
|
13
|
-
|
13
|
+
|
14
14
|
def name
|
15
15
|
@name ||= begin
|
16
16
|
if app == "Microsoft" && products[1] == "Office"
|
@@ -24,13 +24,13 @@ module Aua::Agents::Others
|
|
24
24
|
end
|
25
25
|
end
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
28
|
def version
|
29
29
|
@version ||= begin
|
30
30
|
return version_of("Word") if name == :MSWord
|
31
31
|
return version_of("Office") if name == :MSOffice
|
32
32
|
return "1" if app == "1PasswordThumbs1"
|
33
|
-
super
|
33
|
+
super
|
34
34
|
end
|
35
35
|
end
|
36
36
|
end
|
data/lib/aua/agents/safari.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
module Aua::Agents::Safari
|
2
2
|
def self.extend?(agent)
|
3
|
-
agent.products[-1] == "Safari" ||
|
4
|
-
agent.products[0] == "Safari" ||
|
3
|
+
agent.products[-1] == "Safari" ||
|
4
|
+
agent.products[0] == "Safari" ||
|
5
5
|
(agent.products == ["Mozilla", "AppleWebKit", "Mobile"] && Aua::OperatingSystems::IOS::PLATFORMS.include?(agent.platform_string)) ||
|
6
6
|
agent.products.include?("OmniWeb") ||
|
7
7
|
agent.products[0] == "MobileSafari"
|
8
8
|
end
|
9
|
-
|
9
|
+
|
10
10
|
BUILDS = {
|
11
11
|
'85' => '1.0',
|
12
12
|
'85.5'=>'1.0',
|
@@ -38,11 +38,11 @@ module Aua::Agents::Safari
|
|
38
38
|
'419' => '2.0.4',
|
39
39
|
'425.13' => '2.2'
|
40
40
|
}
|
41
|
-
|
41
|
+
|
42
42
|
def type
|
43
43
|
:Browser
|
44
44
|
end
|
45
|
-
|
45
|
+
|
46
46
|
def name
|
47
47
|
@name ||= begin
|
48
48
|
return :MobileSafari if products.include?("Mobile") || products[0] == "MobileSafari"
|
@@ -51,15 +51,15 @@ module Aua::Agents::Safari
|
|
51
51
|
:Safari
|
52
52
|
end
|
53
53
|
end
|
54
|
-
|
54
|
+
|
55
55
|
def version
|
56
56
|
@version ||= begin
|
57
57
|
case name
|
58
58
|
when :Fluid, :OmniWeb
|
59
59
|
version_of(name)
|
60
60
|
else
|
61
|
-
version_of("Version") || BUILDS[version_of("Safari")] ||
|
62
|
-
version_of("Mobile") || version_of("MobileSafari") || version_of("Safari")
|
61
|
+
version_of("Version") || BUILDS[version_of("Safari")] ||
|
62
|
+
version_of("Mobile") || version_of("MobileSafari") || version_of("Safari")
|
63
63
|
end
|
64
64
|
end
|
65
65
|
end
|
@@ -2,7 +2,7 @@ module Aua::Agents::SearchBot
|
|
2
2
|
PATTERN_BING = /bingbot\/([\d\.]+)/
|
3
3
|
PATTERN_BAIDU = /Baiduspider\/?([\d\.]+)?/
|
4
4
|
PATTERN_GOOGLE = /Googlebot(-Mobile)?\/?([\d\.]+)?/
|
5
|
-
|
5
|
+
|
6
6
|
def self.extend?(agent)
|
7
7
|
agent.raw =~ PATTERN_BING ||
|
8
8
|
agent.app_comments[1] == "Yahoo! Slurp" ||
|
@@ -10,11 +10,11 @@ module Aua::Agents::SearchBot
|
|
10
10
|
agent.raw =~ PATTERN_GOOGLE ||
|
11
11
|
agent.app == "msnbot"
|
12
12
|
end
|
13
|
-
|
13
|
+
|
14
14
|
def type
|
15
15
|
:SearchBot
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
def name
|
19
19
|
@name ||= begin
|
20
20
|
return :Bingbot if raw =~ PATTERN_BING
|
@@ -24,13 +24,13 @@ module Aua::Agents::SearchBot
|
|
24
24
|
app.to_sym
|
25
25
|
end
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
28
|
def version
|
29
29
|
@version ||= begin
|
30
30
|
return $1 if raw =~ PATTERN_BING
|
31
31
|
return $1 if raw =~ PATTERN_BAIDU
|
32
32
|
return $2 if raw =~ PATTERN_GOOGLE
|
33
|
-
super
|
33
|
+
super
|
34
34
|
end
|
35
35
|
end
|
36
36
|
end
|
@@ -1,28 +1,28 @@
|
|
1
1
|
module Aua::OperatingSystems::Android
|
2
|
-
|
2
|
+
|
3
3
|
def self.extend?(agent)
|
4
4
|
agent.platform_string == "Linux" && agent.comments.first && agent.comments.first[2] && agent.comments.first[2].match(PATTERN)
|
5
5
|
end
|
6
|
-
|
6
|
+
|
7
7
|
PATTERN = /^Android\s([\d\.]+)$/
|
8
|
-
|
8
|
+
|
9
9
|
def platform
|
10
10
|
@platform ||= :Android
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
def os_name
|
14
14
|
@os_name ||= :Android
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
def os_version
|
18
18
|
@os_version ||= comments.first[2] =~ PATTERN && $1
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
def name
|
22
22
|
@name ||= :AndroidWebkit
|
23
23
|
end
|
24
|
-
|
24
|
+
|
25
25
|
def version
|
26
|
-
@version ||= version_of("Version")
|
26
|
+
@version ||= version_of("Version")
|
27
27
|
end
|
28
28
|
end
|
@@ -1,19 +1,19 @@
|
|
1
1
|
module Aua::OperatingSystems::IOS
|
2
2
|
PLATFORMS = %w(iPhone iPad iPod)
|
3
3
|
PATTERN = /CPU( iPhone)?( OS )?([\d\._]+)? like Mac OS X/
|
4
|
-
|
4
|
+
|
5
5
|
def self.extend?(agent)
|
6
6
|
PLATFORMS.include?(agent.platform_string) && agent.os_string =~ PATTERN
|
7
7
|
end
|
8
|
-
|
8
|
+
|
9
9
|
def platform
|
10
10
|
platform_string.to_sym
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
def os_name
|
14
14
|
:iOS
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
def os_version
|
18
18
|
os_string =~ PATTERN && $3 && $3.gsub(/_/, ".")
|
19
19
|
end
|
@@ -1,22 +1,22 @@
|
|
1
1
|
module Aua::OperatingSystems::Linux
|
2
|
-
|
2
|
+
|
3
3
|
def self.extend?(agent)
|
4
4
|
agent.platform_string == "X11" || agent.app_comments_string.match(PATTERN_LINUX)
|
5
5
|
end
|
6
|
-
|
6
|
+
|
7
7
|
PATTERN_LINUX = /(l|L)inux/
|
8
|
-
|
8
|
+
|
9
9
|
def platform
|
10
10
|
:X11
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
def os_name
|
14
14
|
:Linux
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
def os_version
|
18
18
|
@os_version ||= if app_comments_string =~ /OpenBSD/
|
19
|
-
"OpenBSD"
|
19
|
+
"OpenBSD"
|
20
20
|
elsif products.include?("Ubuntu")
|
21
21
|
"Ubuntu"
|
22
22
|
elsif products.include?("Red") && products.include?("Hat")
|
@@ -1,11 +1,11 @@
|
|
1
1
|
module Aua::OperatingSystems::Mac
|
2
|
-
|
2
|
+
|
3
3
|
def self.extend?(agent)
|
4
|
-
agent.platform_string == "Macintosh" ||
|
5
|
-
agent.os_string && agent.os_string =~ PATTERN_MACOS ||
|
4
|
+
agent.platform_string == "Macintosh" ||
|
5
|
+
agent.os_string && agent.os_string =~ PATTERN_MACOS ||
|
6
6
|
agent.products.include?("Darwin")
|
7
7
|
end
|
8
|
-
|
8
|
+
|
9
9
|
PATTERN_OSX = /Mac OS X\s?([\d\._]+)?/
|
10
10
|
PATTERN_MACOS = /Mac_PowerPC/
|
11
11
|
DAWRWIN_2_OSX = {
|
@@ -37,11 +37,11 @@ module Aua::OperatingSystems::Mac
|
|
37
37
|
'10.5.0' => '10.6.5',
|
38
38
|
'10.6.0' => '10.6.6'
|
39
39
|
}
|
40
|
-
|
40
|
+
|
41
41
|
def platform
|
42
42
|
darwin? && !DAWRWIN_2_OSX[version_of(:Darwin)] ? :Darwin : :Macintosh
|
43
43
|
end
|
44
|
-
|
44
|
+
|
45
45
|
def os_name
|
46
46
|
@os_name ||= if osx?
|
47
47
|
:MacOSX
|
@@ -51,7 +51,7 @@ module Aua::OperatingSystems::Mac
|
|
51
51
|
:MacOS
|
52
52
|
end
|
53
53
|
end
|
54
|
-
|
54
|
+
|
55
55
|
def os_version
|
56
56
|
@os_version ||= if m = osx?
|
57
57
|
m[1] ? m[1].gsub(/_/, ".") : nil
|
@@ -59,17 +59,17 @@ module Aua::OperatingSystems::Mac
|
|
59
59
|
DAWRWIN_2_OSX[version_of(:Darwin)] || version_of(:Darwin)
|
60
60
|
end
|
61
61
|
end
|
62
|
-
|
62
|
+
|
63
63
|
private
|
64
|
-
|
64
|
+
|
65
65
|
def osx?
|
66
66
|
app_comments_string.match PATTERN_OSX
|
67
67
|
end
|
68
|
-
|
68
|
+
|
69
69
|
def macos?
|
70
70
|
app_comments_string.match PATTERN_MACOS
|
71
71
|
end
|
72
|
-
|
72
|
+
|
73
73
|
def darwin?
|
74
74
|
products.include?("Darwin")
|
75
75
|
end
|
@@ -4,9 +4,9 @@ module Aua::OperatingSystems::Mobiles
|
|
4
4
|
agent.platform_string == "J2ME/MIDP" ||
|
5
5
|
agent.app_comments_string =~ PATTERN_SYMBIAN
|
6
6
|
end
|
7
|
-
|
7
|
+
|
8
8
|
PATTERN_SYMBIAN = /Symb(ian)?\s?OS\/?([\d\.]+)?/
|
9
|
-
|
9
|
+
|
10
10
|
def name
|
11
11
|
@name ||= begin
|
12
12
|
name = super
|
@@ -14,18 +14,18 @@ module Aua::OperatingSystems::Mobiles
|
|
14
14
|
name
|
15
15
|
end
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
def platform
|
19
19
|
@platform ||= begin
|
20
20
|
return :SymbianOS if app_comments_string =~ PATTERN_SYMBIAN
|
21
21
|
platform_string.to_sym
|
22
22
|
end
|
23
23
|
end
|
24
|
-
|
24
|
+
|
25
25
|
def os_name
|
26
26
|
@os_name ||= platform
|
27
27
|
end
|
28
|
-
|
28
|
+
|
29
29
|
def os_version
|
30
30
|
@os_version ||= begin
|
31
31
|
return $2 if app_comments_string =~ PATTERN_SYMBIAN
|
@@ -1,33 +1,33 @@
|
|
1
1
|
module Aua::OperatingSystems::Palm
|
2
2
|
#{ }"Mozilla/5.0 (webOS/1.3; U; en-US) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/1.0 Safari/525.27.1 Desktop/1.0"
|
3
|
-
|
3
|
+
|
4
4
|
def self.extend?(agent)
|
5
5
|
agent.platform_string =~ PATTERN && agent.products.include?("Safari")
|
6
6
|
end
|
7
|
-
|
7
|
+
|
8
8
|
PATTERN = /^webOS\/([\d\.]+)$/
|
9
|
-
|
9
|
+
|
10
10
|
def platform
|
11
11
|
@platform ||= :webOS
|
12
12
|
end
|
13
|
-
|
13
|
+
|
14
14
|
def os_name
|
15
15
|
@os_name ||= :webOS
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
def os_version
|
19
19
|
@os_version ||= platform_string =~ PATTERN && $1
|
20
20
|
end
|
21
|
-
|
21
|
+
|
22
22
|
def type
|
23
23
|
:Browser
|
24
24
|
end
|
25
|
-
|
25
|
+
|
26
26
|
def name
|
27
27
|
@name ||= :webOSWebkit
|
28
28
|
end
|
29
|
-
|
29
|
+
|
30
30
|
def version
|
31
|
-
@version ||= version_of("Version")
|
31
|
+
@version ||= version_of("Version")
|
32
32
|
end
|
33
33
|
end
|
@@ -1,12 +1,14 @@
|
|
1
1
|
module Aua::OperatingSystems::Windows
|
2
|
-
|
2
|
+
|
3
3
|
def self.extend?(agent)
|
4
|
-
agent.comments.first &&
|
4
|
+
agent.comments.first &&
|
5
5
|
(agent.app_comments.include?("Windows") ||
|
6
6
|
agent.comments_string =~ PATTERN)
|
7
7
|
end
|
8
|
-
|
8
|
+
|
9
9
|
VERSIONS = {
|
10
|
+
"NT 6.3" => "8.1",
|
11
|
+
"NT 6.2" => "8",
|
10
12
|
"NT 6.1" => "7",
|
11
13
|
"NT 6.0" => "Vista",
|
12
14
|
"NT 5.2" => "XP",
|
@@ -19,18 +21,18 @@ module Aua::OperatingSystems::Windows
|
|
19
21
|
"CE" => "CE",
|
20
22
|
"9x 4.90" => "ME"
|
21
23
|
}
|
22
|
-
|
24
|
+
|
23
25
|
PATTERN = /Win(dows)?\s?([\d\sA-Zx\.]+)/
|
24
|
-
|
26
|
+
|
25
27
|
def platform
|
26
28
|
:Windows
|
27
29
|
end
|
28
|
-
|
30
|
+
|
29
31
|
def os_name
|
30
32
|
:Windows
|
31
33
|
end
|
32
|
-
|
34
|
+
|
33
35
|
def os_version
|
34
|
-
@os_version ||= comments_string =~ PATTERN && VERSIONS[$2] || $2
|
36
|
+
@os_version ||= comments_string =~ PATTERN && VERSIONS[$2] || $2
|
35
37
|
end
|
36
38
|
end
|
data/lib/aua/version.rb
CHANGED
data/spec/aua_spec.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Aua do
|
4
|
-
|
4
|
+
|
5
5
|
describe ".parse/.new" do
|
6
6
|
it "should be fast" do
|
7
7
|
start = Time.now
|
8
8
|
runs = 10
|
9
|
-
runs.times do
|
9
|
+
runs.times do
|
10
10
|
EXAMPLES.each do |string, values|
|
11
11
|
Aua.parse string
|
12
12
|
end
|
@@ -16,34 +16,36 @@ describe Aua do
|
|
16
16
|
puts "#{sec} sec #{mspr} ms/string #{(EXAMPLES.size*runs/sec).to_i} strings/sec"
|
17
17
|
mspr.should < 0.2
|
18
18
|
end
|
19
|
-
|
19
|
+
|
20
20
|
context "when parsing blank string" do
|
21
21
|
let(:user_agent) { Aua.parse("") }
|
22
|
-
|
22
|
+
|
23
23
|
it "returns an instance of Aua" do
|
24
24
|
user_agent.should be_kind_of(Aua)
|
25
25
|
end
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
28
|
context "when parsing nil" do
|
29
29
|
let(:user_agent) { Aua.parse(nil) }
|
30
|
-
|
30
|
+
|
31
31
|
it "returns an instance of Aua" do
|
32
32
|
user_agent.should be_kind_of(Aua)
|
33
33
|
end
|
34
34
|
end
|
35
|
-
|
35
|
+
|
36
36
|
context "when parsing unknown string" do
|
37
37
|
let(:user_agent) { Aua.parse("Bla/1.2.3;Blupp;X/2.0.0") }
|
38
|
-
|
38
|
+
|
39
39
|
it "returns an instance of Aua" do
|
40
40
|
user_agent.should be_kind_of(Aua)
|
41
41
|
end
|
42
42
|
end
|
43
|
-
|
43
|
+
|
44
44
|
EXAMPLES = {
|
45
45
|
# Firefox
|
46
|
-
"Mozilla/5.0 (Macintosh;
|
46
|
+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:22.0) Gecko/20100101 Firefox/22.0" =>
|
47
|
+
{ :type => :Browser, :name => :Firefox, :version => "22.0", :major_version => "22.0", :os_name => :MacOSX, :os_version => "10.8", :os_major_version => "10.8", :platform => :Macintosh },
|
48
|
+
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; de; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13" =>
|
47
49
|
{ :type => :Browser, :name => :Firefox, :version => "3.6.13", :major_version => "3.6", :os_name => :MacOSX, :os_version => "10.6", :os_major_version => "10.6", :platform => :Macintosh },
|
48
50
|
"Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.11) Gecko/20101012 Firefox/3.6.11 " =>
|
49
51
|
{ :type => :Browser, :name => :Firefox, :version => "3.6.11", :major_version => "3.6", :os_name => :Windows, :os_version => "Vista", :os_major_version => "Vista", :platform => :Windows },
|
@@ -81,7 +83,7 @@ describe Aua do
|
|
81
83
|
{ :type => :Browser, :name => :Firefox, :version => "4.0b10pre", :major_version => "4.0b", :os_name => :Linux, :os_version => nil, :os_major_version => nil, :platform => :X11 },
|
82
84
|
"Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.14pre) Gecko/20110113 Ubuntu/9.10 (karmic) Namoroka/3.6.14pre" =>
|
83
85
|
{ :type => :Browser, :name => :Firefox, :version => "3.6.14pre", :major_version => "3.6", :os_name => :Linux, :os_version => "Ubuntu", :platform => :X11 },
|
84
|
-
|
86
|
+
|
85
87
|
# Firefox/Mozilla based
|
86
88
|
"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9a9pre) Gecko/2007110108 prism/0.8" =>
|
87
89
|
{ :type => :Browser, :name => :Prism, :version => "0.8", :major_version => "0.8", :os_name => :Windows, :os_version => "7", :platform => :Windows },
|
@@ -107,15 +109,17 @@ describe Aua do
|
|
107
109
|
{ :type => :Browser, :name => :NetscapeNavigator, :version => "9.0.0.6", :os_name => :Linux, :os_version => nil, :platform => :X11 },
|
108
110
|
"Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.5) Gecko/20050519 Netscape/8.0.1" =>
|
109
111
|
{ :type => :Browser, :name => :NetscapeNavigator, :version => "8.0.1", :os_name => :Windows, :os_version => "2000", :platform => :Windows },
|
110
|
-
|
112
|
+
|
111
113
|
# Safari
|
114
|
+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/536.30.1 (KHTML, like Gecko) Version/6.0.5 Safari/536.30.1" =>
|
115
|
+
{ :type => :Browser, :name => :Safari, :version => "6.0.5", :os_name => :MacOSX, :os_version => "10.8.4", :os_major_version => "10.8", :platform => :Macintosh },
|
112
116
|
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; de-de) AppleWebKit/533.18.1 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5" =>
|
113
117
|
{ :type => :Browser, :name => :Safari, :version => "5.0.2", :os_name => :MacOSX, :os_version => "10.5.8", :os_major_version => "10.5", :platform => :Macintosh },
|
114
118
|
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-us) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4" =>
|
115
119
|
{ :type => :Browser, :name => :Safari, :version => "5.0.3", :os_name => :MacOSX, :os_version => "10.6.6", :os_major_version => "10.6", :platform => :Macintosh },
|
116
120
|
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; de-de) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10" =>
|
117
121
|
{ :type => :Browser, :name => :Safari, :version => "4.0.4", :os_name => :MacOSX, :os_version => "10.6.2", :platform => :Macintosh },
|
118
|
-
"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10" =>
|
122
|
+
"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10" =>
|
119
123
|
{ :type => :Browser, :name => :Safari, :version => "4.0.4", :os_name => :Windows, :os_version => "XP", :platform => :Windows },
|
120
124
|
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_7; en-us) AppleWebKit/525.28.3 (KHTML, like Gecko) Version/3.2.3 Safari/525.28.3" =>
|
121
125
|
{ :type => :Browser, :name => :Safari, :version => "3.2.3", :os_name => :MacOSX, :os_version => "10.5.7", :platform => :Macintosh },
|
@@ -129,7 +133,7 @@ describe Aua do
|
|
129
133
|
{ :type => :Browser, :name => :Safari, :version => "1.0", :os_name => :MacOSX, :os_version => nil, :platform => :Macintosh },
|
130
134
|
"Safari/6533.19.4 CFNetwork/454.11.5 Darwin/10.6.0 (i386) (iMac8%2C1)" =>
|
131
135
|
{ :type => :Browser, :name => :Safari, :version => "6533.19.4", :major_version => "6533.19", :os_name => :MacOSX, :os_version => "10.6.6", :platform => :Macintosh },
|
132
|
-
|
136
|
+
|
133
137
|
# Safari based
|
134
138
|
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; de-de) AppleWebKit/533.18.1 (KHTML, like Gecko) Fluid/0.9.6 Safari/533.18.1" =>
|
135
139
|
{ :type => :Browser, :name => :Fluid, :version => "0.9.6", :os_name => :MacOSX, :os_version => "10.5.8", :platform => :Macintosh },
|
@@ -150,16 +154,18 @@ describe Aua do
|
|
150
154
|
"Mozilla/5.0 (compatible; Konqueror/4.3; Linux 2.6.31-16-generic; X11) KHTML/4.3.2 (like Gecko)" =>
|
151
155
|
{ :type => :Browser, :name => :Konqueror, :version => "4.3", :os_name => :Linux, :os_version => nil, :platform => :X11 },
|
152
156
|
"Mozilla/5.0 (compatible; Konqueror/4.0; Windows) KHTML/4.0.83 (like Gecko)" =>
|
153
|
-
{ :type => :Browser, :name => :Konqueror, :version => "4.0", :os_name => :Windows, :os_version => nil, :platform => :Windows },
|
154
|
-
|
157
|
+
{ :type => :Browser, :name => :Konqueror, :version => "4.0", :os_name => :Windows, :os_version => nil, :platform => :Windows },
|
158
|
+
|
155
159
|
# Chrome
|
160
|
+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36" =>
|
161
|
+
{ :type => :Browser, :name => :Chrome, :version => "28.0.1500.71", :major_version => "28.0", :os_name => :MacOSX, :os_version => "10.8.4", :platform => :Macintosh },
|
156
162
|
"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.638.0 Safari/534.16" =>
|
157
163
|
{ :type => :Browser, :name => :Chrome, :version => "10.0.638.0", :major_version => "10.0", :os_name => :Windows, :os_version => "7", :platform => :Windows },
|
158
164
|
"Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.15 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.613.0 Chrome/10.0.613.0 Safari/534.15" =>
|
159
165
|
{ :type => :Browser, :name => :Chrome, :version => "10.0.613.0", :os_name => :Linux, :os_version => "Ubuntu", :platform => :X11 },
|
160
166
|
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.231 Safari/534.10" =>
|
161
167
|
{ :type => :Browser, :name => :Chrome, :version => "8.0.552.231", :os_name => :MacOSX, :os_version => "10.6.4", :platform => :Macintosh },
|
162
|
-
|
168
|
+
|
163
169
|
# Chrome based
|
164
170
|
"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.237 Safari/534.10 chromeframe/8.0.552.237" =>
|
165
171
|
{ :type => :Browser, :name => :Chromeframe, :version => "8.0.552.237", :os_name => :Windows, :os_version => "7", :platform => :Windows },
|
@@ -171,7 +177,7 @@ describe Aua do
|
|
171
177
|
{ :type => :Browser, :name => :Iron, :version => "5.0.381.0", :os_name => :MacOSX, :os_version => "10.5.8", :platform => :Macintosh },
|
172
178
|
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-US) AppleWebKit/534.10 (KHTML, like Gecko) RockMelt/0.8.40.147 Chrome/8.0.552.231 Safari/534.10" =>
|
173
179
|
{ :type => :Browser, :name => :RockMelt, :version => "0.8.40.147", :os_name => :MacOSX, :os_version => "10.6.6", :platform => :Macintosh },
|
174
|
-
|
180
|
+
|
175
181
|
# Opera
|
176
182
|
"Opera/9.80 (Windows NT 6.1; U; de) Presto/2.7.62 Version/11.00" =>
|
177
183
|
{ :type => :Browser, :name => :Opera, :version => "11.00", :os_name => :Windows, :os_version => "7", :platform => :Windows },
|
@@ -183,11 +189,11 @@ describe Aua do
|
|
183
189
|
{ :type => :Browser, :name => :Opera, :version => "10.00", :os_name => :Linux, :os_version => nil, :platform => :X11 },
|
184
190
|
"Opera/9.25 (Windows NT 6.0; U; en)" =>
|
185
191
|
{ :type => :Browser, :name => :Opera, :version => "9.25", :os_name => :Windows, :os_version => "Vista", :platform => :Windows },
|
186
|
-
"Mozilla/5.0 (Macintosh; PPC Mac OS X; U; en) Opera 8.5" =>
|
192
|
+
"Mozilla/5.0 (Macintosh; PPC Mac OS X; U; en) Opera 8.5" =>
|
187
193
|
{ :type => :Browser, :name => :Opera, :version => "8.5", :os_name => :MacOSX, :os_version => nil, :platform => :Macintosh },
|
188
|
-
"Mozilla/4.0 (compatible; MSIE 6.0; Mac_PowerPC Mac OS X; en) Opera 8.5" =>
|
194
|
+
"Mozilla/4.0 (compatible; MSIE 6.0; Mac_PowerPC Mac OS X; en) Opera 8.5" =>
|
189
195
|
{ :type => :Browser, :name => :Opera, :version => "8.5", :os_name => :MacOSX, :os_version => nil, :platform => :Macintosh },
|
190
|
-
"Opera/8.5 (Macintosh; PPC Mac OS X; U; en)" =>
|
196
|
+
"Opera/8.5 (Macintosh; PPC Mac OS X; U; en)" =>
|
191
197
|
{ :type => :Browser, :name => :Opera, :version => "8.5", :os_name => :MacOSX, :os_version => nil, :platform => :Macintosh },
|
192
198
|
"Opera/8.01 (Windows NT 5.1)" =>
|
193
199
|
{ :type => :Browser, :name => :Opera, :version => "8.01", :major_version => "8.01", :os_name => :Windows, :os_version => "XP", :platform => :Windows },
|
@@ -195,7 +201,7 @@ describe Aua do
|
|
195
201
|
{ :type => :Browser, :name => :Opera, :version => "8.01", :os_name => :Windows, :os_version => "XP", :platform => :Windows },
|
196
202
|
"Mozilla/4.0 (compatible; MSIE 5.0; Windows 95) Opera 6.01 [en]" =>
|
197
203
|
{ :type => :Browser, :name => :Opera, :version => "6.01", :os_name => :Windows, :os_version => "95", :platform => :Windows },
|
198
|
-
|
204
|
+
|
199
205
|
# Opera Mini/Mobile
|
200
206
|
"Opera/9.80 (BlackBerry; Opera Mini/5.1.22303/22.453; U; de) Presto/2.5.25 Version/10.54" =>
|
201
207
|
{ :type => :Browser, :name => :OperaMini, :version => "5.1.22303", :os_name => :BlackBerry, :os_version => nil, :platform => :BlackBerry },
|
@@ -207,8 +213,14 @@ describe Aua do
|
|
207
213
|
{ :type => :Browser, :name => :OperaMobile, :version => "10.00", :os_name => :SymbianOS, :os_version => nil, :platform => :SymbianOS },
|
208
214
|
"Opera/9.80 (Linux armv7l; Maemo; Opera Mobi/4; U; de) Presto/2.5.28 Version/10.1" =>
|
209
215
|
{ :type => :Browser, :name => :OperaMobile, :version => "10.1", :os_name => :Linux, :os_version => "Maemo", :platform => :X11 },
|
210
|
-
|
216
|
+
|
211
217
|
# MSIE
|
218
|
+
"Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko" =>
|
219
|
+
{ :type => :Browser, :name => :MSIE, :version => "11.0", :os_name => :Windows, :os_version => "8.1", :platform => :Windows },
|
220
|
+
"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)" =>
|
221
|
+
{ :type => :Browser, :name => :MSIE, :version => "10.0", :os_name => :Windows, :os_version => "8", :platform => :Windows },
|
222
|
+
"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)" =>
|
223
|
+
{ :type => :Browser, :name => :MSIE, :version => "10.0", :os_name => :Windows, :os_version => "7", :platform => :Windows },
|
212
224
|
"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)" =>
|
213
225
|
{ :type => :Browser, :name => :MSIE, :version => "9.0", :os_name => :Windows, :os_version => "7", :platform => :Windows },
|
214
226
|
"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0; .NET4.0C; InfoPath.3)" =>
|
@@ -229,7 +241,7 @@ describe Aua do
|
|
229
241
|
{ :type => :Browser, :name => :MSIE, :version => "7.0", :os_name => nil, :os_version => nil, :platform => nil },
|
230
242
|
"Mozilla/4.0 (compatible; MSIE 6.0; Windows XP)" =>
|
231
243
|
{ :type => :Browser, :name => :MSIE, :version => "6.0", :os_name => :Windows, :os_version => "XP", :platform => :Windows },
|
232
|
-
|
244
|
+
|
233
245
|
# iPhone / iPad / iPod
|
234
246
|
"Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; de-de) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5" =>
|
235
247
|
{ :type => :Browser, :name => :MobileSafari, :version => "5.0.2", :os_name => :iOS, :os_version => "4.2.1", :platform => :iPhone },
|
@@ -241,21 +253,21 @@ describe Aua do
|
|
241
253
|
{ :type => :Browser, :name => :MobileSafari, :version => "3.1.1", :os_name => :iOS, :os_version => "2.1", :platform => :iPhone },
|
242
254
|
"Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1C28 Safari/419.3" =>
|
243
255
|
{ :type => :Browser, :name => :MobileSafari, :version => "3.0", :os_name => :iOS, :os_version => nil, :platform => :iPhone },
|
244
|
-
|
256
|
+
|
245
257
|
"Mozilla/5.0 (iPod; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7" =>
|
246
258
|
{ :type => :Browser, :name => :MobileSafari, :version => "4.0.5", :os_name => :iOS, :os_version => "4.0", :platform => :iPod },
|
247
259
|
"Mozilla/5.0 (iPod; U; CPU iPhone OS 2_2_1 like Mac OS X; en-us) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5H11a Safari/525.20" =>
|
248
260
|
{ :type => :Browser, :name => :MobileSafari, :version => "3.1.1", :os_name => :iOS, :os_version => "2.2.1", :platform => :iPod },
|
249
261
|
"Mozilla/5.0 (iPod; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/3A100a Safari/419.3" =>
|
250
262
|
{ :type => :Browser, :name => :MobileSafari, :version => "3.0", :os_name => :iOS, :os_version => nil, :platform => :iPod },
|
251
|
-
|
263
|
+
|
252
264
|
"Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; es-es) AppleWebKit/531.21.10 (KHTML, like Gecko) Mobile/7B405" =>
|
253
265
|
{ :type => :Browser, :name => :MobileSafari, :version => "7B405", :major_version => "7B405", :os_name => :iOS, :os_version => "3.2.1", :platform => :iPad },
|
254
266
|
"Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; es-es) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B405 Safari/531.21.10" =>
|
255
267
|
{ :type => :Browser, :name => :MobileSafari, :version => "4.0.4", :os_name => :iOS, :os_version => "3.2.1", :platform => :iPad },
|
256
268
|
"Mozilla/5.0 (iPad; U; CPU OS 4_2_1 like Mac OS X; de-de) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5" =>
|
257
269
|
{ :type => :Browser, :name => :MobileSafari, :version => "5.0.2", :os_name => :iOS, :os_version => "4.2.1", :platform => :iPad },
|
258
|
-
|
270
|
+
|
259
271
|
# Android
|
260
272
|
"Mozilla/5.0 (Linux; U; Android 1.1; en-gb; dream) AppleWebKit/525.10+ (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2" =>
|
261
273
|
{ :type => :Browser, :name => :AndroidWebkit, :version => "3.0.4", :os_name => :Android, :os_version => "1.1", :platform => :Android },
|
@@ -263,11 +275,11 @@ describe Aua do
|
|
263
275
|
{ :type => :Browser, :name => :AndroidWebkit, :version => nil, :os_name => :Android, :os_version => "0.5", :platform => :Android },
|
264
276
|
"Mozilla/5.0 (Linux; U; Android 2.1; en-us; Nexus One Build/ERD62) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17" =>
|
265
277
|
{ :type => :Browser, :name => :AndroidWebkit, :version => "4.0", :os_name => :Android, :os_version => "2.1", :platform => :Android },
|
266
|
-
|
278
|
+
|
267
279
|
# Palm (Pre)
|
268
280
|
"Mozilla/5.0 (webOS/1.3; U; en-US) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/1.0 Safari/525.27.1 Desktop/1.0" =>
|
269
281
|
{ :type => :Browser, :name => :webOSWebkit, :version => "1.0", :os_name => :webOS, :os_version => "1.3", :platform => :webOS },
|
270
|
-
|
282
|
+
|
271
283
|
# Mobiles
|
272
284
|
"Mozilla/4.1 (compatible; MSIE 5.0; Symbian OS; Nokia 3650;424) Opera 6.10 [en]" =>
|
273
285
|
{ :type => :Browser, :name => :OperaMobile, :version => "6.10", :os_name => :SymbianOS, :os_version => nil, :platform => :SymbianOS },
|
@@ -283,7 +295,7 @@ describe Aua do
|
|
283
295
|
{ :type => :Browser, :name => :Opera, :version => "9.70", :os_name => :Windows, :os_version => "XP", :platform => :Windows },
|
284
296
|
"Swisscom/1.0/HTC_Touch_Pro/ Opera/9.50 (Windows NT 5.1; U; de)" =>
|
285
297
|
{ :type => :Browser, :name => :Opera, :version => "9.50", :os_name => :Windows, :os_version => "XP", :platform => :Windows },
|
286
|
-
|
298
|
+
|
287
299
|
# ApiClients
|
288
300
|
"curl/7.20.0 (x86_64-pc-linux-gnu) libcurl/7.20.0 OpenSSL/0.9.8l zlib/1.2.3" =>
|
289
301
|
{ :type => :ApiClient, :name => :curl, :version => "7.20.0", :os_name => :Linux, :os_version => nil, :platform => :X11 },
|
@@ -291,7 +303,7 @@ describe Aua do
|
|
291
303
|
{ :type => :ApiClient, :name => :Wget, :version => "1.12", :os_name => :Linux, :os_version => nil, :platform => :X11 },
|
292
304
|
"Wget/1.10.1 (simple)" =>
|
293
305
|
{ :type => :ApiClient, :name => :Wget, :version => "1.10.1", :os_name => nil, :os_version => nil, :platform => nil },
|
294
|
-
"Yahoo Pipes 2.0" =>
|
306
|
+
"Yahoo Pipes 2.0" =>
|
295
307
|
{ :type => :ApiClient, :name => :YahooPipes, :version => "2.0", :os_name => nil, :os_version => nil, :platform => nil },
|
296
308
|
"Zendesk" =>
|
297
309
|
{ :type => :ApiClient, :name => :Zendesk, :version => nil, :os_name => nil, :os_version => nil, :platform => nil },
|
@@ -327,7 +339,7 @@ describe Aua do
|
|
327
339
|
{ :type => :ApiClient, :name => :PythonTwistedPageGetter, :version => nil, :os_name => nil, :os_version => nil, :platform => nil },
|
328
340
|
"facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)" =>
|
329
341
|
{ :type => :ApiClient, :name => :facebookexternalhit, :version => "1.1", :os_name => nil, :os_version => nil, :platform => nil },
|
330
|
-
|
342
|
+
|
331
343
|
# Others
|
332
344
|
"1PasswordThumbs/1 CFNetwork/454.11.5 Darwin/10.0.0 (i386) (MacBookPro4%2C1)" =>
|
333
345
|
{ :type => :Others, :name => :"1PasswordThumbs", :version => "1", :os_name => :MacOSX, :os_version => "10.6", :platform => :Macintosh },
|
@@ -337,7 +349,7 @@ describe Aua do
|
|
337
349
|
{ :type => :Others, :name => :MSWord, :version => "12.25.0", :os_name => :MacOSX, :os_version => nil, :platform => :Macintosh },
|
338
350
|
"Microsoft Office/14.0 (Windows NT 6.1; Microsoft Outlook 14.0.5128; Pro; ms-office; MSOffice 14)" =>
|
339
351
|
{ :type => :Others, :name => :MSOffice, :version => "14.0", :os_name => :Windows, :os_version => "7", :platform => :Windows },
|
340
|
-
|
352
|
+
|
341
353
|
# HttpCheckers
|
342
354
|
"check_http/v2053 (nagios-plugins 1.4.13)" =>
|
343
355
|
{ :type => :HttpChecker, :name => :Nagios, :version => "v2053", :major_version => "v2053", :os_name => nil, :os_version => nil, :platform => nil },
|
@@ -349,8 +361,16 @@ describe Aua do
|
|
349
361
|
{ :type => :HttpChecker, :name => :W3C_Validator, :version => "1.1", :os_name => nil, :os_version => nil, :platform => nil },
|
350
362
|
"FeedValidator/1.3" =>
|
351
363
|
{ :type => :HttpChecker, :name => :FeedValidator, :version => "1.3", :os_name => nil, :os_version => nil, :platform => nil },
|
352
|
-
|
364
|
+
|
353
365
|
# Feed Reader/Parser
|
366
|
+
"hawkReader/0.9b (Feed Parser; http://www.hawkreader.com; Allow like Gecko)" =>
|
367
|
+
{ :type => :FeedReader, :name => :hawkReader, :version => "0.9b", :os_name => nil, :os_version => nil, :platform => nil },
|
368
|
+
"Fever/1.31 (Feed Parser; http://feedafever.com; Allow like Gecko)" =>
|
369
|
+
{ :type => :FeedReader, :name => :Fever, :version => "1.31", :os_name => nil, :os_version => nil, :platform => nil },
|
370
|
+
"Superfeedr bot/2.0 http://superfeedr.com - Make your feeds realtime: get in touch!" =>
|
371
|
+
{ :type => :FeedReader, :name => :Superfeedr, :version => "2.0", :os_name => nil, :os_version => nil, :platform => nil },
|
372
|
+
"Feedly/1.0 (+http://www.feedly.com/fetcher.html; like FeedFetcher-Google)" =>
|
373
|
+
{ :type => :FeedReader, :name => :Feedly, :version => "1.0", :os_name => nil, :os_version => nil, :platform => nil },
|
354
374
|
"Windows-RSS-Platform/2.0 (MSIE 9.0; Windows NT 6.1)" =>
|
355
375
|
{ :type => :FeedReader, :name => :"Windows-RSS-Platform", :version => "2.0", :os_name => :Windows, :os_version => "7", :platform => :Windows },
|
356
376
|
"Vienna/2.5.0.2501" =>
|
@@ -381,7 +401,7 @@ describe Aua do
|
|
381
401
|
{ :type => :FeedReader, :name => :TumblrRSSSyndication, :version => "1.0", :os_name => nil, :os_version => nil, :platform => nil },
|
382
402
|
"Reeder/1010.69.00 CFNetwork/520.3.2 Darwin/11.3.0 (x86_64) (MacBookPro6%2C2)" =>
|
383
403
|
{ :type => :FeedReader, :name => :Reeder, :version => "1010.69.00", :os_name => :Darwin, :os_version => "11.3.0", :platform => :Darwin },
|
384
|
-
|
404
|
+
|
385
405
|
# SearchBots
|
386
406
|
"Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)" =>
|
387
407
|
{ :type => :SearchBot, :name => :Bingbot, :version => "2.0", :os_name => nil, :os_version => nil, :platform => nil },
|
@@ -399,7 +419,7 @@ describe Aua do
|
|
399
419
|
{ :type => :SearchBot, :name => :Googlebot, :version => "2.1", :os_name => nil, :os_version => nil, :platform => nil },
|
400
420
|
"DoCoMo/2.0 N905i(c100;TB;W24H16) (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)" =>
|
401
421
|
{ :type => :SearchBot, :name => :GooglebotMobile, :version => "2.1", :os_name => nil, :os_version => nil, :platform => nil },
|
402
|
-
|
422
|
+
|
403
423
|
# Engine Fallbacks
|
404
424
|
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-au) AppleWebKit/533.19.4 (KHTML, like Gecko)" =>
|
405
425
|
{ :type => :Browser, :name => :AppleWebKit, :version => "533.19.4", :os_name => :MacOSX, :os_version => "10.6.6", :platform => :Macintosh },
|
@@ -411,11 +431,11 @@ describe Aua do
|
|
411
431
|
{ :type => :Browser, :name => :Gecko, :version => "20070606", :major_version => "20070606", :os_name => :Linux, :os_version => "Solaris", :platform => :X11 },
|
412
432
|
"Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.7.12) Gecko/20051105" =>
|
413
433
|
{ :type => :Browser, :name => :Gecko, :version => "20051105", :os_name => :Linux, :os_version => "FreeBSD", :platform => :X11 },
|
414
|
-
|
434
|
+
|
415
435
|
"Raven/0.7.14612 CFNetwork/520.3.2 Darwin/11.3.0 (x86_64) (iMac12%2C2)" =>
|
416
436
|
{ :type => :Browser, :name => :Raven, :version => "0.7.14612", :os_name => :Darwin, :os_version => "11.3.0", :platform => :Darwin },
|
417
437
|
}
|
418
|
-
|
438
|
+
|
419
439
|
EXAMPLES.each do |string, values|
|
420
440
|
context "when parsing #{string.inspect}" do
|
421
441
|
let(:user_agent) { Aua.parse(string) }
|
@@ -433,65 +453,65 @@ describe Aua do
|
|
433
453
|
its(:products) { should eql([]) }
|
434
454
|
its(:versions) { should eql([]) }
|
435
455
|
its(:comments) { should eql([]) }
|
436
|
-
|
456
|
+
|
437
457
|
it "should return nil on #version_of" do
|
438
458
|
subject.version_of(nil).should eql(nil)
|
439
459
|
subject.version_of("Firefox").should eql(nil)
|
440
460
|
end
|
441
|
-
|
461
|
+
|
442
462
|
its(:os_string) { should eql(nil) }
|
443
463
|
its(:platform_string) { should eql(nil) }
|
444
|
-
|
464
|
+
|
445
465
|
its(:name) { should eql("") }
|
446
466
|
its(:type) { should eql(:Unknown) }
|
447
467
|
its(:version) { should eql(nil) }
|
448
468
|
its(:os_name) { should eql(nil) }
|
449
469
|
its(:os_version) { should eql(nil) }
|
450
470
|
its(:platform) { should eql(nil) }
|
451
|
-
|
471
|
+
|
452
472
|
it{ should be_unknown }
|
453
473
|
its(:to_s) { should eql("Unknown: ")}
|
454
474
|
end
|
455
|
-
|
475
|
+
|
456
476
|
context "standard user agent string" do
|
457
477
|
subject{ Aua.new("Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; de; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13") }
|
458
|
-
|
478
|
+
|
459
479
|
its(:raw) { should eql("Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; de; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13")}
|
460
480
|
its(:products) { should eql(["Mozilla", "Gecko", "Firefox"]) }
|
461
481
|
its(:versions) { should eql(["5.0", "20101203", "3.6.13"]) }
|
462
482
|
its(:comments) { should eql([["Macintosh", "U", "Intel Mac OS X 10.6", "de", "rv:1.9.2.13"], [], []]) }
|
463
|
-
|
483
|
+
|
464
484
|
it "should return version on #version_of" do
|
465
485
|
subject.version_of("Mozilla").should eql("5.0")
|
466
486
|
subject.version_of("Firefox").should eql("3.6.13")
|
467
487
|
end
|
468
|
-
|
488
|
+
|
469
489
|
its(:platform_string) { should eql("Macintosh") }
|
470
490
|
its(:os_string) { should eql("Intel Mac OS X 10.6") }
|
471
|
-
|
491
|
+
|
472
492
|
it{ should_not be_unknown }
|
473
493
|
its(:to_s) { should eql("Browser Firefox/3.6.13 MacOSX/10.6 Macintosh")}
|
474
494
|
end
|
475
|
-
|
495
|
+
|
476
496
|
context "unknown user agent string" do
|
477
497
|
subject{ Aua.new("Mozilla/5.0 (Bla; U; Krank; de; rv:1.9.2.13) Less/20101203 Vrrrr/3.6.13") }
|
478
|
-
|
498
|
+
|
479
499
|
its(:raw) { should eql("Mozilla/5.0 (Bla; U; Krank; de; rv:1.9.2.13) Less/20101203 Vrrrr/3.6.13")}
|
480
500
|
its(:products) { should eql(["Mozilla", "Less", "Vrrrr"]) }
|
481
501
|
its(:versions) { should eql(["5.0", "20101203", "3.6.13"]) }
|
482
502
|
its(:comments) { should eql([["Bla", "U", "Krank", "de", "rv:1.9.2.13"], [], []]) }
|
483
|
-
|
503
|
+
|
484
504
|
it "should return version on #version_of" do
|
485
505
|
subject.version_of("Mozilla").should eql("5.0")
|
486
506
|
subject.version_of("Vrrrr").should eql("3.6.13")
|
487
507
|
end
|
488
|
-
|
508
|
+
|
489
509
|
its(:platform_string) { should eql("Bla") }
|
490
510
|
its(:os_string) { should eql("Krank") }
|
491
|
-
|
511
|
+
|
492
512
|
it{ should be_unknown }
|
493
513
|
its(:to_s) { should eql("Unknown: Mozilla/5.0 (Bla; U; Krank; de; rv:1.9.2.13) Less/20101203 Vrrrr/3.6.13")}
|
494
|
-
|
514
|
+
|
495
515
|
its(:name) { should eql("Mozilla/5.0 (Bla; U; Krank; de; rv:1.9.2.13) Less/20101203 Vrrrr/3.6.13") }
|
496
516
|
its(:type) { should eql(:Unknown) }
|
497
517
|
its(:version) { should eql(nil) }
|
@@ -499,18 +519,18 @@ describe Aua do
|
|
499
519
|
its(:os_version) { should eql(nil) }
|
500
520
|
its(:platform) { should eql(nil) }
|
501
521
|
end
|
502
|
-
|
522
|
+
|
503
523
|
context "unknown simple user agent string" do
|
504
524
|
subject{ Aua.new("my_mite_app/v1.0") }
|
505
|
-
|
525
|
+
|
506
526
|
its(:raw) { should eql("my_mite_app/v1.0")}
|
507
527
|
its(:products) { should eql(["my_mite_app"]) }
|
508
528
|
its(:versions) { should eql(["v1.0"]) }
|
509
529
|
its(:comments) { should eql([[]]) }
|
510
|
-
|
530
|
+
|
511
531
|
it{ should be_unknown }
|
512
532
|
its(:to_s) { should eql("Unknown: my_mite_app/v1.0 (simple)")}
|
513
|
-
|
533
|
+
|
514
534
|
its(:name) { should eql("my_mite_app") }
|
515
535
|
its(:type) { should eql(:Unknown) }
|
516
536
|
its(:version) { should eql("v1.0") }
|