зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1257481 - move browserDrop.js tests into test_browser_drop.xul, r=enndeakin
MozReview-Commit-ID: AyWry0UjYMD --HG-- extra : rebase_source : dd57c0b50913202f66dc74ab0466098e2aa51008 extra : amend_source : 5ba216f9d22e35618baa2bf7328809976fb496df
This commit is contained in:
Родитель
b6734a035a
Коммит
b0af50a12a
|
@ -4,8 +4,6 @@ support-files =
|
|||
file_contentTitle.html
|
||||
audio.ogg
|
||||
[browser_autoscroll_disabled.js]
|
||||
[browser_browserDrop.js]
|
||||
skip-if = buildapp == 'mulet' || e10s # Relies on drop to be handled in the parent process
|
||||
[browser_bug295977_autoscroll_overflow.js]
|
||||
[browser_bug594509.js]
|
||||
[browser_bug982298.js]
|
||||
|
@ -48,4 +46,4 @@ skip-if = buildapp == 'mulet' || buildapp == 'b2g'
|
|||
[browser_saveImageURL.js]
|
||||
support-files =
|
||||
image.jpg
|
||||
image_page.html
|
||||
image_page.html
|
||||
|
|
|
@ -1,61 +0,0 @@
|
|||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
function test() {
|
||||
waitForExplicitFinish();
|
||||
|
||||
let newTab = gBrowser.selectedTab = gBrowser.addTab();
|
||||
registerCleanupFunction(function () {
|
||||
gBrowser.removeTab(newTab);
|
||||
});
|
||||
|
||||
let scriptLoader = Cc["@mozilla.org/moz/jssubscript-loader;1"].
|
||||
getService(Ci.mozIJSSubScriptLoader);
|
||||
let ChromeUtils = {};
|
||||
scriptLoader.loadSubScript("chrome://mochikit/content/tests/SimpleTest/ChromeUtils.js", ChromeUtils);
|
||||
|
||||
let browser = gBrowser.selectedBrowser;
|
||||
|
||||
var linkHandlerActivated = 0;
|
||||
// Don't worry about clobbering the droppedLinkHandler, since we're closing
|
||||
// this tab after the test anyways
|
||||
browser.droppedLinkHandler = function dlh(e, url, name) {
|
||||
linkHandlerActivated++;
|
||||
ok(!/(javascript|data)/i.test(url), "javascript link should not be dropped");
|
||||
}
|
||||
|
||||
var receivedDropCount = 0;
|
||||
function dropListener() {
|
||||
receivedDropCount++;
|
||||
if (receivedDropCount == triggeredDropCount) {
|
||||
// Wait for the browser's system-phase event handler to run.
|
||||
executeSoon(function () {
|
||||
is(linkHandlerActivated, validDropCount,
|
||||
"link handler was called correct number of times");
|
||||
finish();
|
||||
})
|
||||
}
|
||||
}
|
||||
browser.addEventListener("drop", dropListener, false);
|
||||
registerCleanupFunction(function () {
|
||||
browser.removeEventListener("drop", dropListener, false);
|
||||
});
|
||||
|
||||
var triggeredDropCount = 0;
|
||||
var validDropCount = 0;
|
||||
function drop(text, valid) {
|
||||
triggeredDropCount++;
|
||||
if (valid)
|
||||
validDropCount++;
|
||||
executeSoon(function () {
|
||||
ChromeUtils.synthesizeDrop(browser, browser, [[{type: "text/plain", data: text}]], "copy", window);
|
||||
});
|
||||
}
|
||||
|
||||
drop("mochi.test/first", true);
|
||||
drop("javascript:'bad'");
|
||||
drop("jAvascript:'also bad'");
|
||||
drop("mochi.test/second", true);
|
||||
drop("data:text/html,bad");
|
||||
drop("mochi.test/third", true);
|
||||
}
|
|
@ -14,7 +14,6 @@
|
|||
<script>
|
||||
<![CDATA[
|
||||
|
||||
let lastLink, lastLinkName;
|
||||
Components.utils.import("resource://testing-common/ContentTask.jsm");
|
||||
|
||||
function doDropAndStopLoad(browser, data, shouldExpectStateChange) {
|
||||
|
@ -76,13 +75,23 @@ function doDropAndStopLoad(browser, data, shouldExpectStateChange) {
|
|||
}
|
||||
|
||||
function expectLink(browser, expectedLink, expectedName, data, testid, onbody=false) {
|
||||
let lastLink = "";
|
||||
let lastLinkName = "";
|
||||
function dropOnBrowserSync() {
|
||||
browser.droppedLinkHandler = function(event, link, linkname) {
|
||||
info(`droppedLinkHandler called, received link ${link} and linkname ${linkname}`);
|
||||
if (!expectedLink && !expectedName) {
|
||||
ok(false, "droppedLinkHandler called for URI " + link + " which we didn't expect.");
|
||||
}
|
||||
lastLink = link;
|
||||
lastLinkName = linkname;
|
||||
};
|
||||
|
||||
let dropEl = onbody ? browser.contentDocument.body : browser;
|
||||
synthesizeDrop(dropEl, dropEl, data, "", dropEl.ownerDocument.defaultView);
|
||||
return Promise.resolve([lastLink, lastLinkName]);
|
||||
}
|
||||
let dropInfoReceived;
|
||||
lastLink = lastLinkName = "";
|
||||
if (browser.isRemoteBrowser) {
|
||||
dropInfoReceived = doDropAndStopLoad(browser, data[0][0], !!expectedLink);
|
||||
} else {
|
||||
|
@ -95,11 +104,6 @@ function expectLink(browser, expectedLink, expectedName, data, testid, onbody=fa
|
|||
}
|
||||
|
||||
function* dropLinksOnBrowser(browser, type) {
|
||||
browser.droppedLinkHandler = function(event, link, linkname) {
|
||||
info(`droppedLinkHandler called, received link ${link} and linkname ${linkname}`);
|
||||
lastLink = link;
|
||||
lastLinkName = linkname;
|
||||
};
|
||||
yield expectLink(browser, "http://www.mozilla.org/", "http://www.mozilla.org/",
|
||||
[ [ { type: "text/plain", data: "http://www.mozilla.org/" } ] ],
|
||||
"text/plain drop on browser " + type);
|
||||
|
@ -112,6 +116,18 @@ function* dropLinksOnBrowser(browser, type) {
|
|||
yield expectLink(browser, "http://www.example.com/", "Example.com",
|
||||
[ [ { type: "text/x-moz-url", data: "http://www.example.com/\nExample.com" } ] ],
|
||||
"text/x-moz-url drop on browser " + type);
|
||||
|
||||
// Dropping javascript or data: URLs should fail:
|
||||
yield expectLink(browser, "", "",
|
||||
[ [ { type: "text/plain", data: "javascript:'bad'" } ] ],
|
||||
"text/plain javascript url drop on browser " + type);
|
||||
yield expectLink(browser, "", "",
|
||||
[ [ { type: "text/plain", data: "jAvascript:'also bad'" } ] ],
|
||||
"text/plain mixed-case javascript url drop on browser " + type);
|
||||
yield expectLink(browser, "", "",
|
||||
[ [ { type: "text/plain", data: "data:text/html,bad" } ] ],
|
||||
"text/plain data url drop on browser " + type);
|
||||
|
||||
// dropping a chrome url should fail as we don't have a source node set,
|
||||
// defaulting to a source of file:///
|
||||
yield expectLink(browser, "", "",
|
||||
|
|
Загрузка…
Ссылка в новой задаче