| <!DOCTYPE html> <!-- webkit-test-runner [ jscOptions=--useShadowRealm=1 ] --> |
| <html> |
| <head> |
| <script src="../http/tests/inspector/resources/inspector-test.js"></script> |
| <script> |
| const realm = new ShadowRealm; |
| |
| function realmEvaluate(src) { |
| realm.evaluate(src); |
| } |
| |
| function evaluateInNestedRealm(src) { |
| realm.evaluate(`(() => { |
| const r = new ShadowRealm; |
| r.evaluate("${src}"); |
| })()`); |
| } |
| |
| function test() |
| { |
| const suite = InspectorTest.createAsyncSuite("ShadowRealm.Console.basic"); |
| |
| suite.addTestCase({ |
| name: "ShadowRealm.Console.basic.log", |
| description: "console.log in shadow realms should send to the incubating realm's console", |
| async test() { |
| let [messageAddedEvent] = await Promise.all([ |
| WI.consoleManager.awaitEvent(WI.ConsoleManager.Event.MessageAdded), |
| InspectorTest.evaluateInPage(`realmEvaluate("console.log('hello')")`), |
| ]); |
| let {message} = messageAddedEvent.data; |
| InspectorTest.expectEqual(message.messageText, "hello", "message text should be 'hello'"); |
| InspectorTest.expectEqual(message.target, WI.mainTarget, "message target should be the main page"); |
| } |
| }); |
| |
| suite.addTestCase({ |
| name: "ShadowRealm.Console.nested.log", |
| description: "console.log in shadow realms should send to the incubating realm's console", |
| async test() { |
| let [messageAddedEvent] = await Promise.all([ |
| WI.consoleManager.awaitEvent(WI.ConsoleManager.Event.MessageAdded), |
| InspectorTest.evaluateInPage(`evaluateInNestedRealm("console.log('hello')")`), |
| ]); |
| let {message} = messageAddedEvent.data; |
| InspectorTest.expectEqual(message.messageText, "hello", "message text should be 'hello'"); |
| InspectorTest.expectEqual(message.target, WI.mainTarget, "message target should be the main page"); |
| } |
| }); |
| |
| suite.runTestCasesAndFinish(); |
| } |
| </script> |
| </head> |
| <body onLoad="runTest()"> |
| We really just want to test that the shadow realm's console output gets |
| redirected to the appropriate page console and not sent to the default |
| (possibly blackhole) destination |
| </body> |
| </html> |