/* defined as
my $hash = {
string => "string",
num => 42,
array => [ "a", "b", 2 ],
hash => { a => "apple", b => "bazooka" },
nil => undef,
nilvar => $undef,
blank => "",
zero => 0,
symbols => qq{"',;:},
html => qq{blah}
};
my $array = [ 7, "string", "123", { "foo" => "bar" }, undef, $undef, "", 0, qq{"',;:}, qq{blah} ];
*/
var expected_results = {
setup: function() {
this.js_dumper = {
array: [ 7, "string", 123, "123.", { foo: "bar" }, "", "", "", 0, "\"',;:", "blah", "テスト" ],
hash: {
string: "string",
num : 42,
numdot: "42.",
array : [ "a", "b", 2 ],
hash : { a: "apple", b: "bazooka" },
nil : "",
nilvar: "",
blank : "",
zero : 0,
symbols: "\"',;:",
html : "blah",
utf8 : "テスト"
}
};
this.json = {
array: [ 7, "string", "123", "123.", { foo: "bar" }, null, null, "", 0, "\"',;:", "blah", "テスト" ],
hash: {
string: "string",
num : 42,
numdot: "42.",
array : [ "a", "b", 2 ],
hash : { a: "apple", b: "bazooka" },
nil : null,
nilvar: null,
blank : "",
zero : 0,
symbols: "\"',;:",
html : "blah",
utf8 : "テスト"
}
};
}
};
module( "old", expected_results );
function old_getjson(url, expected) {
HTTPReq.getJSON({
url: url,
method: "GET",
onData: function (data) {
start();
deepEqual( data, expected );
},
onError: function (msg) {
start();
ok( false, "shouldn't error" );
}
});
}
asyncTest( "js_dumper - array", 1, function() {
old_getjson( "/dev/testhelper/jsondump?function=js_dumper&output=array", this.js_dumper.array );
});
asyncTest( "js_dumper - hash", 1, function() {
old_getjson( "/dev/testhelper/jsondump?function=js_dumper&output=hash", this.js_dumper.hash );
});
asyncTest( "json module - array", 1, function() {
old_getjson( "/dev/testhelper/jsondump?function=json&output=array", this.json.array );
});
asyncTest( "json module - hash", 1, function() {
old_getjson( "/dev/testhelper/jsondump?function=json&output=hash", this.json.hash );
});
module( "jquery", expected_results );
function jquery_getjson_ok(url, expected) {
$.ajax({
url: url,
dataType: "json",
success: function(data) {
start();
deepEqual( data, expected );
},
error: function(jqxhr, status, error) {
start();
ok( false, "error getting " + url + ": " + error );
}
});
}
function jquery_getjson_fail( url ) {
$.ajax({
url: url,
dataType: "json",
success: function(data) {
start();
ok( false, "unexpected success. js dumper output not strict JSON, doesn't actually work with jquery" );
},
error: function(jqxhr, status, error) {
start();
ok( error.name == "SyntaxError", "expected fail. js_dumper output not strict JSON, doesn't actually work with jquery" );
}
});
}
asyncTest( "js_dumper - array", 1, function() {
jquery_getjson_fail("/dev/testhelper/jsondump?function=js_dumper&output=array");
});
asyncTest( "js_dumper - hash", 1, function() {
jquery_getjson_fail("/dev/testhelper/jsondump?function=js_dumper&output=hash");
});
asyncTest( "json module - array", 1, function() {
jquery_getjson_ok( "/dev/testhelper/jsondump?function=json&output=array", this.json.array );
});
asyncTest( "json module - hash", 1, function() {
jquery_getjson_ok( "/dev/testhelper/jsondump?function=json&output=hash", this.json.hash );
});