Files
sousa-gecko/testing/web-platform/tests/css/css-shadow/part/interaction-with-pseudo-elements.html
T
Rune Lillesveen 08bc02fbc8 Bug 2011292 [wpt PR 57245] - Move css-shadow-parts/ tests to css-shadow/part/, a=testonly
Automatic update from web-platform-tests
Move css-shadow-parts/ tests to css-shadow/part/

The css-shadow-parts spec is now part of css-shadow. Kept a separate
directory to make it easier for the META.yml and feature mapping.

Change-Id: I9d2572ad4f31d8dd7dd1aacf76209028c6a3d84a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7485890
Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
Commit-Queue: Rune Lillesveen <futhark@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1570431}

--

wpt-commits: 680e4cf3fcabe4a6de1deb7fc36eb84d8278eedd
wpt-pr: 57245
2026-01-23 14:41:19 +00:00

87 lines
3.7 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<title>CSS Shadow Parts - Interaction with pseudo-elements</title>
<meta href="mailto:fergal@chromium.org" rel="author" title="Fergal Daly">
<link href="http://www.google.com/" rel="author" title="Google">
<link href="https://drafts.csswg.org/css-shadow/#part" rel="help">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/shadow-helper.js"></script>
</head>
<body>
<style>
#c-e::part(before-p)::before { color: green; }
#c-e::part(after-p)::after { color: green; }
#c-e::part(placeholder-p)::placeholder { color: green; }
#c-e::part(selection-p)::selection { color: green; }
#c-e::part(first-line-p)::first-line { color: green; }
#c-e::part(first-letter-p)::first-letter { color: green; }
</style>
<script>installCustomElement("custom-element", "custom-element-template");</script>
<template id="custom-element-template">
<style>
#before-i::before { content: "this text"; color: red; }
#after-i::after { content: "this text"; color: red; }
#placeholder-i::placeholder { color: red; }
#selection-i::selection { color: red; }
#first-line-i::first-line { color: red; }
#first-letter-i::first-letter { color: red; }
</style>
<div>
The following text should be green:
<span id="before-i" part="before-p"></span>
</div>
<div>
The following text should be green:
<span id="after-i" part="after-p"></span>
</div>
<div>
The following text should be green:
<input id="placeholder-i" part="placeholder-p" placeholder="this text"></input>
</div>
<div>
The selected text should be green:
<div id="selection-i" part="selection-p">select some text</div>
</div>
<div>
The following text should be green:
<div id="first-line-i" part="first-line-p">this text<br>Not this</div>
</div>
<div>
The first letter should be green:
<div id="first-letter-i" part="first-letter-p"><p>this text</p></div>
</div>
</template>
<custom-element id="c-e"></custom-element>
<script>
"use strict";
const colorGreen = "rgb(0, 128, 0)";
test(function() {
const el = getElementByShadowIds(document, ["c-e", "before-i"]);
assert_equals(window.getComputedStyle(el, '::before').color, colorGreen);
}, "::before in selected host is styled");
test(function() {
const el = getElementByShadowIds(document, ["c-e", "after-i"]);
assert_equals(window.getComputedStyle(el, '::after').color, colorGreen);
}, "::after in selected host is styled");
test(function() {
const el = getElementByShadowIds(document, ["c-e", "placeholder-i"]);
assert_equals(window.getComputedStyle(el, '::placeholder').color, colorGreen);
}, "::placeholder in selected host is styled");
test(function() {
const el = getElementByShadowIds(document, ["c-e", "selection-i"]);
assert_equals(window.getComputedStyle(el, '::selection').color, colorGreen);
}, "::selection in selected host is styled");
test(function() {
const el = getElementByShadowIds(document, ["c-e", "first-line-i"]);
assert_equals(window.getComputedStyle(el, '::first-line').color, colorGreen);
}, "::first-line in selected host is styled");
test(function() {
const el = getElementByShadowIds(document, ["c-e", "first-letter-i"]);
assert_equals(window.getComputedStyle(el, '::first-letter').color, colorGreen);
}, "::first-letter in selected host is styled");
</script>
</body>
</html>