mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-11-19 18:38:36 +00:00
189 lines
7.6 KiB
JavaScript
189 lines
7.6 KiB
JavaScript
function test_registerFailure() {
|
|
ok("sync" in navigator, "navigator.sync exists");
|
|
|
|
navigator.sync.register().then(
|
|
function() {
|
|
ok(false, "navigator.sync.register() throws without a task name");
|
|
}, function() {
|
|
ok(true, "navigator.sync.register() throws without a task name");
|
|
})
|
|
|
|
.then(function() {
|
|
return navigator.sync.register(42);
|
|
}).then(function() {
|
|
ok(false, "navigator.sync.register() throws without a string task name");
|
|
}, function() {
|
|
ok(true, "navigator.sync.register() throws without a string task name");
|
|
})
|
|
|
|
.then(function() {
|
|
return navigator.sync.register('foobar');
|
|
}).then(function() {
|
|
ok(false, "navigator.sync.register() throws without a param dictionary");
|
|
}, function() {
|
|
ok(true, "navigator.sync.register() throws without a param dictionary");
|
|
})
|
|
|
|
.then(function() {
|
|
return navigator.sync.register('foobar', 42);
|
|
}).then(function() {
|
|
ok(false, "navigator.sync.register() throws without a real dictionary");
|
|
}, function() {
|
|
ok(true, "navigator.sync.register() throws without a real dictionary");
|
|
})
|
|
|
|
.then(function() {
|
|
return navigator.sync.register('foobar', {});
|
|
}).then(function() {
|
|
ok(false, "navigator.sync.register() throws without a minInterval and wakeUpPage");
|
|
}, function() {
|
|
ok(true, "navigator.sync.register() throws without a minInterval and wakeUpPage");
|
|
})
|
|
|
|
.then(function() {
|
|
return navigator.sync.register('foobar', { minInterval: 100 });
|
|
}).then(function() {
|
|
ok(false, "navigator.sync.register() throws without a wakeUpPage");
|
|
}, function() {
|
|
ok(true, "navigator.sync.register() throws without a wakeUpPage");
|
|
})
|
|
|
|
.then(function() {
|
|
return navigator.sync.register('foobar', { wakeUpPage: 100 });
|
|
}).then(function() {
|
|
ok(false, "navigator.sync.register() throws without a minInterval");
|
|
}, function() {
|
|
ok(true, "navigator.sync.register() throws without a minInterval");
|
|
})
|
|
|
|
.then(function() {
|
|
runTests();
|
|
});
|
|
}
|
|
|
|
function genericError(name, val) {
|
|
ok(false, "Promise from " + name + " rejected with value: " + val);
|
|
}
|
|
|
|
function test_register() {
|
|
navigator.sync.register('foobar', { minInterval: 5, wakeUpPage:'/' }).then(
|
|
function() {
|
|
ok(true, "navigator.sync.register() worked!");
|
|
runTests();
|
|
}, genericError.bind(null, 'register'));
|
|
}
|
|
|
|
function test_unregister() {
|
|
navigator.sync.unregister('foobar').then(
|
|
function() {
|
|
ok(true, "navigator.sync.unregister() worked!");
|
|
runTests();
|
|
}, genericError.bind(null, 'unregister'));
|
|
}
|
|
|
|
function test_unregisterDuplicate() {
|
|
navigator.sync.unregister('foobar').then(
|
|
genericError.bind(null, 'unregisterDuplicate'),
|
|
function(error) {
|
|
ok(true, "navigator.sync.unregister() should throw if the task doesn't exist.");
|
|
ok(error, "UnknownTaskError", "Duplicate unregistration error is correct");
|
|
runTests();
|
|
});
|
|
}
|
|
|
|
function test_registrationEmpty() {
|
|
navigator.sync.registration('bar').then(
|
|
function(results) {
|
|
is(results, null, "navigator.sync.registration() should return null.");
|
|
runTests();
|
|
},
|
|
genericError.bind(null, 'registrationEmpty'));
|
|
}
|
|
|
|
function test_registration() {
|
|
navigator.sync.registration('foobar').then(
|
|
function(results) {
|
|
is(results.task, 'foobar', "navigator.sync.registration().task is correct");
|
|
ok("lastSync" in results, "navigator.sync.registration().lastSync is correct");
|
|
is(results.oneShot, true, "navigator.sync.registration().oneShot is correct");
|
|
is(results.minInterval, 5, "navigator.sync.registration().minInterval is correct");
|
|
ok("wakeUpPage" in results, "navigator.sync.registration().wakeUpPage is correct");
|
|
ok("wifiOnly" in results, "navigator.sync.registration().wifiOnly is correct");
|
|
ok("data" in results, "navigator.sync.registration().data is correct");
|
|
ok(!("app" in results), "navigator.sync.registrations().app is correct");
|
|
runTests();
|
|
},
|
|
genericError.bind(null, 'registration'));
|
|
}
|
|
|
|
function test_registrationsEmpty() {
|
|
navigator.sync.registrations().then(
|
|
function(results) {
|
|
is(results.length, 0, "navigator.sync.registrations() should return an empty array.");
|
|
runTests();
|
|
},
|
|
genericError.bind(null, 'registrationEmpty'));
|
|
}
|
|
|
|
function test_registrations() {
|
|
navigator.sync.registrations().then(
|
|
function(results) {
|
|
is(results.length, 1, "navigator.sync.registrations() should not return an empty array.");
|
|
is(results[0].task, 'foobar', "navigator.sync.registrations()[0].task is correct");
|
|
ok("lastSync" in results[0], "navigator.sync.registrations()[0].lastSync is correct");
|
|
is(results[0].oneShot, true, "navigator.sync.registrations()[0].oneShot is correct");
|
|
is(results[0].minInterval, 5, "navigator.sync.registrations()[0].minInterval is correct");
|
|
ok("wakeUpPage" in results[0], "navigator.sync.registration()[0].wakeUpPage is correct");
|
|
ok("wifiOnly" in results[0], "navigator.sync.registrations()[0].wifiOnly is correct");
|
|
ok("data" in results[0], "navigator.sync.registrations()[0].data is correct");
|
|
ok(!("app" in results[0]), "navigator.sync.registrations()[0].app is correct");
|
|
runTests();
|
|
},
|
|
genericError.bind(null, 'registrations'));
|
|
}
|
|
|
|
function test_managerRegistrationsEmpty() {
|
|
navigator.syncManager.registrations().then(
|
|
function(results) {
|
|
is(results.length, 0, "navigator.syncManager.registrations() should return an empty array.");
|
|
runTests();
|
|
},
|
|
genericError.bind(null, 'managerRegistrationsEmpty'));
|
|
}
|
|
|
|
function test_managerRegistrations(state, overwrittenMinInterval) {
|
|
navigator.syncManager.registrations().then(
|
|
function(results) {
|
|
is(results.length, 1, "navigator.sync.registrations() should not return an empty array.");
|
|
is(results[0].task, 'foobar', "navigator.sync.registrations()[0].task is correct");
|
|
ok("lastSync" in results[0], "navigator.sync.registrations()[0].lastSync is correct");
|
|
is(results[0].oneShot, true, "navigator.sync.registrations()[0].oneShot is correct");
|
|
is(results[0].minInterval, 5, "navigator.sync.registrations()[0].minInterval is correct");
|
|
ok("wakeUpPage" in results[0], "navigator.sync.registration()[0].wakeUpPage is correct");
|
|
ok("wifiOnly" in results[0], "navigator.sync.registrations()[0].wifiOnly is correct");
|
|
ok("data" in results[0], "navigator.sync.registrations()[0].data is correct");
|
|
ok("app" in results[0], "navigator.sync.registrations()[0].app is correct");
|
|
ok("manifestURL" in results[0].app, "navigator.sync.registrations()[0].app.manifestURL is correct");
|
|
is(results[0].app.origin, 'http://mochi.test:8888', "navigator.sync.registrations()[0].app.origin is correct");
|
|
is(results[0].app.isInBrowserElement, false, "navigator.sync.registrations()[0].app.isInBrowserElement is correct");
|
|
is(results[0].state, state, "navigator.sync.registrations()[0].state is correct");
|
|
is(results[0].overwrittenMinInterval, overwrittenMinInterval, "navigator.sync.registrations()[0].overwrittenMinInterval is correct");
|
|
ok("setPolicy" in results[0], "navigator.sync.registrations()[0].setPolicy is correct");
|
|
ok("runNow" in results[0], "navigator.sync.registrations()[0].runNow is correct");
|
|
runTests();
|
|
},
|
|
genericError.bind(null, 'managerRegistrations'));
|
|
}
|
|
|
|
function test_managerSetPolicy(state, overwrittenMinInterval) {
|
|
navigator.syncManager.registrations().then(
|
|
function(results) {
|
|
results[0].setPolicy(state, overwrittenMinInterval).then(
|
|
function() {
|
|
ok(state, results[0].state, "State matches");
|
|
ok(overwrittenMinInterval, results[0].overwrittenMinInterval, "OverwrittenMinInterval matches");
|
|
runTests();
|
|
}, genericError.bind(null, 'managerSetPolicy'));
|
|
}).catch(genericError.bind(null, 'managerSetPolicy_catch'));
|
|
}
|