mirror of
https://github.com/Feodor2/Mypal68.git
synced 2025-06-18 14:55:44 -04:00
68.14.2 - testing
This commit is contained in:
parent
e05c93a44e
commit
2c2b226a2c
@ -5,7 +5,6 @@
|
||||
from __future__ import absolute_import
|
||||
from firefox_puppeteer import PuppeteerMixin
|
||||
from marionette_driver import expected, By, Wait
|
||||
from marionette_driver.errors import NoSuchElementException
|
||||
from marionette_harness import MarionetteTestCase
|
||||
|
||||
|
||||
@ -134,73 +133,6 @@ class TestLocationBar(PuppeteerMixin, MarionetteTestCase):
|
||||
Wait(self.marionette).until(lambda mn: mn.get_url() == data_uri)
|
||||
|
||||
|
||||
class TestAutoCompleteResults(PuppeteerMixin, MarionetteTestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(TestAutoCompleteResults, self).setUp()
|
||||
|
||||
self.browser.navbar.locationbar.clear()
|
||||
|
||||
self.autocomplete_results = self.browser.navbar.locationbar.autocomplete_results
|
||||
|
||||
def tearDown(self):
|
||||
try:
|
||||
self.autocomplete_results.close(force=True)
|
||||
except NoSuchElementException:
|
||||
# TODO: A NoSuchElementException is thrown here when tests accessing the
|
||||
# autocomplete_results element are skipped.
|
||||
pass
|
||||
finally:
|
||||
super(TestAutoCompleteResults, self).tearDown()
|
||||
|
||||
def test_popup_elements(self):
|
||||
self.assertFalse(self.autocomplete_results.is_open)
|
||||
self.browser.navbar.locationbar.urlbar.send_keys('.')
|
||||
Wait(self.marionette).until(lambda _: self.autocomplete_results.is_complete)
|
||||
count_visible_results = len(self.autocomplete_results.visible_results)
|
||||
self.assertTrue(count_visible_results > 0)
|
||||
self.assertLessEqual(count_visible_results,
|
||||
self.autocomplete_results.element.get_property('maxResults'))
|
||||
|
||||
def test_close(self):
|
||||
self.browser.navbar.locationbar.urlbar.send_keys('a')
|
||||
Wait(self.marionette).until(lambda _: self.autocomplete_results.is_open)
|
||||
# The Wait in the library implementation will fail this if this doesn't
|
||||
# end up closing.
|
||||
self.autocomplete_results.close()
|
||||
|
||||
def test_force_close(self):
|
||||
self.browser.navbar.locationbar.urlbar.send_keys('a')
|
||||
Wait(self.marionette).until(lambda _: self.autocomplete_results.is_open)
|
||||
# The Wait in the library implementation will fail this if this doesn't
|
||||
# end up closing.
|
||||
self.autocomplete_results.close(force=True)
|
||||
|
||||
def test_matching_text(self):
|
||||
# The default profile always has existing bookmarks. So no sites have to
|
||||
# be visited and bookmarked.
|
||||
for input_text in ('about', 'zilla'):
|
||||
self.browser.navbar.locationbar.urlbar.clear()
|
||||
self.browser.navbar.locationbar.urlbar.send_keys(input_text)
|
||||
Wait(self.marionette).until(lambda _: self.autocomplete_results.is_open)
|
||||
Wait(self.marionette).until(lambda _: self.autocomplete_results.is_complete)
|
||||
visible_results = self.autocomplete_results.visible_results
|
||||
self.assertTrue(len(visible_results) > 0)
|
||||
|
||||
for result in visible_results:
|
||||
# check matching text only for results of type bookmark
|
||||
if result.get_attribute('type') != 'bookmark':
|
||||
continue
|
||||
title_matches = self.autocomplete_results.get_matching_text(result, "title")
|
||||
url_matches = self.autocomplete_results.get_matching_text(result, "url")
|
||||
all_matches = title_matches + url_matches
|
||||
self.assertTrue(len(all_matches) > 0)
|
||||
for match_fragment in all_matches:
|
||||
self.assertIn(match_fragment.lower(), input_text)
|
||||
|
||||
self.autocomplete_results.close()
|
||||
|
||||
|
||||
class TestIdentityPopup(PuppeteerMixin, MarionetteTestCase):
|
||||
def setUp(self):
|
||||
super(TestIdentityPopup, self).setUp()
|
||||
|
@ -5,6 +5,7 @@
|
||||
from __future__ import absolute_import, print_function, unicode_literals
|
||||
|
||||
import argparse
|
||||
import errno
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
@ -667,9 +668,8 @@ class TestInfoCommand(MachCommandBase):
|
||||
@CommandArgument('--verbose', action='store_true',
|
||||
help='Enable debug logging.')
|
||||
def test_info(self, **params):
|
||||
|
||||
import which
|
||||
from mozbuild.base import MozbuildObject
|
||||
from mozfile import which
|
||||
|
||||
self.branches = params['branches']
|
||||
self.start = params['start']
|
||||
@ -698,17 +698,15 @@ class TestInfoCommand(MachCommandBase):
|
||||
|
||||
self._hg = None
|
||||
if conditions.is_hg(build_obj):
|
||||
if self._is_windows():
|
||||
self._hg = which.which('hg.exe')
|
||||
else:
|
||||
self._hg = which.which('hg')
|
||||
self._hg = which('hg')
|
||||
if not self._hg:
|
||||
raise OSError(errno.ENOENT, "Could not find 'hg' on PATH.")
|
||||
|
||||
self._git = None
|
||||
if conditions.is_git(build_obj):
|
||||
if self._is_windows():
|
||||
self._git = which.which('git.exe')
|
||||
else:
|
||||
self._git = which.which('git')
|
||||
self._git = which('git')
|
||||
if not self._git:
|
||||
raise OSError(errno.ENOENT, "Could not find 'git' on PATH.")
|
||||
|
||||
for test_name in params['test_names']:
|
||||
print("===== %s =====" % test_name)
|
||||
|
@ -123,14 +123,13 @@ class WebElementEventTarget {
|
||||
});
|
||||
}
|
||||
|
||||
receiveMessage({ name, data, objects }) {
|
||||
receiveMessage({ name, data }) {
|
||||
if (name != "Marionette:DOM:OnEvent") {
|
||||
return;
|
||||
}
|
||||
|
||||
let ev = {
|
||||
type: data.type,
|
||||
target: objects.target,
|
||||
};
|
||||
this.dispatchEvent(ev);
|
||||
}
|
||||
@ -208,7 +207,7 @@ class ContentEventObserverService {
|
||||
|
||||
handleEvent({ type, target }) {
|
||||
logger.trace(`Received DOM event ${type}`);
|
||||
this.sendAsyncMessage("Marionette:DOM:OnEvent", { type }, { target });
|
||||
this.sendAsyncMessage("Marionette:DOM:OnEvent", { type });
|
||||
}
|
||||
}
|
||||
this.ContentEventObserverService = ContentEventObserverService;
|
||||
|
@ -1,95 +0,0 @@
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
from __future__ import absolute_import
|
||||
|
||||
from marionette_driver.by import By
|
||||
|
||||
from marionette_harness import MarionetteTestCase
|
||||
|
||||
|
||||
OOP_BY_DEFAULT = "dom.ipc.browser_frames.oop_by_default"
|
||||
BROWSER_FRAMES_ENABLED = "dom.mozBrowserFramesEnabeld"
|
||||
|
||||
|
||||
class TestGetActiveFrameOOP(MarionetteTestCase):
|
||||
def setUp(self):
|
||||
super(TestGetActiveFrameOOP, self).setUp()
|
||||
with self.marionette.using_context("chrome"):
|
||||
self.oop_by_default = self.marionette.get_pref(OOP_BY_DEFAULT)
|
||||
self.mozBrowserFramesEnabled = self.marionette.get_pref(BROWSER_FRAMES_ENABLED)
|
||||
self.marionette.set_pref(OOP_BY_DEFAULT, True)
|
||||
self.marionette.set_pref(BROWSER_FRAMES_ENABLED, True)
|
||||
|
||||
def tearDown(self):
|
||||
with self.marionette.using_context("chrome"):
|
||||
if self.oop_by_default is None:
|
||||
self.marionette.clear_pref(OOP_BY_DEFAULT)
|
||||
else:
|
||||
self.marionette.set_pref(OOP_BY_DEFAULT, self.oop_by_default)
|
||||
|
||||
if self.mozBrowserFramesEnabled is None:
|
||||
self.marionette.clear_pref(BROWSER_FRAMES_ENABLED)
|
||||
else:
|
||||
self.marionette.set_pref(BROWSER_FRAMES_ENABLED, self.mozBrowserFramesEnabled)
|
||||
|
||||
def test_active_frame_oop(self):
|
||||
self.marionette.navigate(self.marionette.absolute_url("test.html"))
|
||||
self.marionette.push_permission('browser', True)
|
||||
|
||||
# Create first OOP frame
|
||||
self.marionette.execute_script("""
|
||||
let iframe1 = document.createElement("iframe");
|
||||
iframe1.id = "remote_iframe1";
|
||||
iframe1.setAttribute('remote', true);
|
||||
iframe1.setAttribute('mozbrowser', true);
|
||||
iframe1.style.height = "100px";
|
||||
iframe1.style.width = "100%%";
|
||||
iframe1.src = "{}";
|
||||
document.body.appendChild(iframe1);
|
||||
""".format(self.marionette.absolute_url("test_oop_1.html")))
|
||||
|
||||
# Currently no active frame
|
||||
self.assertEqual(self.marionette.get_active_frame(), None)
|
||||
self.assertTrue("test.html" in self.marionette.get_url())
|
||||
|
||||
# Switch to iframe1, get active frame
|
||||
frame = self.marionette.find_element(By.ID, 'remote_iframe1')
|
||||
self.marionette.switch_to_frame(frame)
|
||||
active_frame1 = self.marionette.get_active_frame()
|
||||
self.assertNotEqual(active_frame1.id, None)
|
||||
|
||||
# Switch to top-level then back to active frame, verify correct frame
|
||||
self.marionette.switch_to_frame()
|
||||
self.marionette.switch_to_frame(active_frame1)
|
||||
self.assertTrue("test_oop_1.html" in self.marionette.execute_script("return document.wrappedJSObject.location.href"))
|
||||
|
||||
# Create another OOP frame
|
||||
self.marionette.switch_to_frame()
|
||||
self.marionette.execute_script("""
|
||||
let iframe2 = document.createElement("iframe");
|
||||
iframe2.setAttribute('mozbrowser', true);
|
||||
iframe2.setAttribute('remote', true);
|
||||
iframe2.id = "remote_iframe2";
|
||||
iframe2.style.height = "100px";
|
||||
iframe2.style.width = "100%%";
|
||||
iframe2.src = "{}";
|
||||
document.body.appendChild(iframe2);
|
||||
""".format(self.marionette.absolute_url("test_oop_2.html")))
|
||||
|
||||
# Switch to iframe2, get active frame
|
||||
frame2 = self.marionette.find_element(By.ID, 'remote_iframe2')
|
||||
self.marionette.switch_to_frame(frame2)
|
||||
active_frame2 = self.marionette.get_active_frame()
|
||||
self.assertNotEqual(active_frame2.id, None)
|
||||
|
||||
# Switch to top-level then back to active frame 1, verify correct frame
|
||||
self.marionette.switch_to_frame()
|
||||
self.marionette.switch_to_frame(active_frame1)
|
||||
self.assertTrue("test_oop_1.html" in self.marionette.execute_script("return document.wrappedJSObject.location.href"))
|
||||
|
||||
# Switch to top-level then back to active frame 2, verify correct frame
|
||||
self.marionette.switch_to_frame()
|
||||
self.marionette.switch_to_frame(active_frame2)
|
||||
self.assertTrue("test_oop_2.html" in self.marionette.execute_script("return document.wrappedJSObject.location.href"))
|
@ -78,8 +78,6 @@ skip-if = appname == 'fennec'
|
||||
[test_wait.py]
|
||||
[test_expected.py]
|
||||
[test_date_time_value.py]
|
||||
[test_getactiveframe_oop.py]
|
||||
skip-if = true # Bug 925688
|
||||
[test_screen_orientation.py]
|
||||
[test_errors.py]
|
||||
|
||||
|
@ -82,19 +82,6 @@ class LocationBar(UIBaseLib):
|
||||
self._autocomplete_results = None
|
||||
self._identity_popup = None
|
||||
|
||||
@property
|
||||
def autocomplete_results(self):
|
||||
"""Provides access to and methods for the location bar
|
||||
autocomplete results.
|
||||
|
||||
See the :class:`AutocompleteResults` reference."""
|
||||
if not self._autocomplete_results:
|
||||
popup = self.marionette.find_element(By.ID, 'PopupAutoCompleteRichResult')
|
||||
self._autocomplete_results = AutocompleteResults(self.marionette,
|
||||
self.window, popup)
|
||||
|
||||
return self._autocomplete_results
|
||||
|
||||
def clear(self):
|
||||
"""Clears the contents of the url bar (via the DELETE shortcut)."""
|
||||
self.focus('shortcut')
|
||||
|
@ -13,8 +13,8 @@ class MessageSender {
|
||||
this.listeners[name] = listener;
|
||||
}
|
||||
|
||||
sendAsyncMessage(name, data, objects) {
|
||||
this.sent.push({ name, data, objects });
|
||||
sendAsyncMessage(name, data) {
|
||||
this.sent.push({ name, data });
|
||||
}
|
||||
}
|
||||
|
||||
@ -63,7 +63,6 @@ add_test(function test_addEventListener() {
|
||||
deepEqual(ipc.sent[0], {
|
||||
name: "Marionette:DOM:AddEventListener",
|
||||
data: { type: "click" },
|
||||
objects: undefined,
|
||||
});
|
||||
|
||||
run_next_test();
|
||||
@ -93,7 +92,6 @@ add_test(function test_WebElementEventTarget_addEventListener_once() {
|
||||
deepEqual(ipc.sent[1], {
|
||||
name: "Marionette:DOM:RemoveEventListener",
|
||||
data: { type: "click" },
|
||||
objects: undefined,
|
||||
});
|
||||
|
||||
run_next_test();
|
||||
@ -132,7 +130,6 @@ add_test(function test_WebElementEventTarget_removeEventListener() {
|
||||
deepEqual(ipc.sent[ipc.sent.length - 1], {
|
||||
name: "Marionette:DOM:RemoveEventListener",
|
||||
data: { type: "click" },
|
||||
objects: undefined,
|
||||
});
|
||||
|
||||
run_next_test();
|
||||
@ -272,7 +269,6 @@ add_test(function test_ContentEventObserverService_handleEvent() {
|
||||
deepEqual(ipc.sent[0], {
|
||||
name: "Marionette:DOM:OnEvent",
|
||||
data: { type: "click" },
|
||||
objects: { target: win },
|
||||
});
|
||||
|
||||
run_next_test();
|
||||
|
@ -75,10 +75,6 @@ let registrar = Components.manager.QueryInterface(Ci.nsIComponentRegistrar);
|
||||
let selectorFactory = XPCOMUtils._getFactory(NewProcessSelector);
|
||||
registrar.registerFactory(OUR_PROCESSSELECTOR_CID, "", null, selectorFactory);
|
||||
|
||||
// For now, we'll allow tests to use CPOWs in this module for
|
||||
// some cases.
|
||||
Cu.permitCPOWsInScope(this);
|
||||
|
||||
var gSendCharCount = 0;
|
||||
var gSynthesizeKeyCount = 0;
|
||||
var gSynthesizeCompositionCount = 0;
|
||||
|
@ -110,7 +110,6 @@
|
||||
function browserTest(aTestFile) {
|
||||
this.path = aTestFile['url'];
|
||||
this.expected = aTestFile['expected'];
|
||||
this.usesUnsafeCPOWs = aTestFile['uses-unsafe-cpows'] || false;
|
||||
this.dumper = gDumper;
|
||||
this.results = [];
|
||||
this.scope = null;
|
||||
|
@ -439,22 +439,6 @@ function Tester(aTests, structuredLogger, aCallback) {
|
||||
this.EventUtils
|
||||
);
|
||||
|
||||
// In order to allow existing tests to continue using unsafe CPOWs
|
||||
// with EventUtils, we need to load a separate copy into a sandbox
|
||||
// which has unsafe CPOW usage whitelisted. We need to create a new
|
||||
// compartment for Cu.permitCPOWsInScope.
|
||||
this.cpowSandbox = Cu.Sandbox(window, {
|
||||
freshCompartment: true,
|
||||
sandboxPrototype: window,
|
||||
});
|
||||
Cu.permitCPOWsInScope(this.cpowSandbox);
|
||||
|
||||
this.cpowEventUtils = new this.cpowSandbox.Object();
|
||||
this._scriptLoader.loadSubScript(
|
||||
"chrome://mochikit/content/tests/SimpleTest/EventUtils.js",
|
||||
this.cpowEventUtils
|
||||
);
|
||||
|
||||
var simpleTestScope = {};
|
||||
this._scriptLoader.loadSubScript(
|
||||
"chrome://mochikit/content/tests/SimpleTest/specialpowersAPI.js",
|
||||
@ -1235,9 +1219,7 @@ Tester.prototype = {
|
||||
|
||||
// Import utils in the test scope.
|
||||
let { scope } = this.currentTest;
|
||||
scope.EventUtils = this.currentTest.usesUnsafeCPOWs
|
||||
? this.cpowEventUtils
|
||||
: this.EventUtils;
|
||||
scope.EventUtils = this.EventUtils;
|
||||
scope.SimpleTest = this.SimpleTest;
|
||||
scope.gTestPath = this.currentTest.path;
|
||||
scope.ContentTask = this.ContentTask;
|
||||
@ -1747,17 +1729,6 @@ function testScope(aTester, aTest, expected) {
|
||||
});
|
||||
};
|
||||
|
||||
// If we're running a test that requires unsafe CPOWs, create a
|
||||
// separate sandbox scope, with CPOWS whitelisted, for that test, and
|
||||
// mirror all of our properties onto it. Test files will be loaded
|
||||
// into this sandbox.
|
||||
//
|
||||
// Otherwise, load test files directly into the testScope instance.
|
||||
if (aTest.usesUnsafeCPOWs) {
|
||||
let sandbox = this._createSandbox();
|
||||
Cu.permitCPOWsInScope(sandbox);
|
||||
return sandbox;
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
@ -1786,35 +1757,6 @@ testScope.prototype = {
|
||||
ExtensionTestUtils: null,
|
||||
Assert: null,
|
||||
|
||||
_createSandbox() {
|
||||
// Force this sandbox to be in its own compartment because we call
|
||||
// Cu.permitCPOWsInScope on it and we can't call that on objects in the
|
||||
// shared system compartment.
|
||||
let sandbox = Cu.Sandbox(window, {
|
||||
freshCompartment: true,
|
||||
sandboxPrototype: window,
|
||||
});
|
||||
|
||||
for (let prop in this) {
|
||||
if (typeof this[prop] == "function") {
|
||||
sandbox[prop] = this[prop].bind(this);
|
||||
} else {
|
||||
Object.defineProperty(sandbox, prop, {
|
||||
configurable: true,
|
||||
enumerable: true,
|
||||
get: () => {
|
||||
return this[prop];
|
||||
},
|
||||
set: value => {
|
||||
this[prop] = value;
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return sandbox;
|
||||
},
|
||||
|
||||
/**
|
||||
* Add a function which returns a promise (usually an async function)
|
||||
* as a test task.
|
||||
|
@ -28,7 +28,6 @@ function parseTestManifest(testManifest, params, callback) {
|
||||
test: {
|
||||
url: name,
|
||||
expected: obj.expected,
|
||||
"uses-unsafe-cpows": obj["uses-unsafe-cpows"],
|
||||
},
|
||||
};
|
||||
} else {
|
||||
@ -37,7 +36,6 @@ function parseTestManifest(testManifest, params, callback) {
|
||||
test: {
|
||||
url: name,
|
||||
expected: obj.expected,
|
||||
"uses-unsafe-cpows": obj["uses-unsafe-cpows"],
|
||||
},
|
||||
});
|
||||
}
|
||||
|
@ -164,7 +164,6 @@ class JUnitTestRunner(MochitestDesktop):
|
||||
env["MOZ_CRASHREPORTER_NO_REPORT"] = "1"
|
||||
env["MOZ_CRASHREPORTER_SHUTDOWN"] = "1"
|
||||
env["XPCOM_DEBUG_BREAK"] = "stack"
|
||||
env["DISABLE_UNSAFE_CPOW_WARNINGS"] = "1"
|
||||
env["MOZ_DISABLE_NONLOCAL_CONNECTIONS"] = "1"
|
||||
env["MOZ_IN_AUTOMATION"] = "1"
|
||||
env["R_LOG_VERBOSE"] = "1"
|
||||
|
@ -1511,8 +1511,6 @@ toolbar#nav-bar {
|
||||
testob['disabled'] = test['disabled']
|
||||
if 'expected' in test:
|
||||
testob['expected'] = test['expected']
|
||||
if 'uses-unsafe-cpows' in test:
|
||||
testob['uses-unsafe-cpows'] = test['uses-unsafe-cpows'] == 'true'
|
||||
if 'scheme' in test:
|
||||
testob['scheme'] = test['scheme']
|
||||
if options.failure_pattern_file:
|
||||
@ -1696,11 +1694,6 @@ toolbar#nav-bar {
|
||||
if self.mozLogs:
|
||||
browserEnv["MOZ_LOG"] = MOZ_LOG
|
||||
|
||||
# For e10s, our tests default to suppressing the "unsafe CPOW usage"
|
||||
# warnings that can plague test logs.
|
||||
if not options.enableCPOWWarnings:
|
||||
browserEnv["DISABLE_UNSAFE_CPOW_WARNINGS"] = "1"
|
||||
|
||||
if options.enable_webrender:
|
||||
browserEnv["MOZ_WEBRENDER"] = "1"
|
||||
browserEnv["MOZ_ACCELERATED"] = "1"
|
||||
|
@ -931,6 +931,16 @@ SimpleTest.waitForFocus = function (callback, targetWindow, expectBlankPage) {
|
||||
* @param aExpectedStringOrValidatorFn
|
||||
* The string value that is expected to be on the clipboard or a
|
||||
* validator function getting expected clipboard data and returning a bool.
|
||||
* If you specify string value, line breakers in clipboard are treated
|
||||
* as LineFeed. Therefore, you cannot include CarriageReturn to the
|
||||
* string.
|
||||
* If you specify string value and expect "text/html" data, this wraps
|
||||
* the expected value with "<html><body>\n<!--StartFragment-->" and
|
||||
* "<!--EndFragment-->\n</body>\n</html>" only when it runs on Windows
|
||||
* because they are appended only by nsDataObj.cpp for Windows.
|
||||
* https://searchfox.org/mozilla-central/rev/8f7b017a31326515cb467e69eef1f6c965b4f00e/widget/windows/nsDataObj.cpp#1798-1805,1839-1840,1842
|
||||
* Therefore, you can specify selected (copied) HTML data simply on any
|
||||
* platforms.
|
||||
* @param aSetupFn
|
||||
* A function responsible for setting the clipboard to the expected value,
|
||||
* called after the known value setting succeeds.
|
||||
@ -979,9 +989,23 @@ SimpleTest.promiseClipboardChange = async function(aExpectedStringOrValidatorFn,
|
||||
};
|
||||
} else {
|
||||
// Build a default validator function for common string input.
|
||||
inputValidatorFn = typeof(aExpectedStringOrValidatorFn) == "string"
|
||||
? function(aData) { return aData == aExpectedStringOrValidatorFn; }
|
||||
: aExpectedStringOrValidatorFn;
|
||||
if (typeof(aExpectedStringOrValidatorFn) == "string") {
|
||||
if (aExpectedStringOrValidatorFn.includes("\r")) {
|
||||
throw new Error("Use function instead of string to compare raw line breakers in clipboard");
|
||||
}
|
||||
if (requestedFlavor === "text/html" && navigator.platform.includes("Win")) {
|
||||
inputValidatorFn = function(aData) {
|
||||
return aData.replace(/\r\n?/g, "\n") ===
|
||||
`<html><body>\n<!--StartFragment-->${aExpectedStringOrValidatorFn}<!--EndFragment-->\n</body>\n</html>`;
|
||||
};
|
||||
} else {
|
||||
inputValidatorFn = function(aData) {
|
||||
return aData.replace(/\r\n?/g, "\n") === aExpectedStringOrValidatorFn;
|
||||
};
|
||||
}
|
||||
} else {
|
||||
inputValidatorFn = aExpectedStringOrValidatorFn;
|
||||
}
|
||||
}
|
||||
|
||||
let maxPolls = aTimeout ? aTimeout / 100 : 50;
|
||||
|
@ -8,13 +8,16 @@
|
||||
|
||||
from __future__ import absolute_import, print_function
|
||||
|
||||
from six.moves import urllib
|
||||
from contextlib import contextmanager
|
||||
import errno
|
||||
import os
|
||||
import stat
|
||||
import sys
|
||||
import time
|
||||
import warnings
|
||||
from contextlib import contextmanager
|
||||
|
||||
from six.moves import urllib
|
||||
|
||||
|
||||
__all__ = ['extract_tarball',
|
||||
'extract_zip',
|
||||
@ -25,6 +28,7 @@ __all__ = ['extract_tarball',
|
||||
'remove',
|
||||
'rmtree',
|
||||
'tree',
|
||||
'which',
|
||||
'NamedTemporaryFile',
|
||||
'TemporaryDirectory']
|
||||
|
||||
@ -310,6 +314,55 @@ def tree(directory, sort_key=lambda x: x.lower()):
|
||||
return '\n'.join(retval)
|
||||
|
||||
|
||||
def which(cmd, mode=os.F_OK | os.X_OK, path=None, exts=None):
|
||||
"""A wrapper around `shutil.which` to make the behavior on Windows
|
||||
consistent with other platforms.
|
||||
|
||||
On non-Windows platforms, this is a direct call to `shutil.which`. On
|
||||
Windows, this:
|
||||
|
||||
* Ensures that `cmd` without an extension will be found. Previously it was
|
||||
only found if it had an extension in `PATHEXT`.
|
||||
* Ensures the absolute path to the binary is returned. Previously if the
|
||||
binary was found in `cwd`, a relative path was returned.
|
||||
|
||||
The arguments are the same as the ones in `shutil.which`. In addition there
|
||||
is an `exts` argument that only has an effect on Windows. This is used to
|
||||
set a custom value for PATHEXT and is formatted as a list of file
|
||||
extensions.
|
||||
"""
|
||||
try:
|
||||
from shutil import which as shutil_which
|
||||
except ImportError:
|
||||
from shutil_which import which as shutil_which
|
||||
|
||||
if isinstance(path, (list, tuple)):
|
||||
path = os.pathsep.join(path)
|
||||
|
||||
if sys.platform != "win32":
|
||||
return shutil_which(cmd, mode=mode, path=path)
|
||||
|
||||
oldexts = os.environ.get("PATHEXT", "")
|
||||
if not exts:
|
||||
exts = oldexts.split(os.pathsep)
|
||||
|
||||
# This ensures that `cmd` without any extensions will be found.
|
||||
# See: https://bugs.python.org/issue31405
|
||||
if "." not in exts:
|
||||
exts.append(".")
|
||||
|
||||
os.environ["PATHEXT"] = os.pathsep.join(exts)
|
||||
try:
|
||||
path = shutil_which(cmd, mode=mode, path=path)
|
||||
return os.path.abspath(path.rstrip('.')) if path else None
|
||||
|
||||
finally:
|
||||
if oldexts:
|
||||
os.environ["PATHEXT"] = oldexts
|
||||
else:
|
||||
del os.environ["PATHEXT"]
|
||||
|
||||
|
||||
# utilities for temporary resources
|
||||
|
||||
class NamedTemporaryFile(object):
|
||||
|
0
testing/mozbase/mozfile/tests/files/which/baz
Normal file
0
testing/mozbase/mozfile/tests/files/which/baz
Normal file
0
testing/mozbase/mozfile/tests/files/which/baz.exe
Normal file
0
testing/mozbase/mozfile/tests/files/which/baz.exe
Normal file
0
testing/mozbase/mozfile/tests/files/which/unix/file
Normal file
0
testing/mozbase/mozfile/tests/files/which/unix/file
Normal file
0
testing/mozbase/mozfile/tests/files/which/unix/foo
Normal file
0
testing/mozbase/mozfile/tests/files/which/unix/foo
Normal file
0
testing/mozbase/mozfile/tests/files/which/win/bar
Normal file
0
testing/mozbase/mozfile/tests/files/which/win/bar
Normal file
0
testing/mozbase/mozfile/tests/files/which/win/foo
Normal file
0
testing/mozbase/mozfile/tests/files/which/win/foo
Normal file
@ -7,3 +7,4 @@ subsuite = mozbase
|
||||
[test_tempfile.py]
|
||||
[test_tree.py]
|
||||
[test_url.py]
|
||||
[test_which.py]
|
||||
|
44
testing/mozbase/mozfile/tests/test_which.py
Normal file
44
testing/mozbase/mozfile/tests/test_which.py
Normal file
@ -0,0 +1,44 @@
|
||||
# Any copyright is dedicated to the Public Domain.
|
||||
# https://creativecommons.org/publicdomain/zero/1.0/
|
||||
|
||||
from __future__ import absolute_import
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
import mozunit
|
||||
|
||||
from mozfile import which
|
||||
|
||||
here = os.path.abspath(os.path.dirname(__file__))
|
||||
|
||||
|
||||
def test_which(monkeypatch):
|
||||
cwd = os.path.join(here, 'files', 'which')
|
||||
monkeypatch.chdir(cwd)
|
||||
|
||||
if sys.platform == "win32":
|
||||
bindir = os.path.join(cwd, "win")
|
||||
monkeypatch.setenv("PATH", bindir)
|
||||
|
||||
assert which("foo.exe").lower() == os.path.join(bindir, "foo.exe")
|
||||
assert which("foo").lower() == os.path.join(bindir, "foo.exe")
|
||||
assert which("foo", exts=[".FOO", ".BAR"]).lower() == os.path.join(bindir, "foo")
|
||||
assert os.environ.get("PATHEXT") != [".FOO", ".BAR"]
|
||||
assert which("foo.txt") is None
|
||||
|
||||
assert which("bar").lower() == os.path.join(bindir, "bar")
|
||||
assert which("baz").lower() == os.path.join(cwd, "baz.exe")
|
||||
|
||||
else:
|
||||
bindir = os.path.join(cwd, "unix")
|
||||
monkeypatch.setenv("PATH", bindir)
|
||||
assert which("foo") == os.path.join(bindir, "foo")
|
||||
assert which("baz") is None
|
||||
assert which("baz", exts=[".EXE"]) is None
|
||||
assert "PATHEXT" not in os.environ
|
||||
assert which("file") is None
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
mozunit.main()
|
@ -127,7 +127,7 @@ def process_leak_log(leak_log_file, leak_thresholds=None,
|
||||
The base of leak_log_file for a non-default process needs to end with
|
||||
_proctype_pid12345.log
|
||||
"proctype" is a string denoting the type of the process, which should
|
||||
be the result of calling XRE_ChildProcessTypeToString(). 12345 is
|
||||
be the result of calling XRE_GeckoProcessTypeToString(). 12345 is
|
||||
a series of digits that is the pid for the process. The .log is
|
||||
optional.
|
||||
|
||||
|
@ -96,6 +96,9 @@ user_pref("ui.caretBlinkTime", -1);
|
||||
user_pref("ui.caretWidth", 1);
|
||||
user_pref("ui.prefersReducedMotion", 0);
|
||||
user_pref("ui.systemUsesDarkTheme", 0);
|
||||
user_pref("ui.useAccessibilityTheme", 0);
|
||||
user_pref("ui.windowForeground", "");
|
||||
user_pref("ui.windowBackground", "");
|
||||
// Turn off the Push service.
|
||||
user_pref("dom.push.serverURL", "");
|
||||
// Disable intermittent telemetry collection
|
||||
|
@ -40,6 +40,9 @@ user_pref("dom.animations-api.implicit-keyframes.enabled", true);
|
||||
// sometime wpt runs test even before the document becomes visible, which would
|
||||
// delay video.play() and cause play() running in wrong order.
|
||||
user_pref("media.block-autoplay-until-in-foreground", false);
|
||||
// Disable dark scrollbars as it can be semi-transparent that many reftests
|
||||
// don't expect.
|
||||
user_pref("widget.disable-dark-scrollbar", true);
|
||||
user_pref("media.block-autoplay-until-in-foreground", false);
|
||||
// Enable AppCache globally for now whilst it's being removed in Bug 1584984
|
||||
user_pref("browser.cache.offline.storage.enable", true);
|
||||
|
@ -17,7 +17,10 @@ const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
|
||||
|
||||
// Allow stuff from this scope to be accessed from non-privileged scopes. This
|
||||
// would crash if used outside of automation.
|
||||
Cu.forcePermissiveCOWs();
|
||||
/* globals __URI__ */
|
||||
if (__URI__.includes("specialpowers")) {
|
||||
Cu.forcePermissiveCOWs();
|
||||
}
|
||||
|
||||
var registrar = Cm.QueryInterface(Ci.nsIComponentRegistrar);
|
||||
var oldClassID;
|
||||
|
@ -2097,13 +2097,6 @@ SpecialPowersAPI.prototype = {
|
||||
return debugsvc.assertionCount;
|
||||
},
|
||||
|
||||
/**
|
||||
* Get the message manager associated with an <iframe mozbrowser>.
|
||||
*/
|
||||
getBrowserFrameMessageManager(aFrameElement) {
|
||||
return this.wrap(aFrameElement.frameLoader.messageManager);
|
||||
},
|
||||
|
||||
_getPrincipalFromArg(arg) {
|
||||
let principal;
|
||||
let secMan = Services.scriptSecurityManager;
|
||||
|
@ -260,12 +260,6 @@
|
||||
"minbytes": 8192,
|
||||
"maxbytes": 8192
|
||||
},
|
||||
"{firefox}\\gmp-clearkey\\0.1\\manifest.json": {
|
||||
"mincount": 2,
|
||||
"maxcount": 2,
|
||||
"minbytes": 512,
|
||||
"maxbytes": 512
|
||||
},
|
||||
"{firefox}\\omni.ja": {
|
||||
"mincount": 0,
|
||||
"maxcount": 46,
|
||||
|
@ -1,5 +1,3 @@
|
||||
[background-attachment-applies-to-001.xht]
|
||||
expected:
|
||||
if os == "android" and not e10s: FAIL
|
||||
fuzzy:
|
||||
if webrender and (os == "win"): maxDifference=92;totalPixels=1900
|
||||
|
@ -1,5 +1,3 @@
|
||||
[background-attachment-applies-to-002.xht]
|
||||
expected:
|
||||
if os == "android" and not e10s: FAIL
|
||||
fuzzy:
|
||||
if webrender and (os == "win"): maxDifference=92;totalPixels=1900
|
||||
|
@ -1,5 +1,3 @@
|
||||
[background-attachment-applies-to-003.xht]
|
||||
expected:
|
||||
if os == "android" and not e10s: FAIL
|
||||
fuzzy:
|
||||
if webrender and (os == "win"): maxDifference=92;totalPixels=1900
|
||||
|
@ -1,5 +1,3 @@
|
||||
[background-attachment-applies-to-004.xht]
|
||||
expected:
|
||||
if os == "android" and not e10s: FAIL
|
||||
fuzzy:
|
||||
if webrender and (os == "win"): maxDifference=92;totalPixels=1900
|
||||
|
@ -1,5 +1,3 @@
|
||||
[background-attachment-applies-to-005.xht]
|
||||
expected:
|
||||
if os == "android" and not e10s: FAIL
|
||||
fuzzy:
|
||||
if webrender and (os == "win"): maxDifference=92;totalPixels=1900
|
||||
|
@ -1,5 +1,3 @@
|
||||
[background-attachment-applies-to-006.xht]
|
||||
expected:
|
||||
if os == "android" and not e10s: FAIL
|
||||
fuzzy:
|
||||
if webrender and (os == "win"): maxDifference=92;totalPixels=1900
|
||||
|
@ -1,5 +1,3 @@
|
||||
[background-attachment-applies-to-007.xht]
|
||||
expected:
|
||||
if os == "android" and not e10s: FAIL
|
||||
fuzzy:
|
||||
if webrender and (os == "win"): maxDifference=92;totalPixels=1900
|
||||
|
@ -1,5 +1,3 @@
|
||||
[background-attachment-applies-to-009.xht]
|
||||
expected:
|
||||
if os == "android" and not e10s: FAIL
|
||||
fuzzy:
|
||||
if webrender and (os == "win"): maxDifference=92;totalPixels=1900
|
||||
|
@ -1,5 +1,3 @@
|
||||
[background-attachment-applies-to-012.xht]
|
||||
expected:
|
||||
if os == "android" and not e10s: FAIL
|
||||
fuzzy:
|
||||
if webrender and (os == "win"): maxDifference=92;totalPixels=1900
|
||||
|
@ -1,5 +1,3 @@
|
||||
[background-attachment-applies-to-013.xht]
|
||||
expected:
|
||||
if os == "android" and not e10s: FAIL
|
||||
fuzzy:
|
||||
if webrender and (os == "win"): maxDifference=92;totalPixels=1900
|
||||
|
@ -1,5 +1,3 @@
|
||||
[background-attachment-applies-to-014.xht]
|
||||
expected:
|
||||
if os == "android" and not e10s: FAIL
|
||||
fuzzy:
|
||||
if webrender and (os == "win"): maxDifference=92;totalPixels=1900
|
||||
|
@ -1,5 +1,3 @@
|
||||
[background-attachment-applies-to-015.xht]
|
||||
expected:
|
||||
if os == "android" and not e10s: FAIL
|
||||
fuzzy:
|
||||
if webrender and (os == "win"): maxDifference=92;totalPixels=1900
|
||||
|
@ -2,5 +2,3 @@
|
||||
expected:
|
||||
if (os == "android") and not e10s: FAIL
|
||||
if (os == "android") and e10s: PASS
|
||||
fuzzy:
|
||||
if webrender and (os == "win"): maxDifference=92;totalPixels=3796
|
||||
|
@ -15,4 +15,3 @@
|
||||
if not debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): PASS
|
||||
if not debug and webrender and e10s and (os == "win") and (version == "10.0.17134") and (processor == "x86_64") and (bits == 64): PASS
|
||||
if (os == "mac") and (version == "OS X 10.14") and (processor == "x86_64") and (bits == 64): PASS
|
||||
if (os == "win") and (processor == "aarch64"): PASS
|
||||
|
@ -1,4 +0,0 @@
|
||||
[blocks-026.xht]
|
||||
expected:
|
||||
if (os == "android") and not e10s: FAIL
|
||||
if (os == "android") and e10s: FAIL
|
@ -15,4 +15,3 @@
|
||||
if not debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): PASS
|
||||
if not debug and webrender and e10s and (os == "win") and (version == "10.0.17134") and (processor == "x86_64") and (bits == 64): PASS
|
||||
if (os == "mac") and (version == "OS X 10.14") and (processor == "x86_64") and (bits == 64): PASS
|
||||
if (os == "win") and (processor == "aarch64"): PASS
|
||||
|
@ -1 +1 @@
|
||||
prefs: [dom.animations-api.compositing.enabled:true,layout.css.comparison-functions.enabled:true]
|
||||
prefs: [dom.animations-api.compositing.enabled:true]
|
||||
|
@ -1,3 +0,0 @@
|
||||
[form-control.html]
|
||||
expected:
|
||||
if os == "android": FAIL # Bug 1550895
|
@ -0,0 +1,4 @@
|
||||
[contain-paint-025.html]
|
||||
fuzzy:
|
||||
if os == "win": maxDifference=40-47;totalPixels=2
|
||||
if os == "mac": maxDifference=13;totalPixels=2
|
@ -1,2 +0,0 @@
|
||||
[scrollbar-width-keywords.html]
|
||||
prefs: [layout.css.scrollbar-width.enabled:true]
|
@ -1,9 +1,8 @@
|
||||
[textarea-scrollbar-width-none.html]
|
||||
prefs: [layout.css.scrollbar-width.enabled:true]
|
||||
expected:
|
||||
if (os == "win") and (processor == "aarch64"): PASS
|
||||
if (os == "win") and (version == "6.1.7601"): FAIL
|
||||
if not webrender and (os == "win") and (version == "10.0.17134"): FAIL
|
||||
if os == "mac": FAIL
|
||||
if (os == "android") and not e10s: FAIL
|
||||
if (os == "android") and e10s: PASS
|
||||
if (os == "android") and e10s: FAIL
|
||||
|
@ -1,2 +0,0 @@
|
||||
[viewport-scrollbar-body.html]
|
||||
prefs: [layout.css.scrollbar-color.enabled:true]
|
@ -1,2 +0,0 @@
|
||||
[viewport-scrollbar.html]
|
||||
prefs: [layout.css.scrollbar-color.enabled:true]
|
@ -1,4 +0,0 @@
|
||||
[transform-input-015.html]
|
||||
expected:
|
||||
if (os == "android") and not e10s: FAIL
|
||||
if (os == "android") and e10s: FAIL
|
@ -1,4 +0,0 @@
|
||||
[transform-input-017.html]
|
||||
expected:
|
||||
if (os == "android") and not e10s: FAIL
|
||||
if (os == "android") and e10s: FAIL
|
@ -1,4 +0,0 @@
|
||||
[transform-input-018.html]
|
||||
expected:
|
||||
if (os == "android") and not e10s: FAIL
|
||||
if (os == "android") and e10s: FAIL
|
@ -1,7 +1,4 @@
|
||||
[outline-width-interpolation.html]
|
||||
[outline-width interpolation]
|
||||
expected: FAIL
|
||||
|
||||
[Web Animations: property <outline-width> from [unset\] to [20px\] at (1.5) should be [28px\]]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -1,3 +1,3 @@
|
||||
[appearance-auto-001.html]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
||||
|
@ -0,0 +1,3 @@
|
||||
[appearance-button-001.html]
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
@ -0,0 +1,5 @@
|
||||
[appearance-button-002.tentative.html]
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
||||
expected:
|
||||
if headless: FAIL
|
@ -1,5 +0,0 @@
|
||||
[appearance-button-bevel-001.html]
|
||||
expected:
|
||||
if (os == "win") and debug and (processor == "x86_64"): FAIL
|
||||
if (os == "win") and not debug: FAIL
|
||||
if os == "win": FAIL
|
@ -1,3 +1,3 @@
|
||||
[appearance-checkbox-001.html]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,3 +1,3 @@
|
||||
[appearance-listbox-001.html]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
||||
|
@ -1,3 +1,3 @@
|
||||
[appearance-menulist-001.html]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
||||
|
@ -1,5 +1,3 @@
|
||||
[appearance-menulist-button-001.html]
|
||||
expected:
|
||||
if (os == "win") and debug and (processor == "x86_64"): FAIL
|
||||
if (os == "win") and not debug: FAIL
|
||||
if os == "win": FAIL
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
||||
|
@ -1,4 +0,0 @@
|
||||
[appearance-menulist-button-002.html]
|
||||
expected:
|
||||
if os == "win": PASS
|
||||
FAIL
|
@ -0,0 +1,4 @@
|
||||
[appearance-menulist-button-002.tentative.html]
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
||||
expected: FAIL
|
@ -1,3 +1,3 @@
|
||||
[appearance-meter-001.html]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
||||
|
@ -1,3 +1,3 @@
|
||||
[appearance-progress-bar-001.html]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
||||
|
@ -0,0 +1,3 @@
|
||||
[appearance-progress-bar-002.html]
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
@ -1,3 +1,4 @@
|
||||
[appearance-push-button-001.html]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
||||
expected: FAIL
|
||||
|
@ -1,5 +1,3 @@
|
||||
[appearance-radio-001.html]
|
||||
expected:
|
||||
if (os == "win") and debug and (processor == "x86_64"): FAIL
|
||||
if (os == "win") and not debug: FAIL
|
||||
if os == "win": FAIL
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
||||
|
@ -0,0 +1,3 @@
|
||||
[appearance-revert-001.tentative.html]
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
@ -1,5 +1,3 @@
|
||||
[appearance-searchfield-001.html]
|
||||
expected:
|
||||
if (os == "win") and debug and (processor == "x86_64"): FAIL
|
||||
if (os == "win") and not debug: FAIL
|
||||
if os == "win": FAIL
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
||||
|
@ -1,5 +1,4 @@
|
||||
[appearance-slider-horizontal-001.html]
|
||||
expected:
|
||||
if (os == "win") and debug and (processor == "x86_64"): FAIL
|
||||
if (os == "win") and not debug: FAIL
|
||||
if os == "win": FAIL
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
||||
expected: FAIL
|
||||
|
@ -1,5 +1,4 @@
|
||||
[appearance-square-button-001.html]
|
||||
expected:
|
||||
if (os == "win") and debug and (processor == "x86_64"): FAIL
|
||||
if (os == "win") and not debug: FAIL
|
||||
if os == "win": FAIL
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
||||
expected: FAIL
|
||||
|
@ -1,5 +1,3 @@
|
||||
[appearance-textarea-001.html]
|
||||
expected:
|
||||
if (os == "win") and debug and (processor == "x86_64"): FAIL
|
||||
if (os == "win") and not debug: FAIL
|
||||
if os == "win": FAIL
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
||||
|
@ -0,0 +1,3 @@
|
||||
[appearance-textfield-001.html]
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
@ -0,0 +1,5 @@
|
||||
[appearance-transition.tentative.html]
|
||||
expected:
|
||||
if not webrender and (os == "android"): FAIL
|
||||
if not webrender and (os == "win"): FAIL
|
||||
if not webrender and (os == "mac"): FAIL
|
@ -1,25 +1,13 @@
|
||||
[inheritance.html]
|
||||
[Property outline-color has initial value invert]
|
||||
expected: FAIL
|
||||
|
||||
[Property caret-color has initial value auto]
|
||||
expected: FAIL
|
||||
|
||||
[Property nav-left does not inherit]
|
||||
expected: FAIL
|
||||
|
||||
[Property nav-down has initial value auto]
|
||||
expected: FAIL
|
||||
|
||||
[Property appearance has initial value auto]
|
||||
expected: FAIL
|
||||
|
||||
[Property caret-shape has initial value auto]
|
||||
expected: FAIL
|
||||
|
||||
[Property appearance does not inherit]
|
||||
expected: FAIL
|
||||
|
||||
[Property nav-up has initial value auto]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -1,2 +1,3 @@
|
||||
[webkit-appearance-auto-001.html]
|
||||
expected: FAIL
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
||||
|
@ -0,0 +1,3 @@
|
||||
[webkit-appearance-button-001.html]
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
@ -0,0 +1,5 @@
|
||||
[webkit-appearance-button-002.tentative.html]
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
||||
expected:
|
||||
if headless: FAIL
|
@ -1,2 +0,0 @@
|
||||
[webkit-appearance-button-bevel-001.html]
|
||||
expected: FAIL
|
@ -1,2 +1,3 @@
|
||||
[webkit-appearance-checkbox-001.html]
|
||||
expected: FAIL
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
||||
|
@ -1,2 +1,3 @@
|
||||
[webkit-appearance-listbox-001.html]
|
||||
expected: FAIL
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
||||
|
@ -1,2 +1,3 @@
|
||||
[webkit-appearance-menulist-001.html]
|
||||
expected: FAIL
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
||||
|
@ -1,2 +1,3 @@
|
||||
[webkit-appearance-menulist-button-001.html]
|
||||
expected: FAIL
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
||||
|
@ -1,5 +0,0 @@
|
||||
[webkit-appearance-menulist-button-002.html]
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "android": FAIL
|
@ -0,0 +1,4 @@
|
||||
[webkit-appearance-menulist-button-002.tentative.html]
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
||||
expected: FAIL
|
@ -1,2 +1,3 @@
|
||||
[webkit-appearance-meter-001.html]
|
||||
expected: FAIL
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
||||
|
@ -1,2 +1,3 @@
|
||||
[webkit-appearance-progress-bar-001.html]
|
||||
expected: FAIL
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
||||
|
@ -1,2 +1,4 @@
|
||||
[webkit-appearance-push-button-001.html]
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
||||
expected: FAIL
|
||||
|
@ -1,2 +1,3 @@
|
||||
[webkit-appearance-radio-001.html]
|
||||
expected: FAIL
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
||||
|
@ -1,2 +1,3 @@
|
||||
[webkit-appearance-searchfield-001.html]
|
||||
expected: FAIL
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
||||
|
@ -1,2 +1,4 @@
|
||||
[webkit-appearance-slider-horizontal-001.html]
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
||||
expected: FAIL
|
||||
|
@ -1,2 +1,4 @@
|
||||
[webkit-appearance-square-button-001.html]
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1562932
|
||||
expected: FAIL
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user