blob: bbd6b09c6cf811855cb1fa299855b9cee55a66c3 [file] [log] [blame]
"use strict";
// Helper functions to be used from load-error-events*.html tests.
function event_test(name, load_to_be_fired, error_to_be_fired) {
return {
test: async_test(name),
executed: false,
load_event_to_be_fired: load_to_be_fired,
error_event_to_be_fired: error_to_be_fired
};
}
// Should be used as load/error event handlers of script tags,
// with |t| = the object returned by event_test().
function onLoad(t) {
t.test.step(function() {
if (t.load_event_to_be_fired) {
assert_true(t.executed,
'Load event should be fired after script execution');
// Delay done() a little so that if an error event happens
// the assert_unreached is reached and fails the test.
t.test.step_timeout(() => t.test.done(), 100);
} else {
assert_unreached('Load event should not be fired.');
}
});
};
function onError(t) {
t.test.step(function() {
if (t.error_event_to_be_fired) {
assert_false(t.executed);
// Delay done() a little so that if a load event happens
// the assert_unreached is reached and fails the test.
t.test.step_timeout(() => t.test.done(), 100);
} else {
assert_unreached('Error event should not be fired.');
}
});
};
// To be called from inline scripts, which expect no load/error events.
function onExecute(t) {
t.executed = true;
// Delay done() a little so that if a load/error event happens
// the assert_unreached is reached and fails the test.
t.test.step_timeout(() => t.test.done(), 100);
}