diff options
author | misfo <tedwardo2@gmail.com> | 2011-02-08 12:08:35 +0800 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2011-04-28 04:07:57 +0800 |
commit | 9f6cafd5fd43b551f30b28d276713791c5098b3c (patch) | |
tree | 2ff4d3805d4ff234201aebd645281c5e69db6142 /actionpack/lib | |
parent | 1cd5a084c1bb92d8acf618368d2450a084b69345 (diff) | |
download | rails-9f6cafd5fd43b551f30b28d276713791c5098b3c.tar.gz rails-9f6cafd5fd43b551f30b28d276713791c5098b3c.tar.bz2 rails-9f6cafd5fd43b551f30b28d276713791c5098b3c.zip |
prevent errors when passing a frozen string as a param to ActionController::TestCase#process
since ActionDispatch::Http::Parameters#encode_params will force encoding on all params strings (when using an encoding aware Ruby), dup all strings passed into process. This prevents modification of params passed in and, more importantly, doesn't barf when a frozen string is passed
thanks and high fives to kinsteronline
Diffstat (limited to 'actionpack/lib')
-rw-r--r-- | actionpack/lib/action_controller/test_case.rb | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/actionpack/lib/action_controller/test_case.rb b/actionpack/lib/action_controller/test_case.rb index bc4f8bb9ce..0085f542aa 100644 --- a/actionpack/lib/action_controller/test_case.rb +++ b/actionpack/lib/action_controller/test_case.rb @@ -147,7 +147,9 @@ module ActionController if value.is_a? Fixnum value = value.to_s elsif value.is_a? Array - value = Result.new(value) + value = Result.new(value.map { |v| v.is_a?(String) ? v.dup : v }) + elsif value.is_a? String + value = value.dup end if extra_keys.include?(key.to_sym) |