| Index: LayoutTests/fast/events/drag-dataTransferItemList.html
|
| diff --git a/LayoutTests/fast/events/drag-dataTransferItemList.html b/LayoutTests/fast/events/drag-dataTransferItemList.html
|
| index 3ce80c9f4210eac49dc020f0ed7f2ed0a0c0b479..978b3cd1dd9d1a7d8e7df63806db9fe89b21bc36 100644
|
| --- a/LayoutTests/fast/events/drag-dataTransferItemList.html
|
| +++ b/LayoutTests/fast/events/drag-dataTransferItemList.html
|
| @@ -1,6 +1,7 @@
|
| <!DOCTYPE html>
|
| <html>
|
| <head>
|
| +<script src="../js/resources/js-test-pre.js"></script>
|
| <style>
|
| #drag {
|
| border: 1px solid black;
|
| @@ -14,20 +15,6 @@
|
| }
|
| </style>
|
| <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 legacyDragStart(dataTransfer)
|
| {
|
| dataTransfer.setData('text', 'sample');
|
| @@ -36,8 +23,12 @@ function legacyDragStart(dataTransfer)
|
| dataTransfer.setData('custom-data', 'hello world');
|
| }
|
|
|
| +var testDataTransfer;
|
| function itemListDragStart(dataTransfer)
|
| {
|
| + testDataTransfer = dataTransfer;
|
| + shouldThrow('testDataTransfer.items.add()', '"TypeError: Not enough arguments"');
|
| + shouldThrow('testDataTransfer.items.add("sample")', '"TypeError: Type error"');
|
| dataTransfer.items.add('sample', 'text/plain');
|
| dataTransfer.items.add('http://www.google.com/', 'text/uri-list');
|
| dataTransfer.items.add('<em>Markup</em>', 'text/html');
|
| @@ -65,39 +56,39 @@ function dragover(event)
|
|
|
| function legacyDrop(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 outstandingRequests;
|
| +var types, expectedTypes;
|
| +var testData, expectedTestData;
|
| function itemListDrop(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>',
|
| @@ -108,9 +99,11 @@ function itemListDrop(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.
|
| @@ -140,7 +133,7 @@ function runTest(dragMethodIndex, dropMethodIndex)
|
| var dropMethod = document.getElementById('dropMethod');
|
| dragMethod.selectedIndex = dragMethodIndex;
|
| dropMethod.selectedIndex = dropMethodIndex;
|
| - log('Running test with ' + dragMethod.value + ' drag handler and ' + dropMethod.value + ' drop handler');
|
| + debug('Running test with ' + dragMethod.value + ' drag handler and ' + dropMethod.value + ' drop handler');
|
|
|
| var dragElement = document.getElementById('drag');
|
| eventSender.mouseMoveTo(dragElement.offsetLeft + dragElement.offsetWidth / 2,
|
| @@ -167,17 +160,7 @@ function runNext()
|
| if (testCase)
|
| runTest.apply(null, testCase);
|
| else
|
| - testRunner.notifyDone();
|
| -}
|
| -
|
| -window.onload = function()
|
| -{
|
| - if (!window.testRunner)
|
| - return;
|
| - testRunner.dumpAsText();
|
| - testRunner.waitUntilDone();
|
| -
|
| - runNext();
|
| + finishJSTest();
|
| }
|
| </script>
|
| </head>
|
| @@ -188,6 +171,13 @@ window.onload = function()
|
| </div>
|
| <div>Drag handler: <select id="dragMethod"><option>Legacy</option><option>DataTransferItemList</option></select></div>
|
| <div>Drop handler: <select id="dropMethod"><option>Legacy</option><option>DataTransferItemList</option></select></div>
|
| -<div id="result"></div>
|
| +<div id="console"></div>
|
| +<script>
|
| +description("Tests drag'n drop and well as DataTransferItemList");
|
| +window.jsTestIsAsync = true;
|
| +
|
| +runNext();
|
| +</script>
|
| +<script src="../js/resources/js-test-post.js"></script>
|
| </body>
|
| </html>
|
|
|