mirror of
https://github.com/servo/servo.git
synced 2025-07-12 09:53:40 +01:00
76 lines
1.8 KiB
JavaScript
76 lines
1.8 KiB
JavaScript
let interceptor = (async function() {
|
|
let load = Promise.resolve();
|
|
[
|
|
'/gen/layout_test_data/mojo/public/js/mojo_bindings_lite.js',
|
|
'/gen/mojo/public/mojom/base/big_buffer.mojom-lite.js',
|
|
'/gen/mojo/public/mojom/base/string16.mojom-lite.js',
|
|
'/gen/mojo/public/mojom/base/time.mojom-lite.js',
|
|
'/gen/third_party/blink/public/mojom/sms/sms_manager.mojom-lite.js',
|
|
].forEach(path => {
|
|
let script = document.createElement('script');
|
|
script.src = path;
|
|
script.async = false;
|
|
load = load.then(() => new Promise(resolve => {
|
|
script.onload = resolve;
|
|
}));
|
|
document.head.appendChild(script);
|
|
});
|
|
|
|
return load.then(intercept);
|
|
})();
|
|
|
|
class SmsProvider {
|
|
getNextMessage(timeout) {
|
|
return this.handler.getNextMessage(timeout);
|
|
}
|
|
setHandler(handler) {
|
|
this.handler = handler;
|
|
return this;
|
|
}
|
|
setBinding(binding) {
|
|
this.binding = binding;
|
|
return this;
|
|
}
|
|
close() {
|
|
this.binding.close();
|
|
}
|
|
}
|
|
|
|
function getNextMessage(timeout, callback) {
|
|
throw new Error("expected to be overriden by tests");
|
|
}
|
|
|
|
async function close() {
|
|
let provider = await interceptor;
|
|
provider.close();
|
|
}
|
|
|
|
function expect(call) {
|
|
return {
|
|
async andReturn(callback) {
|
|
let handler = {};
|
|
handler[call.name] = callback;
|
|
let provider = await interceptor;
|
|
provider.setHandler(handler);
|
|
}
|
|
}
|
|
}
|
|
|
|
const Status = {};
|
|
|
|
function intercept() {
|
|
let provider = new SmsProvider();
|
|
|
|
let interceptor = new MojoInterfaceInterceptor(blink.mojom.SmsManager.$interfaceName);
|
|
interceptor.oninterfacerequest = (e) => {
|
|
let impl = new blink.mojom.SmsManager(provider);
|
|
impl.bindHandle(e.handle);
|
|
}
|
|
|
|
interceptor.start();
|
|
|
|
Status.kSuccess = blink.mojom.SmsStatus.kSuccess;
|
|
Status.kTimeout = blink.mojom.SmsStatus.kTimeout;
|
|
|
|
return provider;
|
|
}
|