Skip to content

Commit

Permalink
Adding coverage for successful case
Browse files Browse the repository at this point in the history
  • Loading branch information
pivotal committed Jun 18, 2008
1 parent c8f2ba5 commit 894a9cd
Showing 1 changed file with 38 additions and 8 deletions.
46 changes: 38 additions & 8 deletions test/verify_recaptcha_test.rb
Expand Up @@ -9,6 +9,8 @@ class TestController < Struct.new(:request, :params, :session)
include Ambethia::ReCaptcha
include Ambethia::ReCaptcha::Helper
include Ambethia::ReCaptcha::Controller

attr_accessor :request, :params, :session
end

def setup
Expand All @@ -18,18 +20,46 @@ def setup
end

def test_invalid_private_key
request = stub(:remote_ip => "1.1.1.1")
params = {:recaptcha_challenge_field => "", :recaptcha_response_field => ""}
session = {}
controller = TestController.new
controller.request = stub(:remote_ip => "1.1.1.1")
controller.params = {:recaptcha_challenge_field => "challenge", :recaptcha_response_field => "response"}
controller.session = {}

post_data = {}
post_data[:privatekey] = ENV['RECAPTCHA_PRIVATE_KEY']
post_data[:remoteip] = controller.request.remote_ip
post_data[:challenge] = "challenge"
post_data[:response] = "response"

uri = URI.parse("http://#{Ambethia::ReCaptcha::RECAPTCHA_VERIFY_SERVER}/verify")
post_data = {:privatekey => ENV['RECAPTCHA_PRIVATE_KEY'], :remoteip => request.remote_ip, :challenge => "", :response => ""}
response = stub(:body => "false\ninvalid-site-private-key")
Net::HTTP.expects(:post_form).with(uri, post_data).returns(response)
Net::HTTP.expects(:post_form).with(expected_uri, post_data).returns(response)

controller = TestController.new(request, params, session)
assert !controller.verify_recaptcha

assert_equal "invalid-site-private-key", session[:recaptcha_error]
assert_equal "invalid-site-private-key", controller.session[:recaptcha_error]
end

def test_success
controller = TestController.new
controller.request = stub(:remote_ip => "1.1.1.1")
controller.params = {:recaptcha_challenge_field => "challenge", :recaptcha_response_field => "response"}
controller.session = {}

post_data = {}
post_data[:privatekey] = ENV['RECAPTCHA_PRIVATE_KEY']
post_data[:remoteip] = controller.request.remote_ip
post_data[:challenge] = "challenge"
post_data[:response] = "response"

response = stub(:body => "true\n")
Net::HTTP.expects(:post_form).with(expected_uri, post_data).returns(response)

assert controller.verify_recaptcha

assert_nil controller.session[:recaptcha_error]
end

def expected_uri
URI.parse("http://#{Ambethia::ReCaptcha::RECAPTCHA_VERIFY_SERVER}/verify")
end
end

0 comments on commit 894a9cd

Please sign in to comment.