browser_webconsole_batching.js (1762B)
1 /* Any copyright is dedicated to the Public Domain. 2 * http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 "use strict"; 5 6 // Check adding console calls as batch keep the order of the message. 7 8 const TEST_URI = 9 "http://example.com/browser/devtools/client/webconsole/" + 10 "test/browser/test-batching.html"; 11 const { 12 l10n, 13 } = require("resource://devtools/client/webconsole/utils/messages.js"); 14 15 add_task(async function () { 16 const hud = await openNewTabAndConsole(TEST_URI); 17 const messageNumber = 100; 18 await testSimpleBatchLogging(hud, messageNumber); 19 await testBatchLoggingAndClear(hud, messageNumber); 20 }); 21 22 async function testSimpleBatchLogging(hud, messageNumber) { 23 await SpecialPowers.spawn( 24 gBrowser.selectedBrowser, 25 [messageNumber], 26 function (numMessages) { 27 content.wrappedJSObject.batchLog(numMessages); 28 } 29 ); 30 const allMessages = await waitFor(async () => { 31 const msgs = await findAllMessagesVirtualized(hud); 32 if (msgs.length == messageNumber) { 33 return msgs; 34 } 35 return null; 36 }); 37 for (let i = 0; i < messageNumber; i++) { 38 const node = allMessages[i].querySelector(".message-body"); 39 is( 40 node.textContent, 41 i.toString(), 42 `message at index "${i}" is the expected one` 43 ); 44 } 45 } 46 47 async function testBatchLoggingAndClear(hud, messageNumber) { 48 await SpecialPowers.spawn( 49 gBrowser.selectedBrowser, 50 [messageNumber], 51 function (numMessages) { 52 content.wrappedJSObject.batchLogAndClear(numMessages); 53 } 54 ); 55 await waitFor(() => 56 findConsoleAPIMessage(hud, l10n.getStr("consoleCleared")) 57 ); 58 ok(true, "console cleared message is displayed"); 59 60 const messages = findAllMessages(hud); 61 is(messages.length, 1, "console was cleared as expected"); 62 }