diff options
Diffstat (limited to 'toolkit/content/tests/chrome/test_bug253481.xul')
-rw-r--r-- | toolkit/content/tests/chrome/test_bug253481.xul | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/toolkit/content/tests/chrome/test_bug253481.xul b/toolkit/content/tests/chrome/test_bug253481.xul new file mode 100644 index 000000000..aa5c017c6 --- /dev/null +++ b/toolkit/content/tests/chrome/test_bug253481.xul @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<?xml-stylesheet href="chrome://global/skin" type="text/css"?> +<?xml-stylesheet + href="chrome://mochikit/content/tests/SimpleTest/test.css" + type="text/css"?> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=253481 +--> +<window title="Mozilla Bug 253481" + xmlns:html="http://www.w3.org/1999/xhtml" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> + + <script type="application/javascript" + src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> + <script type="application/javascript" + src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"></script> + +<body xmlns="http://www.w3.org/1999/xhtml"> +<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=253481">Mozilla Bug 253481</a> +<p id="display"></p> +<div id="content" style="display: none"> + +</div> +</body> + +<description> + Tests pasting of multi-line content into a single-line xul:textbox. +</description> + +<vbox> +<textbox id="pasteintact" newlines="pasteintact"/> +<textbox id="pastetofirst" newlines="pastetofirst"/> +<textbox id="replacewithspaces" newlines="replacewithspaces"/> +<textbox id="strip" newlines="strip"/> +<textbox id="replacewithcommas" newlines="replacewithcommas"/> +<textbox id="stripsurroundingwhitespace" newlines="stripsurroundingwhitespace"/> +</vbox> +<script class="testbody" type="application/javascript;version=1.7"> +<![CDATA[ +/** Test for Bug 253481 **/ +function testPaste(name, element, expected) { + element.value = ""; + element.focus(); + synthesizeKey("v", { accelKey: true }); + is(element.value, expected, name); +} + +SimpleTest.waitForExplicitFinish(); + +SimpleTest.waitForFocus(function() { +setTimeout(function() { +var testString = "\n hello hello \n world\nworld \n"; +var expectedResults = { +// even "pasteintact" strips leading/trailing newlines +"pasteintact": testString.replace(/^\n/, '').replace(/\n$/, ''), +// "pastetofirst" strips leading newlines +"pastetofirst": testString.replace(/^\n/, '').split(/\n/)[0], +// "replacewithspaces" strips trailing newlines first - bug 432415 +"replacewithspaces": testString.replace(/\n$/, '').replace(/\n/g,' '), +// "strip" is pretty straightforward +"strip": testString.replace(/\n/g,''), +// "replacewithcommas" strips leading and trailing newlines first +"replacewithcommas": testString.replace(/^\n/, '').replace(/\n$/, '').replace(/\n/g,','), +// "stripsurroundingwhitespace" strips all newlines and whitespace around them +"stripsurroundingwhitespace": testString.replace(/\s*\n\s*/g,'') +}; + +// Put a multi-line string in the clipboard +SimpleTest.waitForClipboard(testString, function() { + var clip = Components.classes["@mozilla.org/widget/clipboardhelper;1"] + .getService(Components.interfaces.nsIClipboardHelper); + clip.copyString(testString); +}, function() { + for (let [item, expected] of Object.entries(expectedResults)) { + testPaste(item, $(item), expected); + } + + SimpleTest.finish(); +}, function() { + ok(false, "Could not copy the string to clipboard, giving up"); + + SimpleTest.finish(); +}); +}, 0); +}); + +]]> +</script> + +</window> |