aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/dispatch/request_test.rb
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2010-01-21 11:39:57 +0100
committerJosé Valim <jose.valim@gmail.com>2010-01-21 11:57:24 +0100
commit31fddf2ace29518399f15f718ff408737e0031a0 (patch)
treeedd9ec04178e5082a0e5b79c7759fc07432dbc08 /actionpack/test/dispatch/request_test.rb
parentb1bc3b3cd352f68d79d7e232e9520eacb56ca41e (diff)
downloadrails-31fddf2ace29518399f15f718ff408737e0031a0.tar.gz
rails-31fddf2ace29518399f15f718ff408737e0031a0.tar.bz2
rails-31fddf2ace29518399f15f718ff408737e0031a0.zip
Tidy up new filter_parameters implementation.
Diffstat (limited to 'actionpack/test/dispatch/request_test.rb')
-rw-r--r--actionpack/test/dispatch/request_test.rb55
1 files changed, 42 insertions, 13 deletions
diff --git a/actionpack/test/dispatch/request_test.rb b/actionpack/test/dispatch/request_test.rb
index 0a6180959e..c5a75f5d21 100644
--- a/actionpack/test/dispatch/request_test.rb
+++ b/actionpack/test/dispatch/request_test.rb
@@ -453,16 +453,19 @@ class RequestTest < ActiveSupport::TestCase
request.expects(:parameters).at_least_once.returns({})
assert_equal Mime::XML, request.negotiate_mime([Mime::XML, Mime::CSV])
end
-
- test "filter_parameters" do
- request = stub_request
- request.stubs(:request_parameters).returns({ "foo" => 1 })
- request.stubs(:query_parameters).returns({ "bar" => 2 })
-
+
+ class FilterRequest < ActionDispatch::Request
+ end
+
+ test "filter_parameters raises error without arguments" do
assert_raises RuntimeError do
- ActionDispatch::Http::ParametersFilter.filter_parameters
+ FilterRequest.filter_parameters
end
-
+ end
+
+ test "process parameter filter" do
+ request = FilterRequest.new({})
+
test_hashes = [
[{'foo'=>'bar'},{'foo'=>'bar'},%w'food'],
[{'foo'=>'bar'},{'foo'=>'[FILTERED]'},%w'foo'],
@@ -473,21 +476,47 @@ class RequestTest < ActiveSupport::TestCase
[{'baz'=>[{'foo'=>'baz'}]}, {'baz'=>[{'foo'=>'[FILTERED]'}]}, %w(foo)]]
test_hashes.each do |before_filter, after_filter, filter_words|
- ActionDispatch::Http::ParametersFilter.filter_parameters(*filter_words)
- assert_equal after_filter, request.__send__(:process_parameter_filter, before_filter)
+ FilterRequest.filter_parameters(*filter_words)
+ assert_equal after_filter, request.send(:process_parameter_filter, before_filter)
filter_words.push('blah')
- ActionDispatch::Http::ParametersFilter.filter_parameters(*filter_words) do |key, value|
+
+ FilterRequest.filter_parameters(*filter_words) do |key, value|
value.reverse! if key =~ /bargain/
end
before_filter['barg'] = {'bargain'=>'gain', 'blah'=>'bar', 'bar'=>{'bargain'=>{'blah'=>'foo'}}}
- after_filter['barg'] = {'bargain'=>'niag', 'blah'=>'[FILTERED]', 'bar'=>{'bargain'=>{'blah'=>'[FILTERED]'}}}
+ after_filter['barg'] = {'bargain'=>'niag', 'blah'=>'[FILTERED]', 'bar'=>{'bargain'=>{'blah'=>'[FILTERED]'}}}
- assert_equal after_filter, request.__send__(:process_parameter_filter, before_filter)
+ assert_equal after_filter, request.send(:process_parameter_filter, before_filter)
end
end
+ test "filtered_parameters returns params filtered" do
+ FilterRequest.filter_parameters(:lifo, :amount)
+
+ request = FilterRequest.new('action_dispatch.request.parameters' =>
+ { 'lifo' => 'Pratik', 'amount' => '420', 'step' => '1' })
+
+ params = request.filtered_parameters
+ assert_equal "[FILTERED]", params["lifo"]
+ assert_equal "[FILTERED]", params["amount"]
+ assert_equal "1", params["step"]
+ end
+
+ test "filtered_env filters env as a whole" do
+ FilterRequest.filter_parameters(:lifo, :amount)
+
+ request = FilterRequest.new('action_dispatch.request.parameters' =>
+ { 'amount' => '420', 'step' => '1' }, "RAW_POST_DATA" => "yada yada")
+
+ request = FilterRequest.new(request.filtered_env)
+
+ assert_equal "[FILTERED]", request.raw_post
+ assert_equal "[FILTERED]", request.params["amount"]
+ assert_equal "1", request.params["step"]
+ end
+
protected
def stub_request(env={})