agent_orange 0.1.2 → 0.1.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.
@@ -1,4 +1,6 @@
1
1
  require File.dirname(__FILE__) + '/spec_helper'
2
+ require 'net/http'
3
+ require 'iconv'
2
4
 
3
5
  describe AgentOrange::UserAgent do
4
6
 
@@ -82,4 +84,55 @@ describe AgentOrange::UserAgent do
82
84
  end
83
85
  end
84
86
 
87
+ describe 'checking with real browsers list' do
88
+ before do
89
+ @lists = [Iconv.new('UTF-8//IGNORE', 'UTF-8').iconv( File.open("spec/fixtures/browser_ids.htm").read)]
90
+
91
+ begin
92
+ @lists.push Net::HTTP.get('www.zytrax.com', '/tech/web/browser_ids.htm')
93
+ rescue
94
+ end
95
+ end
96
+
97
+ it "should parse browsers from list" do
98
+ [
99
+ {
100
+ :a_name => 'chrome',
101
+ :browser_names => ['Safari']
102
+ },
103
+ {
104
+ :a_name => 'safari',
105
+ :browser_names => ['Safari']
106
+ },
107
+ {
108
+ :a_name => 'firefox',
109
+ :browser_names => ['Firefox']
110
+ },
111
+ {
112
+ :a_name => 'msie',
113
+ :browser_names => ['MSIE','IEMobile']
114
+ },
115
+ {
116
+ :a_name => 'opera',
117
+ :browser_names => ['Opera']
118
+ }
119
+ ].each do |params|
120
+ part = ''
121
+
122
+ @lists.each do |list|
123
+ part += list.scan(/<a name="#{params[:a_name]}">.+?<a name="/m).first.to_s
124
+ end
125
+
126
+ part.scan(/<p class="g-c-s">([^<]+)<\/p>/).each do |q|
127
+ ua = AgentOrange::UserAgent.new(q.first)
128
+ br_name = ua.device.engine.browser.name
129
+
130
+ params[:browser_names].should include(br_name)
131
+ end
132
+ end
133
+ end
134
+
135
+ end
136
+
137
+
85
138
  end
metadata CHANGED
@@ -1,75 +1,59 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: agent_orange
3
- version: !ruby/object:Gem::Version
4
- hash: 31
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.3
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 1
9
- - 2
10
- version: 0.1.2
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Kevin Elliott
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-10-25 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2011-12-08 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: rake
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &70263619758660 !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 0
31
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
32
22
  type: :development
33
- version_requirements: *id001
34
- - !ruby/object:Gem::Dependency
35
- name: rspec
36
23
  prerelease: false
37
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *70263619758660
25
+ - !ruby/object:Gem::Dependency
26
+ name: rspec
27
+ requirement: &70263619755860 !ruby/object:Gem::Requirement
38
28
  none: false
39
- requirements:
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- hash: 3
43
- segments:
44
- - 0
45
- version: "0"
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
46
33
  type: :development
47
- version_requirements: *id002
48
- - !ruby/object:Gem::Dependency
49
- name: bundler
50
34
  prerelease: false
51
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *70263619755860
36
+ - !ruby/object:Gem::Dependency
37
+ name: bundler
38
+ requirement: &70263619747260 !ruby/object:Gem::Requirement
52
39
  none: false
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- hash: 3
57
- segments:
58
- - 0
59
- version: "0"
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
60
44
  type: :development
61
- version_requirements: *id003
45
+ prerelease: false
46
+ version_requirements: *70263619747260
62
47
  description: Parse and process User Agents like a secret one
63
- email:
48
+ email:
64
49
  - kevin@welikeinc.com
65
- executables:
50
+ executables:
66
51
  - agent_orange_example
67
52
  extensions: []
68
-
69
53
  extra_rdoc_files: []
70
-
71
- files:
54
+ files:
72
55
  - .gitignore
56
+ - .travis.yml
73
57
  - Gemfile
74
58
  - README.rdoc
75
59
  - Rakefile
@@ -86,43 +70,36 @@ files:
86
70
  - lib/agent_orange/version.rb
87
71
  - lib/tasks/allagents.xml
88
72
  - lib/tasks/bot_agent_test.rake
73
+ - spec/fixtures/browser_ids.htm
89
74
  - spec/spec_helper.rb
90
75
  - spec/user_agent_matcher.rb
91
76
  - spec/user_agent_spec.rb
92
77
  homepage: http://github.com/kevinelliott/agent_orange
93
78
  licenses: []
94
-
95
79
  post_install_message:
96
80
  rdoc_options: []
97
-
98
- require_paths:
81
+ require_paths:
99
82
  - lib
100
- required_ruby_version: !ruby/object:Gem::Requirement
83
+ required_ruby_version: !ruby/object:Gem::Requirement
101
84
  none: false
102
- requirements:
103
- - - ">="
104
- - !ruby/object:Gem::Version
105
- hash: 3
106
- segments:
107
- - 0
108
- version: "0"
109
- required_rubygems_version: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ! '>='
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ required_rubygems_version: !ruby/object:Gem::Requirement
110
90
  none: false
111
- requirements:
112
- - - ">="
113
- - !ruby/object:Gem::Version
114
- hash: 3
115
- segments:
116
- - 0
117
- version: "0"
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
118
95
  requirements: []
119
-
120
96
  rubyforge_project: agent_orange
121
- rubygems_version: 1.8.5
97
+ rubygems_version: 1.8.10
122
98
  signing_key:
123
99
  specification_version: 3
124
100
  summary: Parse and process User Agents like a secret one
125
- test_files:
101
+ test_files:
102
+ - spec/fixtures/browser_ids.htm
126
103
  - spec/spec_helper.rb
127
104
  - spec/user_agent_matcher.rb
128
105
  - spec/user_agent_spec.rb