From d25ba7d760b017b038e5aa6c0a605b4a330eb68d Mon Sep 17 00:00:00 2001 From: wolfbeast Date: Wed, 21 May 2014 11:38:25 +0200 Subject: Recommit working copy to repo with proper line endings. --- .../webconsole/test/browser_longstring_hang.js | 73 ++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 browser/devtools/webconsole/test/browser_longstring_hang.js (limited to 'browser/devtools/webconsole/test/browser_longstring_hang.js') diff --git a/browser/devtools/webconsole/test/browser_longstring_hang.js b/browser/devtools/webconsole/test/browser_longstring_hang.js new file mode 100644 index 000000000..0a3600680 --- /dev/null +++ b/browser/devtools/webconsole/test/browser_longstring_hang.js @@ -0,0 +1,73 @@ +/* vim:set ts=2 sw=2 sts=2 et: */ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +// Test that very long strings do not hang the browser. + +function test() +{ + waitForExplicitFinish(); + + let DebuggerServer = Cu.import("resource://gre/modules/devtools/dbg-server.jsm", + {}).DebuggerServer; + + addTab("http://example.com/browser/browser/devtools/webconsole/test/test-bug-859170-longstring-hang.html"); + + let hud = null; + + gBrowser.selectedBrowser.addEventListener("load", function onLoad() { + gBrowser.selectedBrowser.removeEventListener("load", onLoad, true); + openConsole(null, performTest); + }, true); + + function performTest(aHud) + { + hud = aHud; + + info("wait for the initial long string"); + + waitForMessages({ + webconsole: hud, + messages: [ + { + name: "find 'foobar', no 'foobaz', in long string output", + text: "foobar", + noText: "foobaz", + category: CATEGORY_WEBDEV, + longString: true, + }, + ], + }).then(onInitialString); + } + + function onInitialString(aResults) + { + let clickable = aResults[0].longStrings[0]; + ok(clickable, "long string ellipsis is shown"); + + scrollOutputToNode(clickable); + + executeSoon(() => { + EventUtils.synthesizeMouse(clickable, 2, 2, {}, hud.iframeWindow); + + info("wait for long string expansion"); + + waitForMessages({ + webconsole: hud, + messages: [ + { + name: "find 'foobaz' after expand, but no 'boom!' at the end", + text: "foobaz", + noText: "boom!", + category: CATEGORY_WEBDEV, + longString: false, + }, + { + text: "too long to be displayed", + longString: false, + }, + ], + }).then(finishTest); + }); + } +} -- cgit v1.2.3