lib/deas/test_runner.rb in deas-0.24.0 vs lib/deas/test_runner.rb in deas-0.24.1

- old
+ new

@@ -10,15 +10,15 @@ def initialize(handler_class, args = nil) args = (args || {}).dup @app_settings = OpenStruct.new(args.delete(:app_settings)) - @request = args.delete(:request) - @response = args.delete(:response) - @params = normalize_params(args.delete(:params) || {}) - @logger = args.delete(:logger) || Deas::NullLogger.new - @session = args.delete(:session) + @request = args.delete(:request) + @response = args.delete(:response) + @params = NormalizedParams.new(args.delete(:params) || {}).value + @logger = args.delete(:logger) || Deas::NullLogger.new + @session = args.delete(:session) super(handler_class) args.each{|key, value| @handler.send("#{key}=", value) } @return_value = catch(:halt){ @handler.init; nil } @@ -80,29 +80,12 @@ def send_file(file_path, options = nil, &block) SendFileArgs.new(file_path, options, block) end SendFileArgs = Struct.new(:file_path, :options, :block) - private - - def normalize_params(params) - Stringify.new(params) - end - - module Stringify - def self.new(value) - if value.is_a?(::Array) - value.map{ |i| Stringify.new(i) } - elsif Rack::Utils.params_hash_type?(value) - value.inject({}){ |h, (k, v)| h[k.to_s] = Stringify.new(v); h } - elsif self.file_type?(value) - value - else - value.to_s - end - end - - def self.file_type?(value) + class NormalizedParams < Deas::Runner::NormalizedParams + def file_type?(value) + value.kind_of?(::Tempfile) || value.kind_of?(::File) || value.kind_of?(::Rack::Multipart::UploadedFile) || (defined?(::Rack::Test::UploadedFile) && value.kind_of?(::Rack::Test::UploadedFile)) end end