From 43a97878ce14b72f0981164f87f2e35e14151312 Mon Sep 17 00:00:00 2001
From: Daniel Baumann
+ This document is intended to be used as a guideline for the testing
+ activities related to the CSS Shapes Level 1 spec [[!css-shapes-1]]. Its main
+ goal is to provide an overview of the general testing areas, possible
+ caveats and testing aspects not immediately apparent from the spec.
+ Also, it provides a means of tracking the progress of the CSS Shapes
+ spec testing.
+
+ This document is not meant to replace the spec in determining the
+ normative and non-normative assertions to be tested, but rather
+ complement it.
+
+ To ensure a comprehensive test suite with useful, high quality tests, a
+ number of goals are proposed. They range from process goals (how to
+ conduct testing) to implementation goals (how to write good tests).
+
+ An important vector in successfully testing CSS Shapes is to
+ enable easy test contributions, both from W3C partners and from
+ non-W3C members that wish to contribute. This is achieved by clearly
+ marking and explaining the areas that need testing, linking to existing
+ tests, and general testing progress.
+
+ In order to increase the quality of the test contributions, this
+ document offers a set of guidelines for conducting testing (see
+ ) and a testing progress
+ tracker to increase the surface coverage of tests (see
+ ).
+
+ In terms of actual tests produced for the CSS Shapes specification, the main goal
+ is to ensure that most tests are automatable (i.e. they're either
+ reftests or use
+ Since the CSS Shapes Level 1 spec introduces only three new CSS properties,
+ the approach is to deep dive into every aspect of the spec as much as possible.
+
+ Tests will be created for the testing areas listed in .
+
+ These are testing areas normatively defined by the spec. They cover
+ things explicitly or implicitly defined in the CSS Shapes spec.
+ Please note that while detailed, this list is not necessarily
+ exhaustive and normative behaviors may not be contained in it.
+ When in doubt, consult the CSS Shapes spec or ask a question on the
+ mailing
+ list.
+
+
+ Note: For all of the tests below, where length parameters are tested,
+ the supported <length>
+ units defined in the CSS Values & Units [[!CSS3VAL]] specification, but not all permutations will not be
+ tested. Instead, a sampling of these units will be used across the parsing and layout tests.
+
+ These are testing areas either normatively defined in other specs
+ that are explicitly referred to in the CSS Shapes spec. Additionally, the
+ CSS Shapes spec is explicitly referred to by other specs. Please note that
+ while detailed, this list is not necessarily exhaustive and normative behaviors
+ may not be contained in it. When in doubt, consult the CSS Regions spec or ask
+ a question on the mailing list.
+
+ Below is the list of implicit testing areas:
+ Goals
+ Enabling easy test contribution
+ Providing guidance on testing
+ Creating automation-friendly tests
+ testharness.js
). Even where manual tests
+ are absolutely necessary they should be written so that they can be
+ easily automated – as there are ongoing efforts to make
+ WebDriver [[webdriver]] automated tests a first class citizen in W3C
+ testing. This means that even if a manual test requires user
+ interaction, the validation or PASS/FAIL conditions should still be
+ clear enough as to allow automatic validation if said interaction is
+ later automated.
+ Approach
+ Testing areas
+ Explicit testing areas
+ Proper parsing of the CSS properties and values according to the spec
+
+
+
+ shape-outside
+
+
+ <basic-shape>
+
+
inset()
+
+
+ round
keyword
+
+
+ <border-radius>
+
+
+ circle()
+
+
+ <shape-radius>
+
+
+ closest-side, farthest-side
keywordsat
keyword
+
+
+ <position>
+
+
+ top, left, bottom, right
keywordsellipse()
+
+
+ <shape-radius>
+
+
+ at <position>
tests listed above for circle()polygon()
+ <shape-arg>
's
+
+
+ <fill-rule>
+
+
+ not specified (default: nonzero)
nonzero
evenodd
<box>
+
+
+ margin-box
border-box
padding-box
content-box
<basic-shape> + <box>
+
+
+ <image>
shape-margin
+
+
+ shape-image-threshold
+
+
+ Proper serialization of the CSS properties and values according to the spec
+
+
+ <position>
values in circle
and ellipse
serialize to 2- and 4-value forms
+
+
+ top, left, bottom, right
serialize to percentagesinset
serialized shape-args omit args when possible<round>
values in inset
serialize to as few as possible<fill-rule>
serializes nonzero
Proper computed values of the CSS properties and values according to the spec
+
+
+ Proper rendering & layout of text around shapes according to the spec
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implicit testing areas
+
+
+
When the CSS Shapes spec has a full suite of tests covering the behaviors defined in the spec, + additional tests will be needed to assure that the implementation works properly with other + CSS features defined in other specifications. +
+Below is a list of features that should work properly with CSS Shapes:
++ Below is a list of people you should reach out to if you have any + questions related to this document or testing CSS Shapes in general: +
+ Currently test progress tracking is done via gitHub + milestones + and issues. + +
+