Update web-platform-tests to revision b'4d1dc1971a0688048c804261711c639fe96ee187'

This commit is contained in:
WPT Sync Bot 2023-06-04 01:56:00 +00:00
parent f26d17096d
commit e01fdde3cc
232 changed files with 3953 additions and 1188 deletions

View file

@ -1,16 +1,4 @@
[inline-negative-margin-001.html]
[[data-expected-height\] 3]
expected: FAIL
[[data-expected-height\] 4]
expected: FAIL
[[data-expected-height\] 5]
expected: FAIL
[[data-expected-height\] 6]
expected: FAIL
[[data-expected-height\] 7]
expected: FAIL

View file

@ -7,6 +7,3 @@
[img 3]
expected: FAIL
[img 4]
expected: FAIL

View file

@ -0,0 +1,12 @@
[overlay-user-agent-rules.html]
[HTML elements should have overlay:none !important from the user-agent.]
expected: FAIL
[SVG elements should have overlay:none !important from the user-agent.]
expected: FAIL
[Null namespace elements should have overlay:none !important from the user-agent.]
expected: FAIL
[Arbitrary namespace elements should have overlay:none !important from the user-agent.]
expected: FAIL

File diff suppressed because it is too large Load diff

View file

@ -1,13 +1,3 @@
[basic.htm]
[Same domain basic usage]
expected: FAIL
[Cross domain basic usage, origin: echo]
expected: FAIL
[Cross domain different port, origin: echo]
expected: FAIL
[Cross domain different protocol, origin: echo]
expected: FAIL

View file

@ -0,0 +1,12 @@
[overlay-user-agent-rules.html]
[HTML elements should have overlay:none !important from the user-agent.]
expected: FAIL
[SVG elements should have overlay:none !important from the user-agent.]
expected: FAIL
[Null namespace elements should have overlay:none !important from the user-agent.]
expected: FAIL
[Arbitrary namespace elements should have overlay:none !important from the user-agent.]
expected: FAIL

View file

@ -1,4 +1,3 @@
[keepalive.any.html]
expected: TIMEOUT
[keepalive in onunload in nested frame in another window]
expected: FAIL

View file

@ -1,5 +1,4 @@
[redirect-keepalive.any.html]
expected: TIMEOUT
[[keepalive\][new window\][unload\] same-origin redirect]
expected: FAIL

View file

@ -1,5 +1,4 @@
[iframe.tentative.https.window.html]
expected: TIMEOUT
[private to local: failed preflight.]
expected: FAIL
@ -31,7 +30,7 @@
expected: FAIL
[public to local, grandparent navigates: failure.]
expected: TIMEOUT
expected: FAIL
[public to local, grandparent navigates: success.]
expected: TIMEOUT
expected: FAIL

View file

@ -34,3 +34,6 @@
[treat-as-public to public: success.]
expected: FAIL
[local https to local https: success.]
expected: FAIL

View file

@ -1,6 +1,6 @@
[scroll-restoration-fragment-scrolling-cross-origin.html]
type: testharness
expected: ERROR
expected: TIMEOUT
[Manual scroll restoration should take precedent over scrolling to fragment in cross origin navigation]
expected: TIMEOUT

View file

