Bug 1326189 part 5 - Add reftest for caret-color with :visited. r=dholbert
MozReview-Commit-ID: Fw1gnUQSRbq
new file mode 100644
--- /dev/null
+++ b/layout/reftests/css-visited/caret-color-on-visited-1-ref.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<style>
+@font-face {
+ font-family: Ahem;
+ src: url(Ahem.ttf);
+}
+div {
+ font: 16px/1 Ahem;
+ width: 1em;
+ background: green;
+}
+</style>
+<div><span></span></div>
+<script>
+let $div = document.querySelector('div');
+let $span = document.querySelector('span');
+window.onload = function () {
+ document.fonts.ready.then(() => {
+ $div.style.height = $span.getBoundingClientRect().height + 'px';
+ });
+};
+</script>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/css-visited/caret-color-on-visited-1.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<style>
+@font-face {
+ font-family: Ahem;
+ src: url(Ahem.ttf);
+}
+a {
+ caret-color: red;
+}
+a:visited {
+ caret-color: green;
+}
+textarea {
+ caret-color: inherit;
+ font: 16px/1 Ahem;
+ outline: none;
+ border: 0 none;
+ resize: none;
+ padding: 0;
+ margin: 0;
+}
+</style>
+<a href="visited-page.html"><textarea></textarea></a>
+<script>
+ document.querySelector('textarea').focus();
+</script>
--- a/layout/style/test/moz.build
+++ b/layout/style/test/moz.build
@@ -39,16 +39,18 @@ TEST_HARNESS_FILES.testing.mochitest.tes
TEST_HARNESS_FILES.testing.mochitest.tests.layout.style.test['css-visited'] += [
'/layout/reftests/css-visited/border-1-ref.html',
'/layout/reftests/css-visited/border-1.html',
'/layout/reftests/css-visited/border-2-ref.html',
'/layout/reftests/css-visited/border-2a.html',
'/layout/reftests/css-visited/border-2b.html',
'/layout/reftests/css-visited/border-collapse-1-ref.html',
'/layout/reftests/css-visited/border-collapse-1.html',
+ '/layout/reftests/css-visited/caret-color-on-visited-1-ref.html',
+ '/layout/reftests/css-visited/caret-color-on-visited-1.html',
'/layout/reftests/css-visited/color-choice-1-ref.html',
'/layout/reftests/css-visited/color-choice-1.html',
'/layout/reftests/css-visited/color-on-bullets-1-ref.html',
'/layout/reftests/css-visited/color-on-bullets-1.html',
'/layout/reftests/css-visited/color-on-link-1-ref.html',
'/layout/reftests/css-visited/color-on-link-1.html',
'/layout/reftests/css-visited/color-on-link-before-1.html',
'/layout/reftests/css-visited/color-on-text-decoration-1-ref.html',
@@ -100,16 +102,17 @@ TEST_HARNESS_FILES.testing.mochitest.tes
'/layout/reftests/css-visited/subject-of-selector-descendant-2-ref.xhtml',
'/layout/reftests/css-visited/subject-of-selector-descendant-2.xhtml',
'/layout/reftests/css-visited/visited-page.html',
'/layout/reftests/css-visited/white-to-transparent-1-ref.html',
'/layout/reftests/css-visited/white-to-transparent-1.html',
'/layout/reftests/css-visited/width-1-ref.html',
'/layout/reftests/css-visited/width-on-link-1.html',
'/layout/reftests/css-visited/width-on-visited-1.html',
+ '/layout/reftests/fonts/Ahem.ttf',
'/layout/reftests/svg/as-image/lime100x100.svg',
'/layout/reftests/svg/as-image/svg-image-visited-1-helper.svg',
'/layout/reftests/svg/as-image/svg-image-visited-2-helper.svg',
'/layout/reftests/svg/pseudo-classes-02-ref.svg',
'/layout/reftests/svg/pseudo-classes-02.svg',
]
DEFINES['MOZILLA_INTERNAL_API'] = True
--- a/layout/style/test/test_visited_reftests.html
+++ b/layout/style/test/test_visited_reftests.html
@@ -27,16 +27,17 @@ var gTests = [
// there's also an implicit "load visited-page.html" at the start,
// thanks to the code below.
// IMPORTANT NOTE: For these tests, the test and reference are not
// snapshotted in the same way. The REFERENCE (second file) is
// assumed to be complete when loaded, but we poll for visited link
// coloring on the TEST (first file) until the test passes.
"== pseudo-classes-02.svg pseudo-classes-02-ref.svg",
+ "needs-focus == caret-color-on-visited-1.html caret-color-on-visited-1-ref.html",
"!= color-on-link-1-ref.html color-on-visited-1-ref.html",
"== color-on-link-1.html color-on-link-1-ref.html",
"== color-on-link-before-1.html color-on-link-1-ref.html",
"== color-on-visited-1.html color-on-visited-1-ref.html",
"== color-on-visited-before-1.html color-on-visited-1-ref.html",
"!= content-color-on-link-before-1-ref.html content-color-on-visited-before-1-ref.html",
"== content-color-on-link-before-1.html content-color-on-link-before-1-ref.html",
"== content-color-on-visited-before-1.html content-color-on-visited-before-1-ref.html",
@@ -93,17 +94,19 @@ var gTests = [
// making a test failure just show up as a timeout.
var gMaxPassingTries = 10;
var gTimeoutFactor = 10;
function startIframe(url) {
return new Promise(resolve => {
var element = document.createElement("iframe");
element.addEventListener("load", () => {
- resolve(element.contentWindow);
+ element.contentDocument.fonts.ready.then(() => {
+ resolve(element.contentWindow);
+ });
}, {once: true});
// smaller than normal reftests, but enough for these
element.setAttribute("style", "width: 30em; height: 10em");
element.src = "css-visited/" + url;
document.body.appendChild(element);
});
}