aboutsummaryrefslogblamecommitdiffstats
path: root/actionpack/test/controller/parameters/multi_parameter_attributes_test.rb
blob: 2214ec769cb7966fe87428f41b4adc822c174bca (plain) (tree)
































                                                            
require 'abstract_unit'
require 'action_controller/metal/strong_parameters'

class MultiParameterAttributesTest < ActiveSupport::TestCase
  test "permitted multi-parameter attribute keys" do
    params = ActionController::Parameters.new({
      book: {
        "shipped_at(1i)" => "2012",
        "shipped_at(2i)" => "3",
        "shipped_at(3i)" => "25",
        "shipped_at(4i)" => "10",
        "shipped_at(5i)" => "15",
        "published_at(1i)"   => "1999",
        "published_at(2i)"   => "2",
        "published_at(3i)"   => "5"
      }
    })

    permitted = params.permit book: [ :shipped_at ]

    assert permitted.permitted?

    assert_equal "2012", permitted[:book]["shipped_at(1i)"]
    assert_equal "3", permitted[:book]["shipped_at(2i)"]
    assert_equal "25", permitted[:book]["shipped_at(3i)"]
    assert_equal "10", permitted[:book]["shipped_at(4i)"]
    assert_equal "15", permitted[:book]["shipped_at(5i)"]

    assert_nil permitted[:book]["published_at(1i)"]
    assert_nil permitted[:book]["published_at(2i)"]
    assert_nil permitted[:book]["published_at(3i)"]
  end
end