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 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: []