[css-variables] testsuite status and interoperability
I took an action item (Tracker, this is ACTION-785) to look at the
Variables testsuite and evaluate its readiness for us moving the spec
The short answer is no, it's not ready, and we maybe don't have
sufficient interop to want to do so.
The long answer:
We have decent tests from Mozilla for most of the spec.
What we don't have good coverage for is usage of url() in variables
(Chrome fails to resolve relative URLs in that case), serialisation
of values (Chrome does crazy stuff—though do we actually spec this?
all I can see is §4.1 defining how the property name is serialised?),
and tests that ensure substitution is done at a token level (Firefox
doesn't do this).
I'd say these are all things we should definitely have tests for,
though obviously others are free to disagree! I think the only one of
these we don't have two passing implementations for is the
serialisation of values.
Quickly running Chrome's tests against Safari and Firefox shows up a
few bugs in Safari (I don't know how many of the current testsuite
Safari fails given the test harness makes it hard to tell such things
given the conflation of Blink and WebKit…) and none in Firefox. They
are, however, far more fragile than what we current have as they rely
heavily on getComputedValue including in cases where we don't have
interop in the general case. A quick glance at their source doesn't
make me think they'd add much to what we already have, but it might be
worth taking a closer look.
That all said, it shouldn't take long to make sure we have enough
tests to leave CR, and hopefully we have sufficient interop for it.