diff options
Diffstat (limited to 'devtools/client/webconsole/test/browser/browser_webconsole_output_copy_newlines.js')
-rw-r--r-- | devtools/client/webconsole/test/browser/browser_webconsole_output_copy_newlines.js | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/devtools/client/webconsole/test/browser/browser_webconsole_output_copy_newlines.js b/devtools/client/webconsole/test/browser/browser_webconsole_output_copy_newlines.js new file mode 100644 index 0000000000..c2304cbd69 --- /dev/null +++ b/devtools/client/webconsole/test/browser/browser_webconsole_output_copy_newlines.js @@ -0,0 +1,42 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +// Test that multiple messages are copied into the clipboard and that they are +// separated by new lines. See bug 916997. +const TEST_URI = + "data:text/html,<!DOCTYPE html><meta charset=utf8>" + + "Test copy multiple messages to clipboard"; + +add_task(async function () { + const hud = await openNewTabAndConsole(TEST_URI); + + const messages = Array.from( + { length: 10 }, + (_, i) => `Message number ${i + 1}` + ); + const lastMessage = [...messages].pop(); + const onMessage = waitForMessageByType(hud, lastMessage, ".console-api"); + SpecialPowers.spawn(gBrowser.selectedBrowser, [messages], msgs => { + msgs.forEach(msg => content.wrappedJSObject.console.log(msg)); + }); + const { node } = await onMessage; + ok(node, "Messages were logged"); + + // Select the whole output. + const output = node.closest(".webconsole-output"); + selectNode(hud, output); + + info( + "Wait for the clipboard to contain the text corresponding to all the messages" + ); + await waitForClipboardPromise( + () => { + // The focus is on the JsTerm, so we need to blur it for the copy comand to work. + output.ownerDocument.activeElement.blur(); + goDoCommand("cmd_copy"); + }, + data => data.trim() === messages.join("\n") + ); +}); |