Index: LayoutTests/fast/events/clipboard-dataTransferItemList.html |
diff --git a/LayoutTests/fast/events/clipboard-dataTransferItemList.html b/LayoutTests/fast/events/clipboard-dataTransferItemList.html |
index 456fbb7721f794c5ab460ca46b4f471f7be70755..6ca335e5e96e30128e5e104db838da704c970a35 100644 |
--- a/LayoutTests/fast/events/clipboard-dataTransferItemList.html |
+++ b/LayoutTests/fast/events/clipboard-dataTransferItemList.html |
@@ -1,21 +1,8 @@ |
<!DOCTYPE html> |
<html> |
<head> |
+<script src="../js/resources/js-test-pre.js"></script> |
<script> |
-function assertEq(left, right) |
-{ |
- if (left === right) |
- log('PASS: ' + left + " === " + right); |
- else |
- log('FAIL: ' + left + "(of type " + (typeof left) + ") !== " + right + "(of type " + (typeof right) + ")"); |
-} |
-function log(str) |
-{ |
- var result = document.getElementById('result'); |
- result.appendChild(document.createTextNode(str)); |
- result.appendChild(document.createElement('br')); |
-} |
- |
function legacyCopyStart(dataTransfer) |
{ |
dataTransfer.setData('text', 'sample'); |
@@ -24,8 +11,11 @@ function legacyCopyStart(dataTransfer) |
dataTransfer.setData('custom-data', 'hello world'); |
} |
+var testDataTransfer; |
function itemListCopyStart(dataTransfer) |
{ |
+ testDataTransfer = dataTransfer; |
+ shouldBeUndefined('testDataTransfer.items.item'); |
dataTransfer.items.add('sample', 'text/plain'); |
dataTransfer.items.add('http://www.google.com/', 'text/uri-list'); |
dataTransfer.items.add('<em>Markup</em>', 'text/html'); |
@@ -44,39 +34,39 @@ function copy(event) |
function legacyPaste(dataTransfer) |
{ |
- assertEq(4, dataTransfer.types.length); |
- if (dataTransfer.types.indexOf('text/plain') < 0) |
- log('FAIL: types array did not contain "text"'); |
- if (dataTransfer.types.indexOf('text/uri-list') < 0) |
- log('FAIL: types array did not contain "text/uri-list"'); |
- if (dataTransfer.types.indexOf('text/html') < 0) |
- log('FAIL: types array did not contain "text/html"'); |
- if (dataTransfer.types.indexOf('custom-data') < 0) |
- log('FAIL: types array did not contain "custom-data"'); |
- assertEq('sample', dataTransfer.getData('text')); |
- assertEq('http://www.google.com/', dataTransfer.getData('url')); |
- assertEq('<em>Markup</em>', dataTransfer.getData('text/html')); |
- assertEq('hello world', dataTransfer.getData('custom-data')); |
- runNext(); |
+ testDataTransfer = dataTransfer; |
+ shouldBe('testDataTransfer.types.length', '4'); |
+ shouldBeTrue('testDataTransfer.types.indexOf("text/plain") >= 0'); |
+ shouldBeTrue('testDataTransfer.types.indexOf("text/uri-list") >= 0'); |
+ shouldBeTrue('testDataTransfer.types.indexOf("text/html") >= 0'); |
+ shouldBeTrue('testDataTransfer.types.indexOf("custom-data") >= 0'); |
+ shouldBeEqualToString('testDataTransfer.getData("text")', 'sample'); |
+ shouldBeEqualToString('testDataTransfer.getData("url")', 'http://www.google.com/'); |
+ shouldBeEqualToString('testDataTransfer.getData("text/html")', '<em>Markup</em>'); |
+ shouldBeEqualToString('testDataTransfer.getData("custom-data")', 'hello world'); |
+ setTimeout(runNext, 0); |
} |
+var testData, expectedTestData; |
+var types, expectedTypes; |
var outstandingRequests; |
function itemListPaste(dataTransfer) |
{ |
+ testDataTransfer = dataTransfer; |
outstandingRequests = 0; |
- assertEq(4, dataTransfer.items.length); |
- var types = []; |
+ shouldBe('testDataTransfer.items.length', '4'); |
+ types = []; |
for (var i = 0; i < dataTransfer.items.length; ++i) { |
types.push({kind: dataTransfer.items[i].kind, type: dataTransfer.items[i].type}); |
} |
types.sort(function (a, b) { return a.type.localeCompare(b.type); }); |
- var expectedTypes = [ |
+ expectedTypes = [ |
{ kind: 'string', type: 'custom-data'}, |
{ kind: 'string', type: 'text/html'}, |
{ kind: 'string', type: 'text/plain'}, |
{ kind: 'string', type: 'text/uri-list'}, |
]; |
- assertEq(JSON.stringify(expectedTypes), JSON.stringify(types)); |
+ shouldBe('JSON.stringify(expectedTypes)', 'JSON.stringify(types)'); |
var expectedResults = { |
'custom-data': 'hello world', |
'text/html': '<em>Markup</em>', |
@@ -87,9 +77,11 @@ function itemListPaste(dataTransfer) |
{ |
++outstandingRequests; |
return function (data) { |
- assertEq(expectedData, data); |
+ expectedTestData = expectedData; |
+ testData = data; |
+ shouldBe('testData', 'expectedTestData'); |
if (--outstandingRequests == 0) |
- window.setTimeout(runNext, 0); |
+ setTimeout(runNext, 0); |
} |
} |
// We use this funky loop to make sure we always print out results in the same order. |
@@ -118,7 +110,7 @@ function runTest(copyMethodIndex, pasteMethodIndex) |
var pasteMethod = document.getElementById('pasteMethod'); |
copyMethod.selectedIndex = copyMethodIndex; |
pasteMethod.selectedIndex = pasteMethodIndex; |
- log('Running test with ' + copyMethod.value + ' copy handler and ' + pasteMethod.value + ' paste handler'); |
+ debug('Running test with ' + copyMethod.value + ' copy handler and ' + pasteMethod.value + ' paste handler'); |
document.execCommand('copy'); |
document.execCommand('paste'); |
@@ -138,24 +130,23 @@ function runNext() |
if (testCase) |
runTest.apply(null, testCase); |
else |
- testRunner.notifyDone(); |
+ finishJSTest(); |
} |
-window.onload = function() |
-{ |
- if (!window.testRunner) |
- return; |
- testRunner.dumpAsText(); |
- testRunner.waitUntilDone(); |
- |
- runNext(); |
-} |
</script> |
</head> |
<body oncopy="copy(event)" onpaste="paste(event)"> |
<p>To manually test, press your browser shortcut for copy and then for paste. Several lines that say 'PASS' should appear below. |
<div>Copy handler: <select id="copyMethod"><option>Legacy</option><option>DataTransferItemList</option></select></div> |
<div>Paste handler: <select id="pasteMethod"><option>Legacy</option><option>DataTransferItemList</option></select></div> |
-<div id="result"></div> |
+<div id="console"></div> |
+<script> |
+description("Tests copy / paste and DataTransferItemList"); |
+ |
+window.jsTestIsAsync = true; |
+ |
+runNext(); |
+</script> |
+<script src="../js/resources/js-test-post.js"></script> |
</body> |
</html> |