Commit daee09893595ce2e96c11fad90f4cb335027802a

Authored by Daniela Feitosa
Committed by Antonio Terceiro
1 parent 719968cb

ActionItem1137: adding icaptcha_field on contact

app/controllers/public/contact_controller.rb
... ... @@ -2,9 +2,10 @@ class ContactController < PublicController
2 2  
3 3 needs_profile
4 4  
  5 + inverse_captcha :field => 'e_mail'
5 6 def new
6 7 @contact
7   - if request.post?
  8 + if request.post? && params[self.icaptcha_field].blank?
8 9 @contact = Contact.new(params[:contact])
9 10 @contact.dest = profile
10 11 @contact.city = (!params[:city].blank? && City.exists?(params[:city])) ? City.find(params[:city]).name : _('Missing')
... ...
app/views/contact/new.rhtml
... ... @@ -16,6 +16,8 @@
16 16 <%= required f.text_area(:message, :rows => 10, :cols => 60) %>
17 17 <%= labelled_form_field check_box(:contact, :receive_a_copy) + _('I want to receive a copy of the message in my e-mail.'), '' %>
18 18  
  19 + <%= icaptcha_field() %>
  20 +
19 21 <%= submit_button(:send, _('Send')) %>
20 22  
21 23 <% end %>
... ...
test/functional/contact_controller_test.rb
... ... @@ -97,5 +97,19 @@ class ContactControllerTest &lt; Test::Unit::TestCase
97 97 get :new, :profile => profile.identifier
98 98 assert_no_tag :tag => 'select', :attributes => {:name => 'state'}
99 99 end
  100 +
  101 + should 'be able to post contact while inverse captcha field filled' do
  102 + post :new, :profile => enterprise.identifier, :contact => {:name => 'john', :subject => 'Hi', :email => 'visitor@mail.invalid', :message => 'Hi, all', :state => '', :city => ''}
  103 +
  104 + assert_response :redirect
  105 + assert_redirected_to :action => 'new'
  106 + end
  107 +
  108 + should 'not be able to post contact while inverse captcha field filled' do
  109 + post :new, :profile => enterprise.identifier, @controller.icaptcha_field => 'filled', :contact => {:name => 'john', :subject => 'Hi', :email => 'visitor@mail.invalid', :message => 'Hi, all', :state => '', :city => ''}
  110 +
  111 + assert_response :success
  112 + assert_template 'new'
  113 + end
100 114  
101 115 end
... ...