await Assert.rejects(
gClient.request({ to: errorActor, type: "error" }),
err =>
err.error == "unknownError" &&
/error occurred while processing 'error/.test(err.message), "The request should be rejected"
);
await gClient.close();
});
const TEST_ERRORS_ACTOR_URL = "chrome://mochitests/content/browser/devtools/server/tests/browser/test-errors-actor.js";
add_task(async function test_protocoljs_actor() {
DevToolsServer.init();
DevToolsServer.registerAllActors();
info("Register the new TestErrorsActor");
require(TEST_ERRORS_ACTOR_URL);
ActorRegistry.registerModule(TEST_ERRORS_ACTOR_URL, {
prefix: "testErrors",
constructor: "TestErrorsActor",
type: { global: true },
});
info("Create a DevTools client/server pair"); const transport = DevToolsServer.connectPipe(); const gClient = new DevToolsClient(transport);
await gClient.connect();
info("Retrieve a TestErrorsFront instance"); const testErrorsFront = await gClient.mainRoot.getFront("testErrors");
ok(testErrorsFront, "has a TestErrorsFront instance");
await Assert.rejects(testErrorsFront.throwsComponentsException(), e => { returnnew RegExp(
`NS_ERROR_NOT_IMPLEMENTED from: ${testErrorsFront.actorID} ` +
`\\(${TEST_ERRORS_ACTOR_URL}:\\d+:\\d+\\)`
).test(e.message);
});
await Assert.rejects(testErrorsFront.throwsException(), e => { // Not asserting the specific error message here, as it changes depending // on the channel. returnnew RegExp(
`Protocol error \\(TypeError\\):.* from: ${testErrorsFront.actorID} ` +
`\\(${TEST_ERRORS_ACTOR_URL}:\\d+:\\d+\\)`
).test(e.message);
});
await Assert.rejects(testErrorsFront.throwsJSError(), e => { returnnew RegExp(
`Protocol error \\(Error\\): JSError from: ${testErrorsFront.actorID} ` +
`\\(${TEST_ERRORS_ACTOR_URL}:\\d+:\\d+\\)`
).test(e.message);
});
await Assert.rejects(testErrorsFront.throwsString(), e => { returnnew RegExp(`ErrorString from: ${testErrorsFront.actorID}`).test(
e.message
);
});
await Assert.rejects(testErrorsFront.throwsObject(), e => { returnnew RegExp(`foo from: ${testErrorsFront.actorID}`).test(e.message);
});
await gClient.close();
});
¤ Dauer der Verarbeitung: 0.18 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.