class JsonParamsParsingTest
Public Class Methods
name()
click to toggle source
# File railties/test/json_params_parsing_test.rb, line 11 def self.name; "Foo"; end
Public Instance Methods
teardown()
click to toggle source
# File actionpack/test/dispatch/request/json_params_parsing_test.rb, line 17 def teardown TestController.last_request_parameters = nil end
test_prevent_null_query()
click to toggle source
# File railties/test/json_params_parsing_test.rb, line 8 def test_prevent_null_query # Make sure we have data to find klass = Class.new(ActiveRecord::Base) do def self.name; "Foo"; end establish_connection adapter: "sqlite3", database: ":memory:" connection.create_table "foos" do |t| t.string :title t.timestamps null: false end end klass.create assert klass.first app = ->(env) { request = ActionDispatch::Request.new env params = ActionController::Parameters.new request.parameters if params[:t] klass.find_by_title(params[:t]) else nil end } assert_nil app.call(make_env("t" => nil)) assert_nil app.call(make_env("t" => [nil])) [[[nil]], [[[nil]]]].each do |data| assert_nil app.call(make_env("t" => data)) end ensure klass.connection.drop_table("foos") end
Private Instance Methods
assert_parses(expected, actual, headers = {})
click to toggle source
# File actionpack/test/dispatch/request/json_params_parsing_test.rb, line 99 def assert_parses(expected, actual, headers = {}) with_test_routing do post "/parse", params: actual, headers: headers assert_response :ok assert_equal(expected, TestController.last_request_parameters) end end
make_env(json)
click to toggle source
# File railties/test/json_params_parsing_test.rb, line 42 def make_env(json) data = JSON.dump json content_length = data.length { "CONTENT_LENGTH" => content_length, "CONTENT_TYPE" => "application/json", "rack.input" => StringIO.new(data) } end
with_test_routing() { || ... }
click to toggle source
# File actionpack/test/dispatch/request/json_params_parsing_test.rb, line 107 def with_test_routing with_routing do |set| set.draw do ActiveSupport::Deprecation.silence do post ":action", to: ::JsonParamsParsingTest::TestController end end yield end end