Fix #10466. jQuery.param() should treat object-wrapped primitives as primitives.

This commit is contained in:
Rick Waldron
2011-12-06 16:02:54 -05:00
committed by Dave Methvin
parent 6c2a501de4
commit 166b9d252a
2 changed files with 14 additions and 1 deletions

View File

@@ -1031,6 +1031,19 @@ test("jQuery.param()", function() {
equal( jQuery.param( params, false ), "test%5Blength%5D=3&test%5Bfoo%5D=bar", "Sub-object with a length property" );
});
test("jQuery.param() Constructed prop values", function() {
expect(3);
var params = {"test": new String("foo") };
equal( jQuery.param( params, false ), "test=foo", "Do not mistake new String() for a plain object" );
params = {"test": new Number(5) };
equal( jQuery.param( params, false ), "test=5", "Do not mistake new Number() for a plain object" );
params = {"test": new Date() };
ok( jQuery.param( params, false ), "(Non empty string returned) Do not mistake new Date() for a plain object" );
});
test("synchronous request", function() {
expect(1);
ok( /^{ "data"/.test( jQuery.ajax({url: url("data/json_obj.js"), dataType: "text", async: false}).responseText ), "check returned text" );