mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
b0c3b9005e
Get rid of Filters and automatically JSON.stringify PUT/POST data that aren't strings, so plain Records can be passed in to PUT and POST. This leverages toJSON of Records to provide an object that can be serialized. Fix up client record serialize/deserialize to still escape/unescape non-ASCII.
36 lines
1.1 KiB
JavaScript
36 lines
1.1 KiB
JavaScript
Cu.import("resource://weave/engines/clientData.js");
|
|
|
|
function run_test() {
|
|
_("Test that serializing client records results in uploadable ascii");
|
|
Clients.setInfo("ascii", {
|
|
name: "wéävê"
|
|
});
|
|
|
|
_("Make sure we have the expected record");
|
|
let record = Clients._store.createRecord("ascii");
|
|
do_check_eq(record.id, "ascii");
|
|
do_check_eq(record.payload.name, "wéävê");
|
|
|
|
let serialized = JSON.stringify(record);
|
|
let checkCount = 0;
|
|
_("Checking for all ASCII:", serialized);
|
|
Array.forEach(serialized, function(ch) {
|
|
let code = ch.charCodeAt(0);
|
|
_("Checking asciiness of '", ch, "'=", code);
|
|
do_check_true(code < 128);
|
|
checkCount++;
|
|
});
|
|
|
|
_("Processed", checkCount, "characters out of", serialized.length);
|
|
do_check_eq(checkCount, serialized.length);
|
|
|
|
_("Making sure the record still looks like it did before");
|
|
do_check_eq(record.id, "ascii");
|
|
do_check_eq(record.payload.name, "wéävê");
|
|
|
|
_("Sanity check that creating the record also gives the same");
|
|
record = Clients._store.createRecord("ascii");
|
|
do_check_eq(record.id, "ascii");
|
|
do_check_eq(record.payload.name, "wéävê");
|
|
}
|