mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
153 lines
3.7 KiB
JavaScript
153 lines
3.7 KiB
JavaScript
function doTest(updates, assertions, expectError)
|
|
{
|
|
if (expectError) {
|
|
doUpdateTest(updates, assertions, updateError, runNextTest);
|
|
} else {
|
|
doUpdateTest(updates, assertions, runNextTest, updateError);
|
|
}
|
|
}
|
|
|
|
function testSimpleForward() {
|
|
var add1Urls = [ "foo.com/a", "bar.com/c" ];
|
|
var add2Urls = [ "foo.com/b" ];
|
|
var add3Urls = [ "bar.com/d" ];
|
|
|
|
var update = "n:1000\n";
|
|
update += "i:test-phish-simple\n";
|
|
|
|
var update1 = buildBareUpdate(
|
|
[{ "chunkNum" : 1,
|
|
"urls" : add1Urls }]);
|
|
update += "u:data:," + encodeURIComponent(update1) + "\n";
|
|
|
|
var update2 = buildBareUpdate(
|
|
[{ "chunkNum" : 2,
|
|
"urls" : add2Urls }]);
|
|
update += "u:data:," + encodeURIComponent(update2) + "\n";
|
|
|
|
var update3 = buildBareUpdate(
|
|
[{ "chunkNum" : 3,
|
|
"urls" : add3Urls }]);
|
|
update += "u:data:," + encodeURIComponent(update3) + "\n";
|
|
|
|
var assertions = {
|
|
"tableData" : "test-phish-simple;a:1-3",
|
|
"urlsExist" : add1Urls.concat(add2Urls).concat(add3Urls)
|
|
};
|
|
|
|
doTest([update], assertions, false);
|
|
}
|
|
|
|
// Make sure that a nested forward (a forward within a forward) causes
|
|
// the update to fail.
|
|
function testNestedForward() {
|
|
var add1Urls = [ "foo.com/a", "bar.com/c" ];
|
|
var add2Urls = [ "foo.com/b" ];
|
|
|
|
var update = "n:1000\n";
|
|
update += "i:test-phish-simple\n";
|
|
|
|
var update1 = buildBareUpdate(
|
|
[{ "chunkNum" : 1,
|
|
"urls" : add1Urls }]);
|
|
update += "u:data:," + encodeURIComponent(update1) + "\n";
|
|
|
|
var update2 = buildBareUpdate(
|
|
[{ "chunkNum" : 2 }]);
|
|
var update3 = buildBareUpdate(
|
|
[{ "chunkNum" : 3,
|
|
"urls" : add1Urls }]);
|
|
|
|
update2 += "u:data:," + encodeURIComponent(update3) + "\n";
|
|
|
|
update += "u:data:," + encodeURIComponent(update2) + "\n";
|
|
|
|
var assertions = {
|
|
"tableData" : "",
|
|
"urlsDontExist" : add1Urls.concat(add2Urls)
|
|
};
|
|
|
|
doTest([update], assertions, true);
|
|
}
|
|
|
|
// An invalid URL forward causes the update to fail.
|
|
function testInvalidUrlForward() {
|
|
var add1Urls = [ "foo.com/a", "bar.com/c" ];
|
|
|
|
var update = buildPhishingUpdate(
|
|
[{ "chunkNum" : 1,
|
|
"urls" : add1Urls }]);
|
|
update += "u:asdf://blah/blah\n"; // invalid URL scheme
|
|
|
|
var assertions = {
|
|
"tableData" : "",
|
|
"urlsDontExist" : add1Urls
|
|
};
|
|
|
|
doTest([update], assertions, true);
|
|
}
|
|
|
|
// A failed network request causes the update to fail.
|
|
function testErrorUrlForward() {
|
|
var add1Urls = [ "foo.com/a", "bar.com/c" ];
|
|
|
|
var update = buildPhishingUpdate(
|
|
[{ "chunkNum" : 1,
|
|
"urls" : add1Urls }]);
|
|
update += "u:http://test.invalid/asdf/asdf\n"; // invalid URL scheme
|
|
|
|
var assertions = {
|
|
"tableData" : "",
|
|
"urlsDontExist" : add1Urls
|
|
};
|
|
|
|
doTest([update], assertions, true);
|
|
}
|
|
|
|
function testMultipleTables() {
|
|
var add1Urls = [ "foo.com/a", "bar.com/c" ];
|
|
var add2Urls = [ "foo.com/b" ];
|
|
var add3Urls = [ "bar.com/d" ];
|
|
|
|
var update = "n:1000\n";
|
|
update += "i:test-phish-simple\n";
|
|
|
|
var update1 = buildBareUpdate(
|
|
[{ "chunkNum" : 1,
|
|
"urls" : add1Urls }]);
|
|
update += "u:data:," + encodeURIComponent(update1) + "\n";
|
|
|
|
var update2 = buildBareUpdate(
|
|
[{ "chunkNum" : 2,
|
|
"urls" : add2Urls }]);
|
|
update += "u:data:," + encodeURIComponent(update2) + "\n";
|
|
|
|
update += "i:test-malware-simple\n";
|
|
|
|
var update3 = buildBareUpdate(
|
|
[{ "chunkNum" : 3,
|
|
"urls" : add3Urls }]);
|
|
update += "u:data:," + encodeURIComponent(update3) + "\n";
|
|
|
|
var assertions = {
|
|
"tableData" : "test-malware-simple;a:3\ntest-phish-simple;a:1-2",
|
|
"urlsExist" : add1Urls.concat(add2Urls),
|
|
"malwareUrlsExist" : add3Urls
|
|
};
|
|
|
|
doTest([update], assertions, false);
|
|
}
|
|
|
|
function run_test()
|
|
{
|
|
runTests([
|
|
testSimpleForward,
|
|
testNestedForward,
|
|
testInvalidUrlForward,
|
|
testErrorUrlForward,
|
|
testMultipleTables
|
|
]);
|
|
}
|
|
|
|
do_test_pending();
|