136 lines
5.2 KiB
HTML
136 lines
5.2 KiB
HTML
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<script src="../../http/tests/inspector/resources/inspector-test.js"></script>
|
|
<script>
|
|
function test()
|
|
{
|
|
class TestRecorder extends WI.DiagnosticEventRecorder {
|
|
constructor(name, controller, {setup, teardown} = {}) {
|
|
super(name, controller);
|
|
|
|
this._setupCallback = setup;
|
|
this._teardownCallback = teardown;
|
|
}
|
|
|
|
setup()
|
|
{
|
|
if (typeof this._setupCallback === "function")
|
|
this._setupCallback(this);
|
|
}
|
|
|
|
teardown()
|
|
{
|
|
if (typeof this._teardownCallback === "function")
|
|
this._teardownCallback(this);
|
|
}
|
|
|
|
sendEvent(name, payload)
|
|
{
|
|
this.logDiagnosticEvent(name, payload);
|
|
}
|
|
};
|
|
|
|
let suite = InspectorTest.createSyncSuite("DiagnosticController");
|
|
|
|
suite.addTestCase({
|
|
name: "DiagnosticController.SetupAndTeardown",
|
|
test() {
|
|
let diagnosticController = new WI.DiagnosticController;
|
|
InspectorTest.expectThat(!diagnosticController.diagnosticLoggingAvailable, "Diagnostics should not be available initially.");
|
|
|
|
let recorder = new TestRecorder("Test.1", diagnosticController, {
|
|
setup: (recorder) => InspectorTest.log("In setup() for recorder: " + recorder.name),
|
|
teardown: (recorder) => InspectorTest.log("In teardown() for recorder: " + recorder.name),
|
|
});
|
|
|
|
InspectorTest.log("Adding recorder...");
|
|
diagnosticController.addRecorder(recorder);
|
|
InspectorTest.expectThat(!recorder.active, "Recorder should be inactive prior to diagnostics becoming available.");
|
|
|
|
InspectorTest.log("Triggering a diagnostic event...");
|
|
recorder.sendEvent("TestEvent.0", {"answer": "should NOT be logged"});
|
|
|
|
|
|
InspectorTest.log("Making diagnostics available...");
|
|
diagnosticController.diagnosticLoggingAvailable = true;
|
|
InspectorTest.expectThat(recorder.active, "Recorder should be active after diagnostics are available.");
|
|
|
|
InspectorTest.log("Triggering a diagnostic event...");
|
|
recorder.sendEvent("TestEvent.1", {"answer": "should be logged"});
|
|
|
|
InspectorTest.log("Making diagnostics not available...");
|
|
diagnosticController.diagnosticLoggingAvailable = false;
|
|
|
|
InspectorTest.expectThat(!recorder.active, "Recorder should be inactive after diagnostics are not longer available.");
|
|
}
|
|
});
|
|
|
|
suite.addTestCase({
|
|
name: "DiagnosticController.AddRecorderWhileActive",
|
|
test() {
|
|
let diagnosticController = new WI.DiagnosticController;
|
|
|
|
InspectorTest.log("Making diagnostics available...");
|
|
diagnosticController.diagnosticLoggingAvailable = true;
|
|
|
|
let recorder = new TestRecorder("Test.2", diagnosticController, {
|
|
setup: (recorder) => InspectorTest.log("In setup() for recorder: " + recorder.name),
|
|
teardown: (recorder) => InspectorTest.log("In teardown() for recorder: " + recorder.name),
|
|
});
|
|
|
|
InspectorTest.log("Adding recorder...");
|
|
diagnosticController.addRecorder(recorder);
|
|
|
|
InspectorTest.log("Triggering a diagnostic event...");
|
|
recorder.sendEvent("TestEvent.2", {"answer": "should be logged"});
|
|
|
|
InspectorTest.log("Making diagnostics not available...");
|
|
diagnosticController.diagnosticLoggingAvailable = false;
|
|
|
|
InspectorTest.log("Triggering a diagnostic event...");
|
|
recorder.sendEvent("TestEvent.3", {"answer": "should NOT be logged"});
|
|
}
|
|
});
|
|
|
|
suite.addTestCase({
|
|
name: "DiagnosticController.AddRecorderWhileInactive",
|
|
test() {
|
|
let diagnosticController = new WI.DiagnosticController;
|
|
|
|
InspectorTest.log("Making diagnostics not available...");
|
|
diagnosticController.diagnosticLoggingAvailable = false;
|
|
|
|
let recorder = new TestRecorder("Test.3", diagnosticController, {
|
|
setup: (recorder) => InspectorTest.log("In setup() for recorder: " + recorder.name),
|
|
teardown: (recorder) => InspectorTest.log("In teardown() for recorder: " + recorder.name),
|
|
});
|
|
|
|
InspectorTest.log("Adding recorder...");
|
|
diagnosticController.addRecorder(recorder);
|
|
|
|
InspectorTest.log("Triggering a diagnostic event...");
|
|
recorder.sendEvent("TestEvent.4", {"answer": "should NOT be logged"});
|
|
|
|
InspectorTest.log("Making diagnostics available...");
|
|
diagnosticController.diagnosticLoggingAvailable = true;
|
|
|
|
InspectorTest.log("Triggering a diagnostic event...");
|
|
recorder.sendEvent("TestEvent.5", {"answer": "should be logged"});
|
|
|
|
InspectorTest.log("Making diagnostics not available...");
|
|
diagnosticController.diagnosticLoggingAvailable = false;
|
|
|
|
InspectorTest.log("Triggering a diagnostic event...");
|
|
recorder.sendEvent("TestEvent.6", {"answer": "should NOT be logged"});
|
|
}
|
|
});
|
|
|
|
suite.runTestCasesAndFinish();
|
|
}
|
|
</script>
|
|
</head>
|
|
<body onLoad="runTest()">
|
|
</body>
|
|
</html>
|