class ToQueryTest

Public Instance Methods

test_array_values() click to toggle source
# File activesupport/test/core_ext/object/to_query_test.rb, line 41
def test_array_values
  assert_query_equal "person%5Bid%5D%5B%5D=10&person%5Bid%5D%5B%5D=20",
    person: { id: [10, 20] }
end
test_array_values_are_not_sorted() click to toggle source
# File activesupport/test/core_ext/object/to_query_test.rb, line 46
def test_array_values_are_not_sorted
  assert_query_equal "person%5Bid%5D%5B%5D=20&person%5Bid%5D%5B%5D=10",
    person: { id: [20, 10] }
end
test_cgi_escaping() click to toggle source
# File activesupport/test/core_ext/object/to_query_test.rb, line 13
def test_cgi_escaping
  assert_query_equal "a%3Ab=c+d", "a:b" => "c d"
end
test_empty_array() click to toggle source
# File activesupport/test/core_ext/object/to_query_test.rb, line 51
def test_empty_array
  assert_equal "person%5B%5D=", [].to_query("person")
end
test_hash_sorted_lexicographically() click to toggle source
# File activesupport/test/core_ext/object/to_query_test.rb, line 75
def test_hash_sorted_lexicographically
  hash = { type: "human", name: "Nakshay" }
  assert_equal "name=Nakshay&type=human", hash.to_query
end
test_hash_with_namespace() click to toggle source
# File activesupport/test/core_ext/object/to_query_test.rb, line 70
def test_hash_with_namespace
  hash = { name: "Nakshay", nationality: "Indian" }
  assert_equal "user%5Bname%5D=Nakshay&user%5Bnationality%5D=Indian", hash.to_query("user")
end
test_html_safe_parameter_key() click to toggle source
# File activesupport/test/core_ext/object/to_query_test.rb, line 17
def test_html_safe_parameter_key
  assert_query_equal "a%3Ab=c+d", "a:b".html_safe => "c d"
end
test_html_safe_parameter_value() click to toggle source
# File activesupport/test/core_ext/object/to_query_test.rb, line 21
def test_html_safe_parameter_value
  assert_query_equal "a=%5B10%5D", "a" => "[10]".html_safe
end
test_multiple_nested() click to toggle source
# File activesupport/test/core_ext/object/to_query_test.rb, line 36
def test_multiple_nested
  assert_query_equal "account%5Bperson%5D%5Bid%5D=20&person%5Bid%5D=10",
    Hash[:account, { person: { id: 20 } }, :person, { id: 10 }]
end
test_nested_conversion() click to toggle source
# File activesupport/test/core_ext/object/to_query_test.rb, line 31
def test_nested_conversion
  assert_query_equal "person%5Blogin%5D=seckar&person%5Bname%5D=Nicholas",
    person: Hash[:login, "seckar", :name, "Nicholas"]
end
test_nested_empty_hash() click to toggle source
# File activesupport/test/core_ext/object/to_query_test.rb, line 55
def test_nested_empty_hash
  assert_equal "",
    {}.to_query
  assert_query_equal "a=1&b%5Bc%5D=3",
    a: 1, b: { c: 3, d: {} }
  assert_query_equal "",
    a: { b: { c: {} } }
  assert_query_equal "b%5Bc%5D=false&b%5Be%5D=&b%5Bf%5D=&p=12",
    p: 12, b: { c: false, e: nil, f: "" }
  assert_query_equal "b%5Bc%5D=3&b%5Bf%5D=",
    b: { c: 3, k: {}, f: "" }
  assert_query_equal "b=3",
    a: [], b: 3
end
test_nil_parameter_value() click to toggle source
# File activesupport/test/core_ext/object/to_query_test.rb, line 25
def test_nil_parameter_value
  empty = Object.new
  def empty.to_param; nil end
  assert_query_equal "a=", "a" => empty
end
test_simple_conversion() click to toggle source
# File activesupport/test/core_ext/object/to_query_test.rb, line 9
def test_simple_conversion
  assert_query_equal "a=10", a: 10
end

Private Instance Methods

assert_query_equal(expected, actual) click to toggle source
# File activesupport/test/core_ext/object/to_query_test.rb, line 81
def assert_query_equal(expected, actual)
  assert_equal expected.split("&"), actual.to_query.split("&")
end