rack-recaptcha 0.6.2 → 0.6.3

Sign up to get free protection for your applications and to get access to all the features.
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 = defined?(request) ? request.env['recaptcha.msg'] : env['recaptcha.msg']
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
- return test unless test.nil?
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
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = %q{rack-recaptcha}
3
- s.version = "0.6.2"
3
+ s.version = "0.6.3"
4
4
  s.required_rubygems_version = ">=1.3.6"
5
5
  s.authors = ["Arthur Chiu"]
6
6
  s.date = %q{2010-07-18}
@@ -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 fil" do
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.2
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: &2153468420 !ruby/object:Gem::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: *2153468420
24
+ version_requirements: *2152600680
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: riot
27
- requirement: &2153467960 !ruby/object:Gem::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: *2153467960
35
+ version_requirements: *2152600220
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rack-test
38
- requirement: &2153467500 !ruby/object:Gem::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: *2153467500
46
+ version_requirements: *2152599760
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: fakeweb
49
- requirement: &2153467040 !ruby/object:Gem::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: *2153467040
57
+ version_requirements: *2152599300
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rr
60
- requirement: &2153466580 !ruby/object:Gem::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: *2153466580
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: []