rack-bouncer 1.4.1 → 1.4.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +8 -0
- data/lib/rack/bouncer.rb +1 -1
- data/test/lib/rack/bouncer/google_crawlers_test.rb +59 -0
- data/test/lib/rack/bouncer/microsoft_crawlers_test.rb +10 -0
- data/test/lib/rack/bouncer/yahoo_crawlers_test.rb +17 -0
- data/test/lib/rack/bouncer_test.rb +3 -4
- data/test/user_agents.yml +34 -0
- metadata +6 -3
data/Rakefile
CHANGED
@@ -40,10 +40,18 @@ namespace :gem do
|
|
40
40
|
jeweler { |gem_file| system "gem push #{gem_file}"}
|
41
41
|
end
|
42
42
|
|
43
|
+
desc "Tags and pushes the current version to GitHub"
|
44
|
+
task :tag do
|
45
|
+
puts "==> Tagging and pushing to GitHub"
|
46
|
+
system "git tag -a v#{Rack::Bouncer::VERSION} -m 'Tag v#{Rack::Bouncer::VERSION}'"
|
47
|
+
system "git push --tags"
|
48
|
+
end
|
49
|
+
|
43
50
|
desc "Builds, pushes, and cleans a gem for the current project"
|
44
51
|
task :release do
|
45
52
|
Rake::Task["gem:build"].invoke
|
46
53
|
Rake::Task["gem:push"].invoke
|
54
|
+
Rake::Task["gem:tag"].invoke
|
47
55
|
Rake::Task["gem:clean"].invoke
|
48
56
|
end
|
49
57
|
|
data/lib/rack/bouncer.rb
CHANGED
@@ -0,0 +1,59 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class Rack::Bouncer::GoogleCrawlersTest < MiniTest::Unit::TestCase
|
4
|
+
def test_allows_googlebot
|
5
|
+
request = create_request
|
6
|
+
response = request.get("/", "HTTP_USER_AGENT" => USER_AGENTS[:googlebot])
|
7
|
+
assert_equal 200, response.status
|
8
|
+
assert_equal "Hi Internets!", response.body
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_allows_googlebot_news
|
12
|
+
request = create_request
|
13
|
+
response = request.get("/", "HTTP_USER_AGENT" => USER_AGENTS[:googlebot_news])
|
14
|
+
assert_equal 200, response.status
|
15
|
+
assert_equal "Hi Internets!", response.body
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_allows_googlebot_images
|
19
|
+
request = create_request
|
20
|
+
response = request.get("/", "HTTP_USER_AGENT" => USER_AGENTS[:googlebot_images])
|
21
|
+
assert_equal 200, response.status
|
22
|
+
assert_equal "Hi Internets!", response.body
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_allows_googlebot_video
|
26
|
+
request = create_request
|
27
|
+
response = request.get("/", "HTTP_USER_AGENT" => USER_AGENTS[:googlebot_video])
|
28
|
+
assert_equal 200, response.status
|
29
|
+
assert_equal "Hi Internets!", response.body
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_allows_googlebot_mobile
|
33
|
+
request = create_request
|
34
|
+
response = request.get("/", "HTTP_USER_AGENT" => USER_AGENTS[:googlebot_mobile])
|
35
|
+
assert_equal 200, response.status
|
36
|
+
assert_equal "Hi Internets!", response.body
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_allows_google_mobile_adsense
|
40
|
+
request = create_request
|
41
|
+
response = request.get("/", "HTTP_USER_AGENT" => USER_AGENTS[:google_mobile_adsense])
|
42
|
+
assert_equal 200, response.status
|
43
|
+
assert_equal "Hi Internets!", response.body
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_allows_google_adsense
|
47
|
+
request = create_request
|
48
|
+
response = request.get("/", "HTTP_USER_AGENT" => USER_AGENTS[:google_adsense])
|
49
|
+
assert_equal 200, response.status
|
50
|
+
assert_equal "Hi Internets!", response.body
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_allows_google_adsbot
|
54
|
+
request = create_request
|
55
|
+
response = request.get("/", "HTTP_USER_AGENT" => USER_AGENTS[:google_adsbot])
|
56
|
+
assert_equal 200, response.status
|
57
|
+
assert_equal "Hi Internets!", response.body
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class Rack::Bouncer::MicrosoftCrawlersTest < MiniTest::Unit::TestCase
|
4
|
+
def test_allows_bingbot
|
5
|
+
request = create_request
|
6
|
+
response = request.get("/", "HTTP_USER_AGENT" => USER_AGENTS[:bingbot])
|
7
|
+
assert_equal 200, response.status
|
8
|
+
assert_equal "Hi Internets!", response.body
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class Rack::Bouncer::YahooCrawlersTest < MiniTest::Unit::TestCase
|
4
|
+
def test_allows_yahoo_slurp
|
5
|
+
request = create_request
|
6
|
+
response = request.get("/", "HTTP_USER_AGENT" => USER_AGENTS[:yahoo_slurp])
|
7
|
+
assert_equal 200, response.status
|
8
|
+
assert_equal "Hi Internets!", response.body
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_allows_yahoo_slurp_china
|
12
|
+
request = create_request
|
13
|
+
response = request.get("/", "HTTP_USER_AGENT" => USER_AGENTS[:yahoo_slurp_china])
|
14
|
+
assert_equal 200, response.status
|
15
|
+
assert_equal "Hi Internets!", response.body
|
16
|
+
end
|
17
|
+
end
|
@@ -3,7 +3,7 @@ require "test_helper"
|
|
3
3
|
|
4
4
|
class Rack::BouncerTest < MiniTest::Unit::TestCase
|
5
5
|
def test_version
|
6
|
-
assert_equal "1.4.
|
6
|
+
assert_equal "1.4.2", Rack::Bouncer::VERSION
|
7
7
|
end
|
8
8
|
|
9
9
|
# Default Options
|
@@ -50,7 +50,7 @@ class Rack::BouncerTest < MiniTest::Unit::TestCase
|
|
50
50
|
assert_equal "Hi Internets!", response.body
|
51
51
|
end
|
52
52
|
|
53
|
-
#
|
53
|
+
# :redirect
|
54
54
|
#################################################################################################
|
55
55
|
|
56
56
|
def test_redirects_to_default
|
@@ -74,8 +74,7 @@ class Rack::BouncerTest < MiniTest::Unit::TestCase
|
|
74
74
|
assert_equal response.location, "https://www.google.com/chrome"
|
75
75
|
end
|
76
76
|
|
77
|
-
|
78
|
-
# Safe Paths
|
77
|
+
# :safe_paths
|
79
78
|
#################################################################################################
|
80
79
|
|
81
80
|
def test_allows_redirect_path
|
data/test/user_agents.yml
CHANGED
@@ -80,6 +80,26 @@
|
|
80
80
|
:firefox_10_0_a4:
|
81
81
|
Mozilla/6.0 (Macintosh; I; Intel Mac OS X 11_7_9; rv:1.9b4) Gecko/2012010317 Firefox/10.0a4
|
82
82
|
|
83
|
+
# Google Crawlers
|
84
|
+
###################################################################################################
|
85
|
+
|
86
|
+
:googlebot:
|
87
|
+
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
|
88
|
+
:googlebot_news:
|
89
|
+
Googlebot-News
|
90
|
+
:googlebot_images:
|
91
|
+
Googlebot-Image/1.0
|
92
|
+
:googlebot_video:
|
93
|
+
Googlebot-Video/1.0
|
94
|
+
:googlebot_mobile:
|
95
|
+
(compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)
|
96
|
+
:google_mobile_adsense:
|
97
|
+
(compatible; Mediapartners-Google/2.1; +http://www.google.com/bot.html)
|
98
|
+
:google_adsense:
|
99
|
+
Mediapartners-Google
|
100
|
+
:google_adsbot:
|
101
|
+
AdsBot-Google (+http://www.google.com/adsbot.html)
|
102
|
+
|
83
103
|
# Internet Explorer
|
84
104
|
###################################################################################################
|
85
105
|
|
@@ -96,6 +116,12 @@
|
|
96
116
|
:ie_9_0:
|
97
117
|
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
|
98
118
|
|
119
|
+
# Microsoft Crawlers
|
120
|
+
###################################################################################################
|
121
|
+
|
122
|
+
:bingbot:
|
123
|
+
Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
|
124
|
+
|
99
125
|
# Mozilla
|
100
126
|
###################################################################################################
|
101
127
|
|
@@ -131,3 +157,11 @@
|
|
131
157
|
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.52.7 (KHTML, like Gecko) Version/5.1 Safari/534.52.7
|
132
158
|
:safari_5_1_2:
|
133
159
|
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.52.7 (KHTML, like Gecko) Version/5.1.2 Safari/534.52.7
|
160
|
+
|
161
|
+
# Yahoo! Crawlers
|
162
|
+
###################################################################################################
|
163
|
+
|
164
|
+
:yahoo_slurp:
|
165
|
+
Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)
|
166
|
+
:yahoo_slurp_china:
|
167
|
+
Mozilla/5.0 (compatible; Yahoo! Slurp China; http://misc.yahoo.com.cn/help.html)
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-bouncer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 3
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 1.4.
|
9
|
+
- 2
|
10
|
+
version: 1.4.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Julio Cesar Ody
|
@@ -74,8 +74,11 @@ files:
|
|
74
74
|
- test/lib/rack/bouncer/aol_test.rb
|
75
75
|
- test/lib/rack/bouncer/chrome_test.rb
|
76
76
|
- test/lib/rack/bouncer/firefox_test.rb
|
77
|
+
- test/lib/rack/bouncer/google_crawlers_test.rb
|
77
78
|
- test/lib/rack/bouncer/ie_test.rb
|
79
|
+
- test/lib/rack/bouncer/microsoft_crawlers_test.rb
|
78
80
|
- test/lib/rack/bouncer/safari_test.rb
|
81
|
+
- test/lib/rack/bouncer/yahoo_crawlers_test.rb
|
79
82
|
- test/lib/rack/bouncer_test.rb
|
80
83
|
- test/test_helper.rb
|
81
84
|
- test/user_agents.yml
|