aua 0.2.2 → 0.2.3
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 +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") }
|