Backed out changeset fdebe274e971 (bug 1413092) for failures in test_mozbuild_reading.py

CLOSED TREE

MozReview-Commit-ID: JA9UPvYmWMF

--HG--
rename : browser/modules/test/browser/formValidation/browser_form_validation.js => browser/base/content/test/general/browser_bug561636.js
rename : browser/modules/test/browser/formValidation/browser_validation_iframe.js => browser/base/content/test/general/browser_bug595507.js
rename : browser/modules/test/browser/formValidation/browser_validation_invisible.js => browser/modules/test/browser/browser_bug1319078.js
This commit is contained in:
Phil Ringnalda 2017-10-31 20:27:48 -07:00
parent 4700232b13
commit 9ac65f67a4
9 changed files with 62 additions and 98 deletions

View File

@ -192,6 +192,9 @@ skip-if = true # bug 1393813
# DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD.
[browser_bug559991.js]
# DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD.
[browser_bug561636.js]
skip-if = true # bug 1057615
# DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD.
[browser_bug563588.js]
# DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD.
[browser_bug565575.js]
@ -234,6 +237,9 @@ skip-if = toolkit != "cocoa" # Because of tests for supporting pasting from Serv
# DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD.
[browser_bug594131.js]
# DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD.
[browser_bug595507.js]
skip-if = true # bug 1057615
# DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD.
[browser_bug596687.js]
# DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD.
[browser_bug597218.js]

View File

