bot-away 1.2.0 → 2.0.0
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/.travis.yml +14 -0
- data/History.txt +20 -0
- data/README.md +198 -0
- data/Rakefile +14 -94
- data/bot-away.gemspec +20 -87
- data/gemfiles/Gemfile.rails-3.0.x +8 -0
- data/gemfiles/Gemfile.rails-3.0.x.lock +121 -0
- data/gemfiles/Gemfile.rails-3.1.x +8 -0
- data/gemfiles/Gemfile.rails-3.1.x.lock +133 -0
- data/lib/bot-away.rb +15 -13
- data/lib/bot-away/action_dispatch/params_parser.rb +22 -0
- data/lib/bot-away/action_view/helpers/instance_tag.rb +36 -12
- data/lib/bot-away/param_parser.rb +2 -2
- data/lib/bot-away/railtie.rb +10 -0
- data/lib/bot-away/test_case.rb +58 -0
- data/lib/bot-away/test_case/controller_test_case.rb +11 -0
- data/lib/bot-away/test_case/instance_tag_test_case.rb +15 -0
- data/lib/bot-away/test_case/matchers.rb +20 -0
- data/lib/bot-away/test_case/matchers/honeypot_matcher.rb +30 -0
- data/lib/bot-away/test_case/matchers/obfuscation_matcher.rb +30 -0
- data/lib/bot-away/test_case/mock_object.rb +16 -0
- data/lib/bot-away/version.rb +12 -0
- data/lib/locale/honeypots.yml +6 -0
- data/spec/controllers/basic_form_view_spec.rb +112 -0
- data/spec/controllers/{test_controller_spec.rb → tests_controller_spec.rb} +29 -80
- data/spec/integration/params_post_spec.rb +42 -0
- data/spec/lib/action_view/helpers/instance_tag_spec.rb +94 -0
- data/spec/{views/lib → lib/action_view}/param_parser_spec.rb +10 -10
- data/spec/spec_helper.rb +37 -105
- data/spec/test_rails_app/app/controllers/tests_controller.rb +11 -0
- data/spec/test_rails_app/app/models/post.rb +13 -0
- data/spec/test_rails_app/app/views/tests/basic_form.html.erb +5 -0
- data/spec/test_rails_app/app/views/tests/model_form.html.erb +12 -0
- data/spec/test_rails_app/config/locales/bot-away-overrides.yml +6 -0
- data/spec/views/form_builder_spec.rb +118 -0
- metadata +94 -137
- data/Manifest.txt +0 -23
- data/README.rdoc +0 -179
- data/VERSION +0 -1
- data/lib/bot-away/action_dispatch/request.rb +0 -20
- data/spec/rspec_version.rb +0 -19
- data/spec/support/honeypot_matcher.rb +0 -30
- data/spec/support/obfuscation_helper.rb +0 -123
- data/spec/support/obfuscation_matcher.rb +0 -28
- data/spec/support/rails/mock_logger.rb +0 -21
- data/spec/support/test_controller.rb +0 -28
- data/spec/support/views/test/index.html.erb +0 -4
- data/spec/support/views/test/model_form.html.erb +0 -6
- data/spec/views/lib/action_view/helpers/instance_tag_spec.rb +0 -75
- data/spec/views/lib/disabled_for_spec.rb +0 -101
- data/spec/views/lib/form_builder_spec.rb +0 -56
@@ -1,56 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe ActionView::Helpers::FormBuilder do
|
4
|
-
subject { builder }
|
5
|
-
|
6
|
-
it "should not create honeypots with default values" do
|
7
|
-
builder.text_field(:method_name).should match(/name="object_name\[method_name\]"[^>]*?value=""/)
|
8
|
-
end
|
9
|
-
|
10
|
-
context "with BotAway.show_honeypots == true" do
|
11
|
-
before(:each) { BotAway.show_honeypots = true }
|
12
|
-
after(:each) { BotAway.show_honeypots = false }
|
13
|
-
|
14
|
-
it "should not disguise honeypots" do
|
15
|
-
builder.text_area(method_name).should_not match(/<\/div>/)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
it "should not obfuscate names that have been explicitly ignored" do
|
20
|
-
BotAway.accepts_unfiltered_params 'method_name'
|
21
|
-
builder.text_field('method_name').should_not match(/name="#{obfuscated_name}/)
|
22
|
-
BotAway.unfiltered_params.delete 'method_name'
|
23
|
-
end
|
24
|
-
|
25
|
-
# select(method, choices, options = {}, html_options = {})
|
26
|
-
obfuscates(:select) { builder.select(:method_name, {1 => :a, 2 => :b }) }
|
27
|
-
|
28
|
-
#collection_select(method, collection, value_method, text_method, options = {}, html_options = {})
|
29
|
-
obfuscates(:collection_select) { builder.collection_select method_name, [MockObject.new], :method_name, :method_name }
|
30
|
-
|
31
|
-
#grouped_collection_select(method, collection, group_method, group_label_method, option_key_method,
|
32
|
-
# option_value_method, options = {}, html_options = {})
|
33
|
-
obfuscates(:grouped_collection_select) do
|
34
|
-
builder.grouped_collection_select method_name, [MockObject.new], object_name, method_name, method_name, :to_s
|
35
|
-
end
|
36
|
-
|
37
|
-
#time_zone_select(method, priority_zones = nil, options = {}, html_options = {})
|
38
|
-
obfuscates(:time_zone_select) do
|
39
|
-
builder.time_zone_select method_name
|
40
|
-
end
|
41
|
-
|
42
|
-
%w(hidden_field text_field text_area file_field password_field check_box).each do |field|
|
43
|
-
obfuscates(field) { builder.send(field, method_name) }
|
44
|
-
end
|
45
|
-
|
46
|
-
obfuscates(:radio_button, RAILS_VERSION >= "3.0" ? "767c870add970ab6d64803043c4ccfbb" :
|
47
|
-
"53640013be550817d040597218884288") { builder.radio_button method_name, :value }
|
48
|
-
|
49
|
-
context "#label" do
|
50
|
-
subject { dump { builder.label(method_name) } }
|
51
|
-
|
52
|
-
it "links labels to their obfuscated elements" do
|
53
|
-
subject.should match(/for=\"#{obfuscated_id}\"/)
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|