rack-recaptcha 0.6.2 → 0.6.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.
- data/README.md +4 -1
- data/lib/rack/recaptcha/helpers.rb +2 -3
- data/rack-recaptcha.gemspec +1 -1
- data/test/helpers_test.rb +27 -3
- metadata +11 -11
data/README.md
CHANGED
@@ -133,9 +133,12 @@ Chad Johnston - [iamthechad](https://github.com/iamthechad)
|
|
133
133
|
|
134
134
|
* Adding Error Message handling in recaptcha widget
|
135
135
|
|
136
|
+
Eric Hu - [eric-hu](https://github.com/eric-hu)
|
137
|
+
|
138
|
+
* Patching error message issue when no `request` is present
|
136
139
|
|
137
140
|
#### Note on Patches/Pull Requests
|
138
|
-
|
141
|
+
|
139
142
|
* Fork the project.
|
140
143
|
* Make your feature addition or bug fix.
|
141
144
|
* Add tests for it. This is important so I don't break it in a
|
@@ -34,7 +34,7 @@ module Rack
|
|
34
34
|
options[:public_key] ||= Rack::Recaptcha.public_key
|
35
35
|
path = options[:ssl] ? Rack::Recaptcha::API_SECURE_URL : Rack::Recaptcha::API_URL
|
36
36
|
params = "k=#{options[:public_key]}"
|
37
|
-
error_message =
|
37
|
+
error_message = request.env['recaptcha.msg'] if request
|
38
38
|
params += "&error=" + URI.encode(error_message) unless error_message.nil?
|
39
39
|
html = case type.to_sym
|
40
40
|
when :challenge
|
@@ -67,8 +67,7 @@ module Rack
|
|
67
67
|
# Helper to return whether the recaptcha was accepted.
|
68
68
|
def recaptcha_valid?
|
69
69
|
test = Rack::Recaptcha.test_mode
|
70
|
-
|
71
|
-
defined?(request) ? request.env['recaptcha.valid'] : env['recaptcha.valid']
|
70
|
+
test.nil? ? request.env['recaptcha.valid'] : test
|
72
71
|
end
|
73
72
|
|
74
73
|
end
|
data/rack-recaptcha.gemspec
CHANGED
data/test/helpers_test.rb
CHANGED
@@ -3,11 +3,17 @@ require File.expand_path '../teststrap', __FILE__
|
|
3
3
|
class HelperTest
|
4
4
|
attr_accessor :request
|
5
5
|
include Rack::Recaptcha::Helpers
|
6
|
-
|
6
|
+
|
7
7
|
def initialize
|
8
8
|
@request = HelperTest::Request.new
|
9
9
|
end
|
10
|
-
|
10
|
+
|
11
|
+
def self.new_with_nil_request
|
12
|
+
helper = HelperTest.new
|
13
|
+
helper.request = nil
|
14
|
+
helper
|
15
|
+
end
|
16
|
+
|
11
17
|
class Request
|
12
18
|
attr_accessor :env
|
13
19
|
end
|
@@ -112,16 +118,19 @@ context "Rack::Recaptcha::Helpers" do
|
|
112
118
|
denies_topic("has js").matches %r{recaptcha_ajax.js}
|
113
119
|
asserts_topic("has previous error").matches %r{Sample%20Error}
|
114
120
|
end
|
121
|
+
|
115
122
|
end
|
116
123
|
|
117
124
|
context "recaptcha_valid?" do
|
118
125
|
|
119
126
|
asserts "that it passes when recaptcha.valid is true" do
|
127
|
+
Rack::Recaptcha.test_mode = nil
|
120
128
|
mock(helper_test.request.env).[]('recaptcha.valid').returns(true)
|
121
129
|
helper_test.recaptcha_valid?
|
122
130
|
end
|
123
131
|
|
124
132
|
denies "that it passes when recaptcha.valid is false" do
|
133
|
+
Rack::Recaptcha.test_mode = nil
|
125
134
|
mock(helper_test.request.env).[]('recaptcha.valid').returns(false)
|
126
135
|
helper_test.recaptcha_valid?
|
127
136
|
end
|
@@ -131,10 +140,25 @@ context "Rack::Recaptcha::Helpers" do
|
|
131
140
|
helper_test.recaptcha_valid?
|
132
141
|
end
|
133
142
|
|
134
|
-
denies "that it passes when test mode set to
|
143
|
+
denies "that it passes when test mode set to fail" do
|
135
144
|
Rack::Recaptcha.test_mode! :return => false
|
136
145
|
helper_test.recaptcha_valid?
|
137
146
|
end
|
138
147
|
|
139
148
|
end
|
140
149
|
end
|
150
|
+
|
151
|
+
context Rack::Recaptcha::Helpers do
|
152
|
+
helper(:helper_test) { HelperTest.new_with_nil_request }
|
153
|
+
context "request object not available. Rack-recaptcha shouldn't die" do
|
154
|
+
setup do
|
155
|
+
helper_test.recaptcha_tag(:challenge)
|
156
|
+
end
|
157
|
+
|
158
|
+
asserts_topic("has script tag").matches %r{script}
|
159
|
+
asserts_topic("has challenge js").matches %r{challenge}
|
160
|
+
denies_topic("has js").matches %r{recaptcha_ajax.js}
|
161
|
+
denies_topic("has display").matches %r{RecaptchaOptions}
|
162
|
+
asserts_topic("has public_key").matches %r{#{'0'*40}}
|
163
|
+
end
|
164
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-recaptcha
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2010-07-18 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
16
|
-
requirement: &
|
16
|
+
requirement: &2152600680 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2152600680
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: riot
|
27
|
-
requirement: &
|
27
|
+
requirement: &2152600220 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 0.12.3
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2152600220
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rack-test
|
38
|
-
requirement: &
|
38
|
+
requirement: &2152599760 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 0.5.7
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2152599760
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: fakeweb
|
49
|
-
requirement: &
|
49
|
+
requirement: &2152599300 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 1.3.0
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2152599300
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rr
|
60
|
-
requirement: &
|
60
|
+
requirement: &2152598840 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
version: 1.0.2
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *2152598840
|
69
69
|
description: Rack middleware Captcha verification using Recaptcha API.
|
70
70
|
email: mr.arthur.chiu@gmail.com
|
71
71
|
executables: []
|