@ -1,6 +1,7 @@
[consecutive-srcdoc.html]
expected: TIMEOUT
[changing srcdoc does a replace navigation since the URL is still about:srcdoc]
expected: FAIL
[changing srcdoc to about:srcdoc#yo then another srcdoc does two push navigations and we can navigate back]
expected: FAIL
expected: TIMEOUT

View file

@ -1,12 +1,13 @@
[failure-check-sequence.https.html]
expected: TIMEOUT
[CSP check precedes COEP check - CSP header first]
expected: FAIL
expected: NOTRUN
[COEP check precedes X-Frame-Options check]
expected: FAIL
expected: NOTRUN
[CSP check precedes COEP check - COEP header first]
expected: FAIL
expected: NOTRUN
[CSP check precedes X-Frame-Options check]
expected: FAIL
expected: TIMEOUT

View file

@ -7,6 +7,3 @@
[load & pageshow events do not fire on contentWindow of <iframe> element created with src='about:blank#foo']
expected: FAIL
[load & pageshow events do not fire on contentWindow of <iframe> element created with src='about:blank']
expected: FAIL

View file

@ -1,6 +1,3 @@
[navigate-to-unparseable-url.html]
[location.href setter throws a SyntaxError DOMException for unparseable URLs]
expected: FAIL
[<a> tag navigate fails for unparseable URLs]
expected: FAIL

View file

@ -1,3 +0,0 @@
[navigation-unload-cross-origin.sub.window.html]
[Cross-origin navigation started from unload handler must be ignored]
expected: FAIL

View file

@ -0,0 +1,3 @@
[navigation-unload-same-origin-fragment.html]
[Tests that a fragment navigation in the unload handler will not block the initial navigation]
expected: FAIL

View file

@ -0,0 +1,3 @@
[navigation-unload-same-origin.window.html]
[Same-origin navigation started from unload handler must be ignored]
expected: FAIL

View file

@ -0,0 +1,3 @@
[a-click.html]
[aElement.click() before the load event must NOT replace]
expected: FAIL

View file

@ -1,3 +0,0 @@
[pageload-image-in-popup.html]
[The document for a standalone media file should have one child in the body.]
expected: FAIL

View file

@ -0,0 +1,3 @@
[pushstate.html]
[history.pushState() with an empty string URL]
expected: FAIL

View file

@ -0,0 +1,3 @@
[replacestate.html]
[history.replaceState() with an empty string URL]
expected: FAIL

View file

@ -0,0 +1,3 @@
[navigate-to-about-blank-while-initial-load-pending.html]
[Navigating to about:blank while window.open initial load pending.]
expected: FAIL

View file

@ -0,0 +1,3 @@
[creating_browsing_context_test_01.html]
[first argument: absolute url]
expected: FAIL

View file

@ -1,3 +0,0 @@
[2d.drawImage.animated.poster.html]
[drawImage() of an APNG draws the poster frame]
expected: FAIL

View file

@ -1,3 +0,0 @@
[drawimage_zerosize-image.html]
[drawImage with zero-sized source rectangle from image draws nothing without exception]
expected: FAIL

View file

@ -1,3 +0,0 @@
[2d.drawImage.animated.poster.html]
[drawImage() of an APNG draws the poster frame]
expected: FAIL

View file

@ -1,3 +0,0 @@
[2d.drawImage.animated.poster.worker.html]
[drawImage() of an APNG draws the poster frame]
expected: FAIL

View file

@ -1,3 +0,0 @@
[2d.drawImage.svg.worker.html]
[drawImage() of an SVG image]
expected: FAIL

View file

@ -1,6 +0,0 @@
[2d.drawImage.zerosource.image.worker.html]
[drawImage with zero-sized source rectangle from image throws INDEX_SIZE_ERR]
expected: FAIL
[drawImage with zero-sized source rectangle from image draws nothing without exception]
expected: FAIL

View file

@ -1,7 +0,0 @@
[offscreencanvas.commit.html]
[Test that calling OffscreenCanvas's commit pushes its contents to its placeholder.]
expected: FAIL
[Test that calling commit on an OffscreenCanvas that is not transferred from a HTMLCanvasElement is a noop.]
expected: FAIL

View file

@ -1,4 +0,0 @@
[offscreencanvas.commit.w.html]
[Test that calling OffscreenCanvas's commit pushes its contents to its placeholder.]
expected: FAIL

View file

@ -1,7 +1,6 @@
[autofocus-dialog.html]
expected: TIMEOUT
[<dialog> can contain autofocus, without stopping page autofocus content from working]
expected: FAIL
[<dialog>-contained autofocus element gets focused when the dialog is shown]
expected: TIMEOUT
expected: FAIL

View file

@ -1,19 +1,15 @@
[supported-elements.html]
expected: TIMEOUT
[Contenteditable element should support autofocus]
expected: FAIL
[Element with tabindex should support autofocus]
expected: TIMEOUT
expected: FAIL
[Host element with delegatesFocus including no focusable descendants should be skipped]
expected: NOTRUN
expected: FAIL
[Area element should support autofocus]
expected: NOTRUN
expected: FAIL
[Host element with delegatesFocus should support autofocus]
expected: NOTRUN
[Non-HTMLElement should not support autofocus]
expected: NOTRUN
expected: FAIL

View file

@ -4645,3 +4645,30 @@
[<source height="0px"> mapping to <img> height property]
expected: FAIL
[<table height="0"> mapping to <table> height property]
expected: FAIL
[<table height="0%"> mapping to <table> height property]
expected: FAIL
[<table height="0px"> mapping to <table> height property]
expected: FAIL
[<tr height="0"> mapping to <tr> height property]
expected: FAIL
[<tr height="0%"> mapping to <tr> height property]
expected: FAIL
[<tr height="0px"> mapping to <tr> height property]
expected: FAIL
[<col width="0"> mapping to <col> width property]
expected: FAIL
[<col width="0%"> mapping to <col> width property]
expected: FAIL
[<col width="0px"> mapping to <col> width property]
expected: FAIL

View file

@ -1,3 +0,0 @@
[media_fragment_seek.html]
[Video should seek to time specified in media fragment syntax]
expected: FAIL

View file

@ -1,5 +1,4 @@
[iframe_sandbox_popups_nonescaping-1.html]
type: testharness
expected: CRASH
[Check that popups from a sandboxed iframe do not escape the sandbox]
expected: NOTRUN
expected: FAIL

View file

@ -1,4 +1,5 @@
[iframe_sandbox_popups_nonescaping-2.html]
type: testharness
expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox]
expected: FAIL
expected: NOTRUN

View file

@ -1,4 +1,3 @@
[iframe_sandbox_popups_nonescaping-3.html]
expected: CRASH
[Check that popups from a sandboxed iframe do not escape the sandbox]
expected: FAIL

View file

@ -1,9 +1,3 @@
[non-active-document.html]
[DOMParser]
expected: FAIL
[createHTMLDocument]
expected: FAIL
[<template>]
expected: FAIL

View file

@ -0,0 +1,126 @@
[sizes-auto.html]
[<img loading="lazy" sizes="auto" width="10" data-ref="ref1" srcset="/images/green-1x1.png?img3 50w, /images/green-16x16.png?img3 51w">]
expected: FAIL
[<picture><source sizes="auto" srcset="/images/green-1x1.png?picture3 50w, /images/green-16x16.png?picture3 51w"><img loading="lazy" width="10" data-ref="ref1"></picture>]
expected: FAIL
[<img loading="lazy" sizes="AUTO" width="10" data-ref="ref1" srcset="/images/green-1x1.png?img4 50w, /images/green-16x16.png?img4 51w">]
expected: FAIL
[<picture><source sizes="AUTO" srcset="/images/green-1x1.png?picture4 50w, /images/green-16x16.png?picture4 51w"><img loading="lazy" width="10" data-ref="ref1"></picture>]
expected: FAIL
[<img loading="lazy" width="10" data-ref="ref1" srcset="/images/green-1x1.png?img5 50w, /images/green-16x16.png?img5 51w">]
expected: FAIL
[<picture><source srcset="/images/green-1x1.png?picture5 50w, /images/green-16x16.png?picture5 51w"><img loading="lazy" width="10" data-ref="ref1"></picture>]
expected: FAIL
[<img loading="lazy" style="width: 10px" data-ref="ref1" srcset="/images/green-1x1.png?img6 50w, /images/green-16x16.png?img6 51w">]
expected: FAIL
[<picture><source srcset="/images/green-1x1.png?picture6 50w, /images/green-16x16.png?picture6 51w"><img loading="lazy" style="width: 10px" data-ref="ref1"></picture>]
expected: FAIL
[<img loading="lazy" style="width: 100%; max-width: 10px" data-ref="ref1" srcset="/images/green-1x1.png?img8 50w, /images/green-16x16.png?img8 51w">]
expected: FAIL
[<picture><source srcset="/images/green-1x1.png?picture8 50w, /images/green-16x16.png?picture8 51w"><img loading="lazy" style="width: 100%; max-width: 10px" data-ref="ref1"></picture>]
expected: FAIL
[<img loading="lazy" sizes="auto" width="10" style="visibility: hidden" data-ref="ref1" srcset="/images/green-1x1.png?img10 50w, /images/green-16x16.png?img10 51w">]
expected: FAIL
[<picture><source sizes="auto" srcset="/images/green-1x1.png?picture10 50w, /images/green-16x16.png?picture10 51w"><img loading="lazy" width="10" style="visibility: hidden" data-ref="ref1"></picture>]
expected: FAIL
[<img loading="lazy" sizes="auto" width="10" style="display: inline" hidden="" data-ref="ref1" srcset="/images/green-1x1.png?img11 50w, /images/green-16x16.png?img11 51w">]
expected: FAIL
[<picture><source sizes="auto" srcset="/images/green-1x1.png?picture11 50w, /images/green-16x16.png?picture11 51w"><img loading="lazy" width="10" style="display: inline" hidden="" data-ref="ref1"></picture>]
expected: FAIL
[<img loading="lazy" sizes="auto, 100vw" width="10" data-ref="ref1" srcset="/images/green-1x1.png?img15 50w, /images/green-16x16.png?img15 51w">]
expected: FAIL
[<picture><source sizes="auto, 100vw" srcset="/images/green-1x1.png?picture15 50w, /images/green-16x16.png?picture15 51w"><img loading="lazy" width="10" data-ref="ref1"></picture>]
expected: FAIL
[<img loading="lazy" sizes="auto" width="100%" data-ref="ref1" srcset="/images/green-1x1.png?img18 50w, /images/green-16x16.png?img18 51w">]
expected: FAIL
[<picture><source sizes="auto" srcset="/images/green-1x1.png?picture18 50w, /images/green-16x16.png?picture18 51w"><img loading="lazy" width="100%" data-ref="ref1"></picture>]
expected: FAIL
[<img loading="lazy" sizes="auto" style="height: 10px; aspect-ratio: 10 / 10" data-ref="ref1" srcset="/images/green-1x1.png?img20 50w, /images/green-16x16.png?img20 51w">]
expected: FAIL
[<picture><source sizes="auto" srcset="/images/green-1x1.png?picture20 50w, /images/green-16x16.png?picture20 51w"><img loading="lazy" style="height: 10px; aspect-ratio: 10 / 10" data-ref="ref1"></picture>]
expected: FAIL
[<img loading="lazy" sizes="auto" style="min-height: 10px; aspect-ratio: 10 / 10" data-ref="ref1" srcset="/images/green-1x1.png?img22 50w, /images/green-16x16.png?img22 51w">]
expected: FAIL
[<picture><source sizes="auto" srcset="/images/green-1x1.png?picture22 50w, /images/green-16x16.png?picture22 51w"><img loading="lazy" style="min-height: 10px; aspect-ratio: 10 / 10" data-ref="ref1"></picture>]
expected: FAIL
[<img loading="lazy" sizes="auto" style="inline-size: 10px" data-ref="ref1" srcset="/images/green-1x1.png?img24 50w, /images/green-16x16.png?img24 51w">]
expected: FAIL
[<picture><source sizes="auto" srcset="/images/green-1x1.png?picture24 50w, /images/green-16x16.png?picture24 51w"><img loading="lazy" style="inline-size: 10px" data-ref="ref1"></picture>]
expected: FAIL
[<img loading="lazy" sizes="auto" style="min-inline-size: 10px" data-ref="ref1" srcset="/images/green-1x1.png?img25 50w, /images/green-16x16.png?img25 51w">]
expected: FAIL
[<picture><source sizes="auto" srcset="/images/green-1x1.png?picture25 50w, /images/green-16x16.png?picture25 51w"><img loading="lazy" style="min-inline-size: 10px" data-ref="ref1"></picture>]
expected: FAIL
[<img loading="lazy" sizes="auto" style="block-size: 10px; aspect-ratio: 10 / 10" data-ref="ref1" srcset="/images/green-1x1.png?img26 50w, /images/green-16x16.png?img26 51w">]
expected: FAIL
[<picture><source sizes="auto" srcset="/images/green-1x1.png?picture26 50w, /images/green-16x16.png?picture26 51w"><img loading="lazy" style="block-size: 10px; aspect-ratio: 10 / 10" data-ref="ref1"></picture>]
expected: FAIL
[<img loading="lazy" sizes="auto" style="min-block-size: 10px; aspect-ratio: 10 / 10" data-ref="ref1" srcset="/images/green-1x1.png?img27 50w, /images/green-16x16.png?img27 51w">]
expected: FAIL
[<picture><source sizes="auto" srcset="/images/green-1x1.png?picture27 50w, /images/green-16x16.png?picture27 51w"><img loading="lazy" style="min-block-size: 10px; aspect-ratio: 10 / 10" data-ref="ref1"></picture>]
expected: FAIL
[<img loading="lazy" sizes="auto" style="block-size: 10px; writing-mode: vertical-rl" data-ref="ref1" srcset="/images/green-1x1.png?img28 50w, /images/green-16x16.png?img28 51w">]
expected: FAIL
[<picture><source sizes="auto" srcset="/images/green-1x1.png?picture28 50w, /images/green-16x16.png?picture28 51w"><img loading="lazy" style="block-size: 10px; writing-mode: vertical-rl" data-ref="ref1"></picture>]
expected: FAIL
[<img loading="lazy" sizes="auto" style="min-block-size: 10px; writing-mode: vertical-rl" data-ref="ref1" srcset="/images/green-1x1.png?img29 50w, /images/green-16x16.png?img29 51w">]
expected: FAIL
[<picture><source sizes="auto" srcset="/images/green-1x1.png?picture29 50w, /images/green-16x16.png?picture29 51w"><img loading="lazy" style="min-block-size: 10px; writing-mode: vertical-rl" data-ref="ref1"></picture>]
expected: FAIL
[<img loading="lazy" sizes="auto" style="inline-size: 10px; aspect-ratio: 10/10; writing-mode: vertical-rl" data-ref="ref1" srcset="/images/green-1x1.png?img30 50w, /images/green-16x16.png?img30 51w">]
expected: FAIL
[<picture><source sizes="auto" srcset="/images/green-1x1.png?picture30 50w, /images/green-16x16.png?picture30 51w"><img loading="lazy" style="inline-size: 10px; aspect-ratio: 10/10; writing-mode: vertical-rl" data-ref="ref1"></picture>]
expected: FAIL
[<img loading="lazy" sizes="auto" style="min-inline-size: 10px; aspect-ratio: 10/10; writing-mode: vertical-rl" data-ref="ref1" srcset="/images/green-1x1.png?img31 50w, /images/green-16x16.png?img31 51w">]
expected: FAIL
[<picture><source sizes="auto" srcset="/images/green-1x1.png?picture31 50w, /images/green-16x16.png?picture31 51w"><img loading="lazy" style="min-inline-size: 10px; aspect-ratio: 10/10; writing-mode: vertical-rl" data-ref="ref1"></picture>]
expected: FAIL
[<img loading="lazy" sizes="auto" style="--my-width: 10px; width: var(--my-width)" data-ref="ref1" srcset="/images/green-1x1.png?img32 50w, /images/green-16x16.png?img32 51w">]
expected: FAIL
[<picture><source sizes="auto" srcset="/images/green-1x1.png?picture32 50w, /images/green-16x16.png?picture32 51w"><img loading="lazy" style="--my-width: 10px; width: var(--my-width)" data-ref="ref1"></picture>]
expected: FAIL
[<img loading="lazy" sizes="auto" style="width: calc(5px + 5px)" data-ref="ref1" srcset="/images/green-1x1.png?img33 50w, /images/green-16x16.png?img33 51w">]
expected: FAIL
[<picture><source sizes="auto" srcset="/images/green-1x1.png?picture33 50w, /images/green-16x16.png?picture33 51w"><img loading="lazy" style="width: calc(5px + 5px)" data-ref="ref1"></picture>]
expected: FAIL

View file

@ -181,3 +181,6 @@
[multipart/form-data: Basic test (formdata event)]
expected: FAIL
[multipart/form-data: 0x00 in name (normal form)]
expected: FAIL

View file

@ -0,0 +1,4 @@
[reparent-form-during-planned-navigation-task.html]
expected: TIMEOUT
[reparent-form-during-planned-navigation-task]
expected: TIMEOUT

View file

@ -0,0 +1,3 @@
[DOMContentLoaded-defer.html]
[The end: DOMContentLoaded and defer scripts]
expected: FAIL

View file

@ -1,3 +0,0 @@
[module-static-import-delayed.html]
[document.write in an imported module]
expected: FAIL

View file

@ -1,9 +1,10 @@
[promise-job-entry-different-function-realm.html]
expected: TIMEOUT
[Fulfillment handler on fulfilled promise]
expected: FAIL
[Rejection handler on pending-then-rejected promise]
expected: FAIL
expected: TIMEOUT
[Thenable resolution]
expected: FAIL
@ -12,4 +13,4 @@
expected: FAIL
[Fulfillment handler on pending-then-fulfilled promise]
expected: FAIL
expected: TIMEOUT

View file

@ -1,6 +1,7 @@
[promise-rejection-events.html]
expected: TIMEOUT
[delayed handling: delaying handling rejected promise created from createImageBitmap will cause both events to fire]
expected: FAIL
expected: TIMEOUT
[unhandledrejection: from createImageBitmap which is UA triggered]
expected: FAIL

View file

@ -1,4 +0,0 @@
[018.html]
expected: TIMEOUT
[origin of the script that invoked the method, javascript:]
expected: TIMEOUT

View file

@ -1,4 +0,0 @@
[017.html]
expected: TIMEOUT
[origin of the script that invoked the method, about:blank]
expected: TIMEOUT

View file

@ -1,4 +0,0 @@
[018.html]
expected: TIMEOUT
[origin of the script that invoked the method, javascript:]
expected: TIMEOUT

View file

@ -0,0 +1,3 @@
[back-forward-cache-with-closed-websocket-connection.window.html]
[Testing BFCache support for page with closed WebSocket connection.]
expected: FAIL

View file

@ -0,0 +1,3 @@
[back-forward-cache-with-open-websocket-connection.window.html]
[Testing BFCache support for page with open WebSocket connection.]
expected: FAIL

View file

@ -1,4 +0,0 @@
[localstorage-about-blank-3P-iframe-opens-3P-window.partitioned.tentative.html]
expected: TIMEOUT
[StorageKey: test 3P about:blank window opened from a 3P iframe]
expected: TIMEOUT

View file

@ -0,0 +1,3 @@
[dedicated-worker-from-blob-url.window.html]
[Creating a dedicated worker from a blob URL works immediately before revoking.]
expected: FAIL

View file

@ -1,2 +0,0 @@
[simple_scroll_to_fragment.html]
expected: FAIL

View file

@ -500,6 +500,7 @@ jobs:
export SYSTEM_VERSION_COMPAT=0
./wpt run --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --this-chunk=$(System.JobPositionInPhase) --total-chunks=$(System.TotalJobsInPhase) --chunk-type hash --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot_$(System.JobPositionInPhase).txt --log-mach - --log-mach-level info --channel stable --kill-safari safari
displayName: 'Run tests'
retryCountOnTaskFailure: 2
- task: PublishBuildArtifacts@1
displayName: 'Publish results'
inputs:
@ -540,6 +541,7 @@ jobs:
export SYSTEM_VERSION_COMPAT=0
./wpt run --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --this-chunk=$(System.JobPositionInPhase) --total-chunks=$(System.TotalJobsInPhase) --chunk-type hash --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot_$(System.JobPositionInPhase).txt --log-mach - --log-mach-level info --channel preview --kill-safari safari
displayName: 'Run tests'
retryCountOnTaskFailure: 2
- task: PublishBuildArtifacts@1
displayName: 'Publish results'
inputs:

View file

@ -11,6 +11,8 @@
</head>
<body>
<p>Tests the <a href="https://w3c.github.io/accname/#comp_embedded_control">#comp_embedded_control</a> portions of the AccName <em>Name Computation</em> algorithm.</p>
<label>
<input type="checkbox" data-expectedlabel="Flash the screen 3 times" data-testname="checkbox label with embedded textfield" class="ex">
Flash the screen

View file

@ -11,6 +11,8 @@
</head>
<body>
<p>Tests the <a href="https://w3c.github.io/accname/#comp_hidden_not_referenced">#comp_hidden_not_referenced</a> portions of the AccName <em>Name Computation</em> algorithm.</p>
<h2 class="ex" data-expectedlabel="heading label" data-testname="heading with interior hidden node">
heading
<span hidden>bogus</span>

View file

@ -11,6 +11,8 @@
</head>
<body>
<p>Tests the <a href="https://w3c.github.io/accname/#comp_host_language_label">#comp_host_language_label</a> portions of the AccName <em>Name Computation</em> algorithm.</p>
<label for="t">label</label>
<input id="t" data-expectedlabel="label" data-testname="host language: label[for] input[type=text]" class="ex">
<!-- Todo: test all remaining input types with label[for] -->

View file

@ -11,6 +11,8 @@
</head>
<body>
<p>Tests the <a href="https://w3c.github.io/accname/#comp_label">#comp_label</a> portions of the AccName <em>Name Computation</em> algorithm.</p>
<div aria-label="label" data-expectedlabel="label" data-testname="label valid on group" role="group" class="ex">x</div>
<!-- Todo: test all remaining cases of https://w3c.github.io/accname/#comp_label -->

View file

@ -11,6 +11,8 @@
</head>
<body>
<p>Tests the <a href="https://w3c.github.io/accname/#comp_labelledby">#comp_labelledby</a> portions of the AccName <em>Name Computation</em> algorithm.</p>
<div role="group" aria-labelledby="h" class="ex" data-expectedlabel="div group label" data-testname="div group explicitly labelledby heading">
<h2 id="h">div group label</h2>
<p>text inside div group</p>

View file

@ -11,6 +11,8 @@
</head>
<body>
<p>Tests the <a href="https://w3c.github.io/accname/#comp_name_from_content">#comp_name_from_content</a> portions of the AccName <em>Name Computation</em> algorithm.</p>
<h1 data-expectedlabel="label" data-testname="heading name from content" class="ex">label</h1>
<!--

View file

@ -11,6 +11,8 @@
</head>
<body>
<p>Tests the <a href="https://w3c.github.io/accname/#comp_text_node">#comp_text_node</a> portions of the AccName <em>Name Computation</em> algorithm.</p>
<!-- I'm not certain whether #comp_text_node requires a lot of testing outside of the #comp_name_from_content contexts, -->
<!-- but I did think of one example where text node versus comment node may make a difference when joining text nodes with a space vs innerText. -->

View file

@ -11,6 +11,8 @@
</head>
<body>
<p>Tests the <a href="https://w3c.github.io/accname/#comp_tooltip">#comp_tooltip</a> portions of the AccName <em>Name Computation</em> algorithm.</p>
<a href="#" title="label" data-expectedlabel="label" data-testname="link label from tooltip" class="ex"><img src="#" alt=""></a>
<!-- Todo: test all remaining cases of https://w3c.github.io/accname/#comp_tooltip -->

View file

@ -6,6 +6,8 @@
<script src="/resources/testdriver-actions.js"></script>
<script src="/wai-aria/scripts/aria-utils.js"></script>
<p>Tests the basic shadow DOM portions of the AccName <em>Name Computation</em> algorithm, coming in <a href="https://github.com/w3c/accname/pull/167">ARIA #167</a>.</p>
<label id="label1">
<div id="host1"></div>
</label>

View file

@ -6,6 +6,8 @@
<script src="/resources/testdriver-actions.js"></script>
<script src="/wai-aria/scripts/aria-utils.js"></script>
<p>Tests the shadow DOM slots portions of the AccName <em>Name Computation</em> algorithm, coming in <a href="https://github.com/w3c/accname/pull/167">ARIA #167</a>.</p>
<label id="label1">
<div id="host1">slotted</div>
</label>

View file

@ -1,4 +1,4 @@
const EMPTY_TOPICS_HEADER = 't=(), p=P000000000000000000000000000';
const EMPTY_TOPICS_HEADER = '();p=P0000000000000000000000000000000';
function test_topics_iframe_navigation_header(
test, has_browsing_topics_attribute, is_same_origin, expect_topics_header_available_func) {

View file

@ -43,12 +43,12 @@ function cors(desc, scheme, subdomain = "", port = location.port) {
}
cors("Same domain basic usage");
cors("Cross domain basic usage", "http", "www1");
cors("Cross domain basic usage", "http", "www1.");
cors("Same domain different port", "http", undefined, PORT);
cors("Cross domain different port", "http", "www1", PORT);
cors("Cross domain different port", "http", "www1.", PORT);
cors("Cross domain different protocol", "https", "www1", PORTS);
cors("Cross domain different protocol", "https", "www1.", PORTS);
cors("Same domain different protocol different port", "https", undefined, PORTS);

View file

@ -0,0 +1,26 @@
<!DOCTYPE html>
<title>CSS Container Queries Test: style and size query against container without a principal box</title>
<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
<style>
#container {
container-type: inline-size;
display: contents;
--foo: bar;
}
@container (width >= 0px) or style(--foo: bar) {
#target { color: green; }
}
</style>
<div id="container">
<div id="target">Should be green</div>
</div>
<script>
setup(() => assert_implements_container_queries());
test(() => {
assert_equals(getComputedStyle(target).color, "rgb(0, 128, 0)");
}, "width query should evaluate to unknown and style query to true");
</script>

View file

@ -12,6 +12,11 @@
<body>
<script>
test_invalid_value('font-variant', 'normal none');
test_invalid_value('font-variant', 'none normal');
test_invalid_value('font-variant', 'small-caps normal');
test_invalid_value('font-variant', 'normal small-caps');
test_invalid_value('font-variant', 'small-caps none');
test_invalid_value('font-variant', 'none small-caps');
// <common-lig-values>
test_invalid_value('font-variant', 'common-ligatures no-common-ligatures');

View file

@ -0,0 +1,38 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="author" title="Brandon Stewart" href="mailto:brandonstewart@apple.com">
<link rel="help" href="https://drafts.csswg.org/css-grid-3">
<meta name="assert" content="When the height of an element in the grid changes, ensure the grid is properly resized">
</head>
<style>
grid {
display: grid;
grid-template-rows: masonry;
grid-template-columns: auto;
grid-gap: 10px;
border: 10px;
border-style: solid;
}
item1 {
background-color: grey;
height: 125px;
width: 250px;
}
item2 {
background-color: grey;
height: 250px;
width: 250px;
}
</style>
</head>
<body>
<grid>
<item1>1</item1>
<item2>2</item2>
</grid>
</body>
</html>

View file

@ -0,0 +1,39 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="author" title="Brandon Stewart" href="mailto:brandonstewart@apple.com">
<link rel="help" href="https://drafts.csswg.org/css-grid-3">
<link rel="match" href="masonry-track-sizing-check-grid-height-on-resize-ref.html">
<meta name="assert" content="When the height of an element in the grid changes, ensure the grid is properly resized">
</head>
<style>
grid {
display: grid;
grid-template-rows: masonry;
grid-template-columns: auto;
grid-gap: 10px;
border: 10px;
border-style: solid;
}
item {
background-color: grey;
height: 250px;
width: 250px;
}
</style>
</head>
<body>
<grid>
<item>1</item>
<item>2</item>
</grid>
</body>
<script>
/* Force a relayout */
document.body.offsetHeight;
document.querySelector("item").style["height"] = "125px";
</script>
</html>

View file

@ -5,6 +5,7 @@
<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/">
<link rel="match" href="css-highlight-painting-underline-offset-001-ref.html">
<meta name="assert" content="Verify that text-underline-offset works in a ::highlight pseudo-element.">
<meta name="fuzzy" content="0-56;0-10">
<style>
::highlight(example) {
text-decoration: wavy underline green 5px;

View file

@ -0,0 +1,15 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Highlight API Test: ::target-text text-decoration - reference</title>
<style>
#target-text {
text-decoration: wavy underline overline green 5px;
text-underline-offset: 20px;
}
div {
border: solid 1px black;
padding: 50px;
}
</style>
<div id="upper">The word <span id="target-text">remain</span> has under/over lines.</div>
</html>

View file

@ -0,0 +1,26 @@
<!DOCTYPE html>
<html class="reftest-wait">
<meta charset="utf-8">
<title>CSS Highlight API Test: ::target-text text-decoration</title>
<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/">
<link rel="match" href="css-target-text-decoration-001-ref.html">
<meta name="assert" content="This test checks that text-decorations of target text are fully rendered.">
<meta name="fuzzy" content="0-60;0-32">
<script src="/common/reftest-wait.js"></script>
<style>
::target-text {
text-decoration: wavy underline overline green 5px;
text-underline-offset: 20px;
background-color: transparent;
}
div {
border: solid 1px black;
padding: 50px;
}
</style>
<div id="upper">The word remain has under/over lines.</div>
<script>
window.location.href = `css-target-text-decoration-001.html#:~:text=remain`;
requestAnimationFrame(() => takeScreenshot());
</script>
</html>

View file

@ -0,0 +1,16 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Highlight API Test: ::highlight dynamic remove text decoration - reference</title>
<style>
#upper {
text-decoration: wavy underline overline green 5px;
text-underline-offset: 20px;
}
div {
border: solid 1px black;
padding: 50px;
}
</style>
<div id="upper">This line starts with under/over lines that remain.</div>
<div id="lower">This line starts with under/over lines that are removed.</div>
</html>

View file

@ -0,0 +1,36 @@
<!DOCTYPE html>
<html class="reftest-wait">
<meta charset="utf-8">
<title>CSS Highlight API Test: ::highlight dynamic change text-decoration</title>
<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/">
<link rel="match" href="css-highlight-invalidation-001-ref.html">
<meta name="assert" content="This test checks that it's possible to modify dynamically the text-decoration of a custom highlight through ::highlight pseudo-element.">
<meta name="fuzzy" content="0-56;0-10">
<script src="/common/reftest-wait.js"></script>
<style>
::highlight(example) {
text-decoration: wavy underline overline green 5px;
text-underline-offset: 20px;
}
div {
border: solid 1px black;
padding: 50px;
}
</style>
<div id="upper">This line starts with under/over lines that remain.</div>
<div id="lower">This line starts with under/over lines that are removed.</div>
<script>
let range_upper = new Range();
range_upper.setStart(upper, 0);
range_upper.setEnd(upper, 1);
let range_lower = new Range();
range_lower.setStart(lower, 0);
range_lower.setEnd(lower, 1);
CSS.highlights.set(`example`, new Highlight(range_lower));
requestAnimationFrame(() => requestAnimationFrame(() => {
CSS.highlights.set(`example`, new Highlight(range_upper));
requestAnimationFrame(() => takeScreenshot());
}));
</script>
</html>

View file

@ -12,11 +12,11 @@
<body>
<div id="target"></div>
<script>
test_computed_value('list-style', 'none', 'outside none none');
test_computed_value('list-style', 'outside none none', 'none');
test_computed_value('list-style', 'inside', 'inside none disc');
test_computed_value('list-style', 'url("https://{{host}}/")', 'outside url("https://{{host}}/") disc');
test_computed_value('list-style', 'square', 'outside none square');
test_computed_value('list-style', 'inside none disc', 'inside');
test_computed_value('list-style', 'outside url("https://{{host}}/") disc', 'url("https://{{host}}/")');
test_computed_value('list-style', 'outside none square', 'square');
test_computed_value('list-style', 'inside url("https://{{host}}/") square');
</script>

View file

@ -92,8 +92,8 @@ test_composition({
addFrom: 'ellipse()',
addTo: 'ellipse(closest-side farthest-side)',
}, [
{at: 0.25, expect: 'ellipse(at 50% 50%)'},
{at: 0.75, expect: 'ellipse(closest-side farthest-side at 50% 50%)'},
{at: 0.25, expect: 'ellipse()'},
{at: 0.75, expect: 'ellipse(closest-side farthest-side)'},
]);
test_composition({

View file

@ -28,7 +28,7 @@ test(function(t) {
getComputedStyle(div).clipPath;
div.style.clipPath = 'circle(26px)';
assert_equals(getComputedStyle(div).clipPath, 'circle(0px at 50% 50%)',
assert_equals(getComputedStyle(div).clipPath, 'circle(0px)',
'The radius of circle is clamped to zero at 61%');
}, 'Test circle with negative easing on clip-path');
@ -40,7 +40,7 @@ test(function(t) {
getComputedStyle(div).clipPath;
div.style.clipPath = 'ellipse(26px 26px)';
assert_equals(getComputedStyle(div).clipPath, 'ellipse(0px 0px at 50% 50%)',
assert_equals(getComputedStyle(div).clipPath, 'ellipse(0px 0px)',
'The radius of ellipse is clamped to zero at 61%');
}, 'Test ellipse with negative easing on clip-path');

View file

@ -25,15 +25,15 @@ test_valid_value("clip-path", "inset(0px round 0px 1px 2%)");
test_valid_value("clip-path", "inset(0px round 0px 1px 2% 3em)");
test_valid_value("clip-path", "inset(10px round 20% / 0px 1px 2% 3em)");
test_valid_value("clip-path", "circle()", "circle(at 50% 50%)");
test_valid_value("clip-path", "circle(1px)", "circle(1px at 50% 50%)");
test_valid_value("clip-path", "circle(closest-side)", "circle(at 50% 50%)");
test_valid_value("clip-path", "circle()");
test_valid_value("clip-path", "circle(1px)", "circle(1px)");
test_valid_value("clip-path", "circle(closest-side)", "circle()");
test_valid_value("clip-path", "circle(at 10% 20%)");
test_valid_value("clip-path", "circle(farthest-side at center top)", "circle(farthest-side at 50% 0%)");
test_valid_value("clip-path", "circle(4% at top right)", "circle(4% at 100% 0%)");
test_valid_value("clip-path", "ellipse()", "ellipse(at 50% 50%)");
test_valid_value("clip-path", "ellipse(1px closest-side)", "ellipse(1px closest-side at 50% 50%)");
test_valid_value("clip-path", "ellipse()");
test_valid_value("clip-path", "ellipse(1px closest-side)");
test_valid_value("clip-path", "ellipse(at 10% 20%)");
test_valid_value("clip-path", "ellipse(closest-side closest-side at 10% 20%)", "ellipse(at 10% 20%)");
test_valid_value("clip-path", "ellipse(farthest-side 4% at bottom left)", "ellipse(farthest-side 4% at 0% 100%)");

View file

@ -0,0 +1,42 @@
<!DOCTYPE html>
<link rel=author href="mailto:jarhar@chromium.org">
<link rel=help href="https://github.com/whatwg/html/pull/9093">
<link rel=help href="https://drafts.csswg.org/css-position-4/#overlay">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<title>CSS Position Test: User agent style for overlay</title>
<style>
div {
overlay: auto;
}
</style>
<body>
<script>
test(() => {
const div = document.createElement('div');
document.body.appendChild(div);
div.style.overlay = 'auto';
assert_equals(getComputedStyle(div).overlay, 'none');
}, 'HTML elements should have overlay:none !important from the user-agent.');
test(() => {
const svg = document.createElement('svg');
document.body.appendChild(svg);
svg.style.overlay = 'auto';
assert_equals(getComputedStyle(svg).overlay, 'none');
}, 'SVG elements should have overlay:none !important from the user-agent.');
test(() => {
const nullNamespace = document.createElementNS(null, 'div');
document.body.appendChild(nullNamespace);
assert_equals(getComputedStyle(nullNamespace).overlay, 'none');
}, 'Null namespace elements should have overlay:none !important from the user-agent.');
test(() => {
const weirdNamespace = document.createElementNS('hello world', 'div');
document.body.appendChild(weirdNamespace);
assert_equals(getComputedStyle(weirdNamespace).overlay, 'none');
}, 'Arbitrary namespace elements should have overlay:none !important from the user-agent.');
</script>

View file

@ -26,7 +26,6 @@
<p>IJsselmeer</p>
<p>ijsselmeer</p>
<p>“IJsselmeer”</p>
<p>Ijsselmeer</p> <!-- mixed case within the digraph is unlikely in practice -->
</div>
<div lang="en">
<p lang="nl-NL">IJsselmeer</p> <!-- lang tag with country code should also work -->
@ -37,7 +36,9 @@
<p>IJsselmeer</p>
<p>ijsselmeer</p>
<p>“IJsselmeer”</p>
<p>Ijsselmeer</p>
</div>
<div lang="nl">
<p>Ijotalen</p> <!-- mixed case not treated as digraph -->
</div>
</body>
</html>

View file

@ -23,7 +23,6 @@
<p><span>IJ</span>sselmeer</p>
<p><span>ij</span>sselmeer</p>
<p><span>“IJ</span>sselmeer”</p>
<p><span>Ij</span>sselmeer</p>
</div>
<div lang="en">
<p lang="nl-NL"><span>IJ</span>sselmeer</p>
@ -34,7 +33,9 @@
<p><span>I</span>Jsselmeer</p>
<p><span>i</span>jsselmeer</p>
<p><span>“I</span>Jsselmeer”</p>
<p><span>I</span>jsselmeer</p>
</div>
<div lang="nl">
<p><span>I</span>jotalen</p> <!-- mixed case not treated as digraph -->
</div>
</body>
</html>

View file

@ -0,0 +1,53 @@
<!DOCTYPE html>
<meta name="viewport" content="width=device-width">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<link rel="author" title="Mozilla" href="https://mozilla.org">
<link rel="help" href="https://drafts.csswg.org/css-scroll-anchoring/">
<style>
body { margin: 0 }
.content {
height: 200px;
background: lightblue;
}
.spacer {
height: 300vh;
}
</style>
<div class="content"></div>
<div class="content" style="background: green"></div>
<div class="spacer"></div>
<script>
const anchor = document.querySelectorAll(".content")[1];
const t = async_test("Scroll adjustments happen even if it's triggered from scroll event listeners");
window.addEventListener("scroll", t.step_func(function() {
// Forcibly flush layout, this will flush the pending the node insertion.
let scrollPosition = window.scrollY;
requestAnimationFrame(t.step_func(function() {
requestAnimationFrame(t.step_func(function() {
assert_equals(window.scrollY, 400);
t.done();
}));
}));
}), { once: true });
window.onload = t.step_func(function() {
requestAnimationFrame(t.step_func(function() {
// Scroll to the anchor node in a requestAnimationFrame callback so that
// it queues a scroll event which will be fired in the next event loop.
anchor.scrollIntoView({ behavior: "instant" });
// Then in a setTimeout callback insert an element just right before the
// anchor node, it will run before firing the scroll event.
t.step_timeout(function() {
const content = document.createElement("div");
content.classList.add("content");
content.style.background = "red";
anchor.before(content);
}, 0);
}));
});
</script>

View file

@ -18,20 +18,23 @@
<div class="content"></div>
<div class="content"></div>
<script>
let first = true;
const t = async_test("Scroll adjustments don't happen if triggered from scroll event listeners");
let count = 0;
const t = async_test("Scroll adjustments don't keep happening with 0-length adjustments triggered by a single scroll operation");
onscroll = t.step_func(function() {
assert_true(first, "Should only get one event");
first = false;
++count;
hidden.style.display = "block";
hidden.offsetTop;
hidden.style.display = "none";
let currentCount = count;
requestAnimationFrame(t.step_func(function() {
requestAnimationFrame(t.step_func(function() {
t.done();
if (currentCount == count) {
t.done();
}
}));
}));
});
window.onload = t.step_func(function() {
window.scrollTo(0, document.documentElement.scrollHeight);
window.scrollBy(0, -200);

View file

@ -0,0 +1,5 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference</title>
<link rel="author" title="Luke Warlow" href="mailto:luke@warlow.dev">
<input>

View file

@ -0,0 +1,12 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: scrollbar-color shouldn't cause scrollbars in inputs</title>
<link rel="author" title="Luke Warlow" href="mailto:luke@warlow.dev">
<link rel="help" href="https://drafts.csswg.org/css-scrollbars-1/#scrollbar-color">
<link rel="match" href="input-scrollbar-color-ref.html">
<style>
:root {
scrollbar-color: red yellow;
}
</style>
<input>

View file

@ -0,0 +1,60 @@
<meta charset="utf-8">
<title>CSS Scrollbars: scrollbar-width on the body is not propagated quirks mode</title>
<link rel="author" title="Luke Warlow" href="mailto:luke@warlow.dev" />
<link rel="help" href="https://drafts.csswg.org/css-scrollbars-1/" />
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
<style>
:root {
/* CSS scrollbar properties applied to the root element
will be propagated to the viewport. */
scrollbar-width: thin;
overflow: visible;
}
body {
/* overflow is propagated as well */
overflow: scroll;
/* but CSS scrollbar properties applied to the body are not propagated */
scrollbar-width: none;
}
:root,
body {
margin: 0;
padding: 0;
}
#content {
height: 10vh;
width: 100%;
background: lightsalmon;
}
#expander {
/* force vertical scroll */
height: 200vh;
width: 300px;
background: gray;
}
</style>
<body>
<div id="content"></div>
<div id="expander"></div>
<script>
test(function () {
let root = document.documentElement;
let body = document.body;
let content = document.getElementById('content');
assert_less_than(root.offsetWidth, window.innerWidth, "viewport has a scrollbar");
assert_equals(body.offsetWidth, root.offsetWidth, "body matches root");
assert_equals(content.offsetWidth, body.offsetWidth, "content matches body");
}, "viewport displays a scrollbar");
</script>
</body>

View file

@ -92,8 +92,8 @@ test_composition({
addFrom: 'ellipse()',
addTo: 'ellipse(closest-side farthest-side)',
}, [
{at: 0.25, expect: 'ellipse(at 50% 50%)'},
{at: 0.75, expect: 'ellipse(closest-side farthest-side at 50% 50%)'},
{at: 0.25, expect: 'ellipse()'},
{at: 0.75, expect: 'ellipse(closest-side farthest-side)'},
]);
test_composition({

View file

@ -25,14 +25,14 @@ checkEquals("ellipse(at right calc(10% + 5px))",
"ellipse(at 100% calc(10% + 5px))");
// Only 2 or 4 value form allowed
checkEquals("circle()", "circle(at 50% 50%)");
checkEquals("circle(0px)", "circle(0px at 50% 50%)");
checkEquals("circle(closest-side)", "circle(at 50% 50%)");
checkEquals("circle()", "circle()");
checkEquals("circle(0px)", "circle(0px)");
checkEquals("circle(closest-side)", "circle()");
checkEquals("circle(farthest-side)",
"circle(farthest-side at 50% 50%)");
checkEquals("ellipse()", "ellipse(at 50% 50%)");
"circle(farthest-side)");
checkEquals("ellipse()", "ellipse()");
checkEquals("ellipse(closest-side farthest-side)",
"ellipse(closest-side farthest-side at 50% 50%)");
"ellipse(closest-side farthest-side)");
checkEquals("circle(at top 0% right 5px)", "circle(at right 5px top 0%)");

View file

@ -29,7 +29,7 @@ test(function(t) {
getComputedStyle(div).shapeOutside;
div.style.shapeOutside = 'circle(26px)';
assert_equals(getComputedStyle(div).shapeOutside, 'circle(0px at 50% 50%)',
assert_equals(getComputedStyle(div).shapeOutside, 'circle(0px)',
'The radius of circle is clamped to zero at 61%');
}, 'Test circle with negative easing on shape-outside');
@ -42,7 +42,7 @@ test(function(t) {
div.style.shapeOutside = 'ellipse(26px 26px)';
assert_equals(getComputedStyle(div).shapeOutside,
'ellipse(0px 0px at 50% 50%)',
'ellipse(0px 0px)',
'The radius of ellipse is clamped to zero at 61%');
}, 'Test ellipse with negative easing on shape-outside');

View file

@ -25,17 +25,17 @@ test_valid_value("shape-outside", "inset(0px round 0px 1px 2%)");
test_valid_value("shape-outside", "inset(0px round 0px 1px 2% 3em)");
test_valid_value("shape-outside", "inset(10px round 20% / 0px 1px 2% 3em)");
test_valid_value("shape-outside", "circle()", "circle(at 50% 50%)");
test_valid_value("shape-outside", "circle(1px)", "circle(1px at 50% 50%)");
test_valid_value("shape-outside", "circle(closest-side)", "circle(at 50% 50%)");
test_valid_value("shape-outside", "circle()");
test_valid_value("shape-outside", "circle(1px)");
test_valid_value("shape-outside", "circle(closest-side)", "circle()");
test_valid_value("shape-outside", "circle(at 10% 20%)");
test_valid_value("shape-outside", "circle(farthest-side at center top)", "circle(farthest-side at 50% 0%)");
test_valid_value("shape-outside", "circle(4% at top right)", "circle(4% at 100% 0%)");
test_valid_value("shape-outside", "ellipse()", "ellipse(at 50% 50%)");
test_valid_value("shape-outside", "ellipse(3% 2%)", "ellipse(3% 2% at 50% 50%)");
test_valid_value("shape-outside", "ellipse(closest-side 1px)", "ellipse(closest-side 1px at 50% 50%)");
test_valid_value("shape-outside", "ellipse(10% closest-side)", "ellipse(10% closest-side at 50% 50%)");
test_valid_value("shape-outside", "ellipse()", "ellipse()");
test_valid_value("shape-outside", "ellipse(3% 2%)");
test_valid_value("shape-outside", "ellipse(closest-side 1px)");
test_valid_value("shape-outside", "ellipse(10% closest-side)");
test_valid_value("shape-outside", "ellipse(closest-side closest-side at 60% 70%)", "ellipse(at 60% 70%)");
test_valid_value("shape-outside", "ellipse(at 10% 20%)");
test_valid_value("shape-outside", "ellipse(farthest-side 4% at bottom left)", "ellipse(farthest-side 4% at 0% 100%)");

View file

@ -21,14 +21,14 @@
{
"name": "No arguments",
"actual": "circle()",
"expected_inline": "circle(at 50% 50%)",
"expected_computed": "circle(at 50% 50%)"
"expected_inline": "circle()",
"expected_computed": "circle()"
},
{
"name": "Radial argument only",
"actual": "circle(50px)",
"expected_inline": "circle(50px at 50% 50%)",
"expected_computed": "circle(50px at 50% 50%)"
"expected_inline": "circle(50px)",
"expected_computed": "circle(50px)"
},
{
"name": "Position argument only",

View file

@ -20,44 +20,84 @@
<script type="text/javascript">
var valid_circle_radii_tests = [
{
"actual": "circle(+10px)",
"actual": "circle(+10px at 50% 50%)",
"expected_inline": "circle(10px at 50% 50%)",
"expected_computed": "circle(10px at 50% 50%)"
},
{
"actual": "circle(+10.00px)",
"actual": "circle(+10.00px at 50% 50%)",
"expected_inline": "circle(10px at 50% 50%)",
"expected_computed": "circle(10px at 50% 50%)"
},
{
"actual": "circle(+20.340px)",
"actual": "circle(+20.340px at 50% 50%)",
"expected_inline": "circle(20.34px at 50% 50%)",
"expected_computed": "circle(20.34px at 50% 50%)"
},
{
"actual": "circle(+30.5px)",
"actual": "circle(+30.5px at 50% 50%)",
"expected_inline": "circle(30.5px at 50% 50%)",
"expected_computed": "circle(30.5px at 50% 50%)"
},
{
"actual": "circle(+10%)",
"actual": "circle(+10% at 50% 50%)",
"expected_inline": "circle(10% at 50% 50%)",
"expected_computed": "circle(10% at 50% 50%)"
},
{
"actual": "circle(+10.00%)",
"actual": "circle(+10.00% at 50% 50%)",
"expected_inline": "circle(10% at 50% 50%)",
"expected_computed": "circle(10% at 50% 50%)"
},
{
"actual": "circle(+20.350%)",
"actual": "circle(+20.350% at 50% 50%)",
"expected_inline": "circle(20.35% at 50% 50%)",
"expected_computed": "circle(20.35% at 50% 50%)"
},
{
"actual": "circle(+30.5%)",
"actual": "circle(+30.5% at 50% 50%)",
"expected_inline": "circle(30.5% at 50% 50%)",
"expected_computed": "circle(30.5% at 50% 50%)"
},
{
"actual": "circle(+10px)",
"expected_inline": "circle(10px)",
"expected_computed": "circle(10px)"
},
{
"actual": "circle(+10.00px)",
"expected_inline": "circle(10px)",
"expected_computed": "circle(10px)"
},
{
"actual": "circle(+20.340px)",
"expected_inline": "circle(20.34px)",
"expected_computed": "circle(20.34px)"
},
{
"actual": "circle(+30.5px)",
"expected_inline": "circle(30.5px)",
"expected_computed": "circle(30.5px)"
},
{
"actual": "circle(+10%)",
"expected_inline": "circle(10%)",
"expected_computed": "circle(10%)"
},
{
"actual": "circle(+10.00%)",
"expected_inline": "circle(10%)",
"expected_computed": "circle(10%)"
},
{
"actual": "circle(+20.350%)",
"expected_inline": "circle(20.35%)",
"expected_computed": "circle(20.35%)"
},
{
"actual": "circle(+30.5%)",
"expected_inline": "circle(30.5%)",
"expected_computed": "circle(30.5%)"
}
];
invalid_circle_radii_tests = [

View file

@ -20,7 +20,7 @@
<script type="text/javascript">
var circle_calc_tests = [];
ParsingUtils.calcTestValues.forEach(function(value) {
testCase = ['circle('+ value[0] +')', 'circle('+ value[1] + ' at 50% 50%)'];
testCase = ['circle('+ value[0] + ' at 50% 50%)', 'circle('+ value[1] + ' at 50% 50%)'];
if(Object.prototype.toString.call( value[2] ) === '[object Array]' && value[2].length == 2) {
testCase.push([ 'circle('+ value[2][0] + ' at 50% 50%)', 'circle('+ value[2][1] + ' at 50% 50%)']);
} else {

View file

@ -21,14 +21,14 @@
{
"name": "No arguments",
"actual": "ellipse()",
"expected_inline": "ellipse(at 50% 50%)",
"expected_computed": "ellipse(at 50% 50%)"
"expected_inline": "ellipse()",
"expected_computed": "ellipse()"
},
{
"name": "Radial arguments",
"actual": "ellipse(50px 50px)",
"expected_inline": "ellipse(50px 50px at 50% 50%)",
"expected_computed": "ellipse(50px 50px at 50% 50%)"
"expected_inline": "ellipse(50px 50px)",
"expected_computed": "ellipse(50px 50px)"
},
{
"name": "Position argument",

View file

@ -21,61 +21,121 @@
var valid_ellipse_radii_tests = [
{
"actual": "ellipse(+10px +20px)",
"expected_inline": "ellipse(10px 20px)",
"expected_computed": "ellipse(10px 20px)"
},
{
"actual": "ellipse(+30px 40px)",
"expected_inline": "ellipse(30px 40px)",
"expected_computed": "ellipse(30px 40px)"
},
{
"actual": "ellipse(50px +60px)",
"expected_inline": "ellipse(50px 60px)",
"expected_computed": "ellipse(50px 60px)"
},
{
"actual": "ellipse(+10.00px +20.230px)",
"expected_inline": "ellipse(10px 20.23px)",
"expected_computed": "ellipse(10px 20.23px)"
},
{
"actual": "ellipse(+30.00px 40.567px)",
"expected_inline": "ellipse(30px 40.567px)",
"expected_computed": "ellipse(30px 40.567px)"
},
{
"actual": "ellipse(50.10px +60.7px)",
"expected_inline": "ellipse(50.1px 60.7px)",
"expected_computed": "ellipse(50.1px 60.7px)"
},
{
"actual": "ellipse(+10% +20%)",
"expected_inline": "ellipse(10% 20%)",
"expected_computed": "ellipse(10% 20%)"
},
{
"actual": "ellipse(+30% 40%)",
"expected_inline": "ellipse(30% 40%)",
"expected_computed": "ellipse(30% 40%)"
},
{
"actual": "ellipse(+50% +60%)",
"expected_inline": "ellipse(50% 60%)",
"expected_computed": "ellipse(50% 60%)"
},
{
"actual": "ellipse(+10.00% +20.230%)",
"expected_inline": "ellipse(10% 20.23%)",
"expected_computed": "ellipse(10% 20.23%)"
},
{
"actual": "ellipse(+30.00% 40.567%)",
"expected_inline": "ellipse(30% 40.567%)",
"expected_computed": "ellipse(30% 40.567%)"
},
{
"actual": "ellipse(50.10% +60.7%)",
"expected_inline": "ellipse(50.1% 60.7%)",
"expected_computed": "ellipse(50.1% 60.7%)"
},
{
"actual": "ellipse(+10px +20px at 50% 50%)",
"expected_inline": "ellipse(10px 20px at 50% 50%)",
"expected_computed": "ellipse(10px 20px at 50% 50%)"
},
{
"actual": "ellipse(+30px 40px)",
"actual": "ellipse(+30px 40px at 50% 50%)",
"expected_inline": "ellipse(30px 40px at 50% 50%)",
"expected_computed": "ellipse(30px 40px at 50% 50%)"
},
{
"actual": "ellipse(50px +60px)",
"actual": "ellipse(50px +60px at 50% 50%)",
"expected_inline": "ellipse(50px 60px at 50% 50%)",
"expected_computed": "ellipse(50px 60px at 50% 50%)"
},
{
"actual": "ellipse(+10.00px +20.230px)",
"actual": "ellipse(+10.00px +20.230px at 50% 50%)",
"expected_inline": "ellipse(10px 20.23px at 50% 50%)",
"expected_computed": "ellipse(10px 20.23px at 50% 50%)"
},
{
"actual": "ellipse(+30.00px 40.567px)",
"actual": "ellipse(+30.00px 40.567px at 50% 50%)",
"expected_inline": "ellipse(30px 40.567px at 50% 50%)",
"expected_computed": "ellipse(30px 40.567px at 50% 50%)"
},
{
"actual": "ellipse(50.10px +60.7px)",
"actual": "ellipse(50.10px +60.7px at 50% 50%)",
"expected_inline": "ellipse(50.1px 60.7px at 50% 50%)",
"expected_computed": "ellipse(50.1px 60.7px at 50% 50%)"
},
{
"actual": "ellipse(+10% +20%)",
"actual": "ellipse(+10% +20% at 50% 50%)",
"expected_inline": "ellipse(10% 20% at 50% 50%)",
"expected_computed": "ellipse(10% 20% at 50% 50%)"
},
{
"actual": "ellipse(+30% 40%)",
"actual": "ellipse(+30% 40% at 50% 50%)",
"expected_inline": "ellipse(30% 40% at 50% 50%)",
"expected_computed": "ellipse(30% 40% at 50% 50%)"
},
{
"actual": "ellipse(+50% +60%)",
"actual": "ellipse(+50% +60% at 50% 50%)",
"expected_inline": "ellipse(50% 60% at 50% 50%)",
"expected_computed": "ellipse(50% 60% at 50% 50%)"
},
{
"actual": "ellipse(+10.00% +20.230%)",
"actual": "ellipse(+10.00% +20.230% at 50% 50%)",
"expected_inline": "ellipse(10% 20.23% at 50% 50%)",
"expected_computed": "ellipse(10% 20.23% at 50% 50%)"
},
{
"actual": "ellipse(+30.00% 40.567%)",
"actual": "ellipse(+30.00% 40.567% at 50% 50%)",
"expected_inline": "ellipse(30% 40.567% at 50% 50%)",
"expected_computed": "ellipse(30% 40.567% at 50% 50%)"
},
{
"actual": "ellipse(50.10% +60.7%)",
"actual": "ellipse(50.10% +60.7% at 50% 50%)",
"expected_inline": "ellipse(50.1% 60.7% at 50% 50%)",
"expected_computed": "ellipse(50.1% 60.7% at 50% 50%)"
}

View file

@ -21,7 +21,7 @@
var ellipse_calc_tests = [];
var defaultPosition = ' at 50% 50%';
ParsingUtils.calcTestValues.forEach(function(value) {
testCase = ['ellipse(farthest-side '+ value[0] +')',
testCase = ['ellipse(farthest-side '+ value[0] + defaultPosition + ')',
'ellipse(farthest-side '+ value[1] + defaultPosition +')'];
if(Object.prototype.toString.call( value[2] ) === '[object Array]' && value[2].length == 2) {
testCase.push([
@ -34,7 +34,7 @@
ellipse_calc_tests.push(testCase);
});
ParsingUtils.calcTestValues.forEach(function(value) {
testCase = ['ellipse('+ value[0] +' '+ value[0] +')',
testCase = ['ellipse('+ value[0] +' '+ value[0] + defaultPosition + ')',
'ellipse('+ value[1] +' '+ value[1] + defaultPosition +')'];
if(Object.prototype.toString.call( value[2] ) === '[object Array]' && value[2].length == 2) {
testCase.push([

View file

@ -735,31 +735,54 @@ var invalidPositions = [
// valid radii values for circle + ellipse
// [value, expected_inline, [expected_computed?]]
var validCircleRadii = [
['', 'at 50% 50%', 'at 50% 50%'],
['50u1', '50u1 at 50% 50%'],
['50%', '50% at 50% 50%'],
['closest-side', 'at 50% 50%'],
['farthest-side', 'farthest-side at 50% 50%']
['at 50% 50%', 'at 50% 50%'],
['50u1 at 50% 50%', '50u1 at 50% 50%'],
['50% at 50% 50%', '50% at 50% 50%'],
['closest-side at 50% 50%', 'at 50% 50%'],
['farthest-side at 50% 50%', 'farthest-side at 50% 50%'],
['', ''],
['50u1', '50u1'],
['50%', '50%'],
['closest-side', ''],
['farthest-side', 'farthest-side']
]
var validEllipseRadii = [
['', 'at 50% 50%', 'at 50% 50%'],
['50u1 100u1', '50u1 100u1 at 50% 50%'],
['100u1 100px', '100u1 100px at 50% 50%'],
['25% 50%', '25% 50% at 50% 50%'],
['50u1 25%', '50u1 25% at 50% 50%'],
['25% 50u1', '25% 50u1 at 50% 50%'],
['25% closest-side', '25% closest-side at 50% 50%'],
['25u1 closest-side', '25u1 closest-side at 50% 50%'],
['closest-side 75%', 'closest-side 75% at 50% 50%'],
['closest-side 75u1', 'closest-side 75u1 at 50% 50%'],
['25% farthest-side', '25% farthest-side at 50% 50%'],
['25u1 farthest-side', '25u1 farthest-side at 50% 50%'],
['farthest-side 75%', 'farthest-side 75% at 50% 50%'],
['farthest-side 75u1', 'farthest-side 75u1 at 50% 50%'],
['closest-side closest-side', 'at 50% 50%'],
['farthest-side farthest-side', 'farthest-side farthest-side at 50% 50%'],
['closest-side farthest-side', 'closest-side farthest-side at 50% 50%'],
['farthest-side closest-side', 'farthest-side closest-side at 50% 50%']
['at 50% 50%', 'at 50% 50%', 'at 50% 50%'],
['50u1 100u1 at 50% 50%', '50u1 100u1 at 50% 50%'],
['100u1 100px at 50% 50%', '100u1 100px at 50% 50%'],
['25% 50% at 50% 50%', '25% 50% at 50% 50%'],
['50u1 25% at 50% 50%', '50u1 25% at 50% 50%'],
['25% 50u1 at 50% 50%', '25% 50u1 at 50% 50%'],
['25% closest-side at 50% 50%', '25% closest-side at 50% 50%'],
['25u1 closest-side at 50% 50%', '25u1 closest-side at 50% 50%'],
['closest-side 75% at 50% 50%', 'closest-side 75% at 50% 50%'],
['closest-side 75u1 at 50% 50%', 'closest-side 75u1 at 50% 50%'],
['25% farthest-side at 50% 50%', '25% farthest-side at 50% 50%'],
['25u1 farthest-side at 50% 50%', '25u1 farthest-side at 50% 50%'],
['farthest-side 75% at 50% 50%', 'farthest-side 75% at 50% 50%'],
['farthest-side 75u1 at 50% 50%', 'farthest-side 75u1 at 50% 50%'],
['closest-side closest-side at 50% 50%', 'at 50% 50%'],
['farthest-side farthest-side at 50% 50%', 'farthest-side farthest-side at 50% 50%'],
['closest-side farthest-side at 50% 50%', 'closest-side farthest-side at 50% 50%'],
['farthest-side closest-side at 50% 50%', 'farthest-side closest-side at 50% 50%'],
['', ''],
['50u1 100u1', '50u1 100u1'],
['100u1 100px', '100u1 100px'],
['25% 50%', '25% 50%'],
['50u1 25%', '50u1 25%'],
['25% 50u1', '25% 50u1'],
['25% closest-side', '25% closest-side'],
['25u1 closest-side', '25u1 closest-side'],
['closest-side 75%', 'closest-side 75%'],
['closest-side 75u1', 'closest-side 75u1'],
['25% farthest-side', '25% farthest-side'],
['25u1 farthest-side', '25u1 farthest-side'],
['farthest-side 75%', 'farthest-side 75%'],
['farthest-side 75u1', 'farthest-side 75u1'],
['closest-side closest-side', ''],
['farthest-side farthest-side', 'farthest-side farthest-side'],
['closest-side farthest-side', 'closest-side farthest-side'],
['farthest-side closest-side', 'farthest-side closest-side']
]
var validInsets = [

Some files were not shown because too many files have changed in this diff Show more