@ -1,39 +1,3 @@
/**
* COPIED FROM browser/base/content/test/general/head.js.
* This function should be removed and replaced with BTU withNewTab calls
*
* Waits for a load (or custom) event to finish in a given tab. If provided
* load an uri into the tab.
*
* @param tab
* The tab to load into.
* @param [optional] url
* The url to load, or the current url.
* @return {Promise} resolved when the event is handled.
* @resolves to the received event
* @rejects if a valid load event is not received within a meaningful interval
*/
function promiseTabLoadEvent(tab, url) {
info("Wait tab event: load");
function handle(loadedUrl) {
if (loadedUrl === "about:blank" || (url && loadedUrl !== url)) {
info(`Skipping spurious load event for ${loadedUrl}`);
return false;
}
info("Tab event received: load");
return true;
}
let loaded = BrowserTestUtils.browserLoaded(tab.linkedBrowser, false, handle);
if (url)
BrowserTestUtils.loadURI(tab.linkedBrowser, url);
return loaded;
}
var gInvalidFormPopup = document.getElementById("invalid-form-popup");
ok(gInvalidFormPopup,
"The browser should have a popup to show when a form is invalid");
@ -142,7 +106,7 @@ add_task(async function() {
let uri = getDocHeader() + "<form target='t' action='data:text/html,'><input required id='i'><input id='s' type='submit'></form>" + getDocFooter();
let browser = await openNewTab(uri);
let popupShownPromise = BrowserTestUtils.waitForEvent(gInvalidFormPopup, "popupshown");
let popupShownPromise = promiseWaitForEvent(gInvalidFormPopup, "popupshown");
await clickChildElement(browser);
await popupShownPromise;
@ -161,7 +125,7 @@ add_task(async function() {
let uri = getDocHeader() + "<form target='t' action='data:text/html,'><input><input id='i' required><input required><input id='s' type='submit'></form>" + getDocFooter();
let browser = await openNewTab(uri);
let popupShownPromise = BrowserTestUtils.waitForEvent(gInvalidFormPopup, "popupshown");
let popupShownPromise = promiseWaitForEvent(gInvalidFormPopup, "popupshown");
await clickChildElement(browser);
await popupShownPromise;
@ -180,14 +144,14 @@ add_task(async function() {
let uri = getDocHeader() + "<form target='t' action='data:text/html,'><input id='i' required><input id='s' type='submit'></form>" + getDocFooter();
let browser = await openNewTab(uri);
let popupShownPromise = BrowserTestUtils.waitForEvent(gInvalidFormPopup, "popupshown");
let popupShownPromise = promiseWaitForEvent(gInvalidFormPopup, "popupshown");
await clickChildElement(browser);
await popupShownPromise;
checkPopupShow();
await checkChildFocus(browser, gInvalidFormPopup.firstChild.textContent);
let popupHiddenPromise = BrowserTestUtils.waitForEvent(gInvalidFormPopup, "popuphidden");
let popupHiddenPromise = promiseWaitForEvent(gInvalidFormPopup, "popuphidden");
EventUtils.synthesizeKey("a", {});
await popupHiddenPromise;
@ -203,7 +167,7 @@ add_task(async function() {
let uri = getDocHeader() + "<form target='t' action='data:text/html,'><input type='email' id='i' required><input id='s' type='submit'></form>" + getDocFooter();
let browser = await openNewTab(uri);
let popupShownPromise = BrowserTestUtils.waitForEvent(gInvalidFormPopup, "popupshown");
let popupShownPromise = promiseWaitForEvent(gInvalidFormPopup, "popupshown");
await clickChildElement(browser);
await popupShownPromise;
@ -230,14 +194,14 @@ add_task(async function() {
let uri = getDocHeader() + "<form target='t' action='data:text/html,'><input id='i' required><input id='s' type='submit'></form>" + getDocFooter();
let browser = await openNewTab(uri);
let popupShownPromise = BrowserTestUtils.waitForEvent(gInvalidFormPopup, "popupshown");
let popupShownPromise = promiseWaitForEvent(gInvalidFormPopup, "popupshown");
await clickChildElement(browser);
await popupShownPromise;
checkPopupShow();
await checkChildFocus(browser, gInvalidFormPopup.firstChild.textContent);
let popupHiddenPromise = BrowserTestUtils.waitForEvent(gInvalidFormPopup, "popuphidden");
let popupHiddenPromise = promiseWaitForEvent(gInvalidFormPopup, "popuphidden");
await blurChildElement(browser);
await popupHiddenPromise;
@ -252,14 +216,14 @@ add_task(async function() {
let uri = getDocHeader() + "<form target='t' action='data:text/html,'><input id='i' required><input id='s' type='submit'></form>" + getDocFooter();
let browser = await openNewTab(uri);
let popupShownPromise = BrowserTestUtils.waitForEvent(gInvalidFormPopup, "popupshown");
let popupShownPromise = promiseWaitForEvent(gInvalidFormPopup, "popupshown");
await clickChildElement(browser);
await popupShownPromise;
checkPopupShow();
await checkChildFocus(browser, gInvalidFormPopup.firstChild.textContent);
let popupHiddenPromise = BrowserTestUtils.waitForEvent(gInvalidFormPopup, "popuphidden");
let popupHiddenPromise = promiseWaitForEvent(gInvalidFormPopup, "popuphidden");
EventUtils.synthesizeKey("VK_TAB", {});
await popupHiddenPromise;
@ -274,14 +238,14 @@ add_task(async function() {
let uri = getDocHeader() + "<form target='t' action='data:text/html,'><input id='i' required><input id='s' type='submit'></form>" + getDocFooter();
let browser1 = await openNewTab(uri);
let popupShownPromise = BrowserTestUtils.waitForEvent(gInvalidFormPopup, "popupshown");
let popupShownPromise = promiseWaitForEvent(gInvalidFormPopup, "popupshown");
await clickChildElement(browser1);
await popupShownPromise;
checkPopupShow();
await checkChildFocus(browser1, gInvalidFormPopup.firstChild.textContent);
let popupHiddenPromise = BrowserTestUtils.waitForEvent(gInvalidFormPopup, "popuphidden");
let popupHiddenPromise = promiseWaitForEvent(gInvalidFormPopup, "popuphidden");
let browser2 = await openNewTab("data:text/html,<html></html>");
await popupHiddenPromise;
@ -339,7 +303,7 @@ add_task(async function() {
let uri = getDocHeader() + "<form target='t' action='data:text/html,'><input x-moz-errormessage='foo' required id='i'><input id='s' type='submit'></form>" + getDocFooter();
let browser = await openNewTab(uri);
let popupShownPromise = BrowserTestUtils.waitForEvent(gInvalidFormPopup, "popupshown");
let popupShownPromise = promiseWaitForEvent(gInvalidFormPopup, "popupshown");
await clickChildElement(browser);
await popupShownPromise;
@ -360,7 +324,7 @@ add_task(async function() {
let uri = getDocHeader() + "<form target='t' action='data:text/html,'><input type='email' required id='i'><input id='s' type='submit'></form>" + getDocFooter();
let browser = await openNewTab(uri);
let popupShownPromise = BrowserTestUtils.waitForEvent(gInvalidFormPopup, "popupshown");
let popupShownPromise = promiseWaitForEvent(gInvalidFormPopup, "popupshown");
await clickChildElement(browser);
await popupShownPromise;
@ -368,7 +332,7 @@ add_task(async function() {
await checkChildFocus(browser, gInvalidFormPopup.firstChild.textContent);
// eslint-disable-next-line mozilla/no-cpows-in-tests
let inputPromise = BrowserTestUtils.waitForEvent(gBrowser.contentDocument.getElementById("i"), "input");
let inputPromise = promiseWaitForEvent(gBrowser.contentDocument.getElementById("i"), "input");
EventUtils.synthesizeKey("f", {});
await inputPromise;

View File

@ -0,0 +1,36 @@
/**
* Make sure that the form validation error message shows even if the form is in an iframe.
*/
add_task(async function() {
let uri = "<iframe src=\"data:text/html,<iframe name='t'></iframe><form target='t' action='data:text/html,'><input required id='i'><input id='s' type='submit'></form>\"</iframe>";
var gInvalidFormPopup = document.getElementById("invalid-form-popup");
ok(gInvalidFormPopup,
"The browser should have a popup to show when a form is invalid");
let tab = BrowserTestUtils.addTab(gBrowser);
let browser = gBrowser.getBrowserForTab(tab);
gBrowser.selectedTab = tab;
await promiseTabLoadEvent(tab, "data:text/html," + escape(uri));
let popupShownPromise = promiseWaitForEvent(gInvalidFormPopup, "popupshown");
await ContentTask.spawn(browser, {}, async function() {
content.document.getElementsByTagName("iframe")[0]
.contentDocument.getElementById("s").click();
});
await popupShownPromise;
await ContentTask.spawn(browser, {}, async function() {
let childdoc = content.document.getElementsByTagName("iframe")[0].contentDocument;
Assert.equal(childdoc.activeElement, childdoc.getElementById("i"),
"First invalid element should be focused");
});
ok(gInvalidFormPopup.state == "showing" || gInvalidFormPopup.state == "open",
"The invalid form popup should be shown");
gBrowser.removeCurrentTab();
});

View File

@ -119,10 +119,7 @@ with Files("ZoomUI.jsm"):
BUG_COMPONENT = ("Firefox", "Toolbars and Customization")
BROWSER_CHROME_MANIFESTS += [
'test/browser/browser.ini',
'test/browser/formValidation/browser.ini',
]
BROWSER_CHROME_MANIFESTS += ['test/browser/browser.ini']
XPCSHELL_TESTS_MANIFESTS += ['test/unit/xpcshell.ini']
EXTRA_JS_MODULES += [

View File

@ -10,6 +10,7 @@ skip-if = !e10s # Bug 1373549
skip-if = !e10s # Bug 1373549
[browser_BrowserUITelemetry_syncedtabs.js]
skip-if = !e10s # Bug 1373549
[browser_bug1319078.js]
[browser_ContentSearch.js]
support-files =
contentSearch.js

View File

@ -17,13 +17,13 @@ function incrementTest() {
/**
* In this test, we check that no popup appears if the element display is none.
*/
add_task(async function test_display_none() {
add_task(async function() {
ok(gInvalidFormPopup,
"The browser should have a popup to show when a form is invalid");
incrementTest();
let testPage =
"data:text/html;charset=utf-8," +
"data:text/html," +
'<form target="t"><input type="url" placeholder="url" value="http://" style="display: none;"><input id="s" type="button" value="check"></form>';
let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, testPage);
await BrowserTestUtils.synthesizeMouse("#s", 0, 0, {}, gBrowser.selectedBrowser);
@ -35,10 +35,10 @@ add_task(async function test_display_none() {
/**
* In this test, we check that no popup appears if the element visibility is hidden.
*/
add_task(async function test_visibility_hidden() {
add_task(async function() {
incrementTest();
let testPage =
"data:text/html;charset=utf-8," +
"data:text/html," +
'<form target="t"><input type="url" placeholder="url" value="http://" style="visibility: hidden;"><input id="s" type="button" value="check"></form>';
let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, testPage);
await BrowserTestUtils.synthesizeMouse("#s", 0, 0, {}, gBrowser.selectedBrowser);

View File

@ -1,7 +0,0 @@
"use strict";
module.exports = {
"extends": [
"plugin:mozilla/browser-test"
]
};

View File

@ -1,4 +0,0 @@
[browser_form_validation.js]
skip-if = true # bug 1057615
[browser_validation_iframe.js]
[browser_validation_invisible.js]

View File

@ -1,29 +0,0 @@
/**
* Make sure that the form validation error message shows even if the form is in an iframe.
*/
add_task(async function test_iframe() {
let uri = "data:text/html;charset=utf-8," + escape("<iframe src=\"data:text/html,<iframe name='t'></iframe><form target='t' action='data:text/html,'><input required id='i'><input id='s' type='submit'></form>\" height=\"600\"></iframe>");
var gInvalidFormPopup = document.getElementById("invalid-form-popup");
ok(gInvalidFormPopup,
"The browser should have a popup to show when a form is invalid");
await BrowserTestUtils.withNewTab(uri, async function checkTab(browser) {
let popupShownPromise = BrowserTestUtils.waitForEvent(gInvalidFormPopup, "popupshown");
await ContentTask.spawn(browser, {}, async function() {
content.document.getElementsByTagName("iframe")[0]
.contentDocument.getElementById("s").click();
});
await popupShownPromise;
await ContentTask.spawn(browser, {}, async function() {
let childdoc = content.document.getElementsByTagName("iframe")[0].contentDocument;
Assert.equal(childdoc.activeElement, childdoc.getElementById("i"),
"First invalid element should be focused");
});
ok(gInvalidFormPopup.state == "showing" || gInvalidFormPopup.state == "open",
"The invalid form popup should be shown");
});
});