mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-01 14:45:29 +00:00
91 lines
3.0 KiB
XML
91 lines
3.0 KiB
XML
<?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] in Iterator(expectedResults)) {
|
|
testPaste(item, $(item), expected);
|
|
}
|
|
|
|
SimpleTest.finish();
|
|
}, function() {
|
|
ok(false, "Could not copy the string to clipboard, giving up");
|
|
|
|
SimpleTest.finish();
|
|
});
|
|
}, 0);
|
|
});
|
|
|
|
]]>
|
|
</script>
|
|
|
|
</window>
|