- From: fantasai <fantasai.lists@inkedblade.net>
- Date: Wed, 28 Jan 2009 12:31:38 -0800
- To: Anne van Kesteren <annevk@opera.com>
- CC: public-css-testsuite@w3.org
Anne van Kesteren wrote:
>
> On Mon, 13 Oct 2008 13:53:16 +0200, fantasai
> <fantasai.lists@inkedblade.net> wrote:
>> Thanks, Anne. Here are my comments:
>
> Thank you:
> http://dev.w3.org/CSS/css3-namespace-test-suite/
>> s/line/sentence/g;
>
> Done.
OK.
>> Also, you need to add
>> - tests that introduce various whitespace and comment patterns
>
> Done (basic tests, syntax-012.xml).
OK. syntax-012.xml looks good.
>> - tests for parsing failures within the @namespace rule (to make
>> sure the failure is detected, causes the rule to be ignored, and
>> doesn't affect anything outside the scope of the "ignore" behavior
>> for @rules).
>
> Done (syntax-013.xml, one test requires scripting). (Actually managed to
> find a bug here in at least Opera and Firefox. The @namespace rule in
> the style sheet '@namespace x "test' gets dropped rather than fixed up
> per the rules in CSS 2.1 section 4.2.)
You should probably split this into two tests, one for the end-of-stylesheet
error (that requires scripting) and one for other errors (that don't require
scripting). For the non-scripting test, add a few more tests:
- Space between @ and namespace, e.g. @ namespace "test";
- Missing end quote: @namespace "test;
- Missing end quote in url: @namespace url('test);
- Missing end-parens in url (should eat until close parens): @namespace url(test;
>> - tests for @namespace followed by an invalid @rule (both invalid
>> rules with known @keywords and rules with unknown @keywords)
>
> Done (syntax-014.xml).
The rule for t should use a prefix so that it is ignored if the @namespace
doesn't get parsed properly.
You probably also want the "test-wrong" declaration to have some
testable effect.
>> http://dev.w3.org/CSS/css3-namespace-test-suite/src/prefix-001.xml
>>
>> - Swap the order of the namespace declarations so that "x" wins
>> in case the UA is mapping both declarations to the same prefix.
>> (In this case neither background color will appear. Or you could
>> add a test
>> { background: red }
>> rule to make it red in such a case.)
>> - Add a rule
>> FOO|test { background: red; }
>> which tests an unbound prefix with the same case-insensitive
>> mapping as the correct bound prefix.
>
> Done.
r+
>> http://dev.w3.org/CSS/css3-namespace-test-suite/src/prefix-002.xml
>> http://dev.w3.org/CSS/css3-namespace-test-suite/src/prefix-003.xml
>>
>> - These two have the same title. Please add something to the title
>> to distinguish the two tests for when they are indexed in a TOC.
>
> Done.
Changed to add "(Implied element namespace)" and "(Explicit element namespace)"
in place of a number.
r+
>> http://dev.w3.org/CSS/css3-namespace-test-suite/src/prefix-005.xml
>>
>> - Put a rel="author" line for bz instead of a comment.
>> - I don't think "empty string default namespace" is an appropriate
>> title here. It's also a duplicate of the previous title. Please
>> choose something appropriately unique and descriptive.
>
> Done.
Changed to "No default namespace" since that seems to be what you're testing
as far as Namespaces is concerned...
r+
>> http://dev.w3.org/CSS/css3-namespace-test-suite/src/scope-001.xml
>>
>> - I would title this 'scope <style>' to be more precise
>
> Done.
r+
>> http://dev.w3.org/CSS/css3-namespace-test-suite/src/scope-002.xml
>>
>> - Shift the test { background: lime } up into a separate <style>
>> - Add an @namespace w declaration to the <style> with the @import
>> and a
>> w|test { background:red}
>> rule to the scope.css style sheet
>> - Add another @import with another external style sheet and add
>> y and z declarations/selectors to test crossing sibling @imports.
>
> Done, except that I did not add a z declaration/selector because that
> seemed unnecessary.
Ok. But you wrote
test|y { background:lime }
instead of
y|test { background: red }
I fixed it for you. Please verify that the test is now correct.
>> http://dev.w3.org/CSS/css3-namespace-test-suite/src/syntax-001.xml
>>
>> - This should perhaps be @namespace "string".
>
> Named it case-insensitivity instead.
r+
>> - You also should have corresponding tests with 'string' and url().
>> For url() syntax you need to test all three of double-quoted,
>> single-quoted, and unquoted url() syntax.
>
> Done. The new tests are now in syntax-005.xml.
r+
>> http://dev.w3.org/CSS/css3-namespace-test-suite/src/syntax-002.xml
>>
>> - Add a backslash before the 'p' and the 'N' in @NAmespace.
>> - Unicode-escape the A with six digits plus a space.
>
> Done.
r+
>> http://dev.w3.org/CSS/css3-namespace-test-suite/src/syntax-003.xml
>>
>> - The title should mention that this is a default namespace
>> declaration.
>> - Add corresponding tests with 'string' and "string".
>
> Done, also added url() and url('').
I think you meant to leave out the prefixes in all these @namespace
declarations?
r- because the test is meaningless as-is.
>> http://dev.w3.org/CSS/css3-namespace-test-suite/src/syntax-005.xml
>> http://dev.w3.org/CSS/css3-namespace-test-suite/src/syntax-006.xml
>>
>> - Apart from the escaped r, it seems -006 is merely a more complex
>> form of -005, i.e. aside from the escape -005's test is a subset
>> of -006. Was that the intent, or am I missing something here?
>> Because if so, I would suggest removing -005, it doesn't seem
>> necessary.
>
> -005 is now a new test.
Ok. Since syntax-006.xml is an invalid test, I've flagged it as invalid.
Also made the title a bit clearer. Please review these changes:
http://dev.w3.org/cvsweb/CSS/css3-namespace-test-suite/src/syntax-006.xml.diff?r1=1.2&r2=1.3&sortby=file
Also, the I would change the first @namespace declaration to use a prefix
and use that prefix instead of *, like this:
@namespace x u\00072l("test");
@import url("support/fail.css");
@namespace url("test2");
x|test { background:lime }
test { background:red }
This makes sure that the first @namespace is being processed correctly.
>> http://dev.w3.org/CSS/css3-namespace-test-suite/src/syntax-007.xml
>>
>> - This test is effectively the same as one with the @charset rule
>> replaced by @foo;, because @charset is not valid there. You need
>> to rewrite this test to use an external style sheet and place
>> the @charset rule at the start of the style sheet.
>
> Done.
The test is wrong. Because the @charset specifies an unknown encoding,
UAs are required to ignore the style sheet. Try specifying UTF-8.
>> http://dev.w3.org/CSS/css3-namespace-test-suite/src/syntax-008.xml
>>
>> - You should also test prefixes that start with an escaped
>> character that is not otherwise allowed in an identifier.
>> - You need to test escapes in both the @namespace declaration
>> and in the selector (but the escaping should not match).
>> - I'd mention escaping in the title since that's mainly what's
>> being tested here.
>
> Done.
r+
> On Mon, 13 Oct 2008 14:34:43 +0200, fantasai
> <fantasai.lists@inkedblade.net> wrote:
>> Other tests needed:
>>
>> "A URI string parsed from the URI syntax must be treated as a
>> literal string: as with the STRING syntax, no URI-specific
>> normalization is applied."
>>
>> So a couple good tests here would be
>> - comparing http://... in the source with HTTP://..., in the style
>> sheet
>> - comparing .com in the source with .COM in the style sheet
>> - comparing a straight URL with one that has URI (%) escapes in it
>>
>
> Done (syntax-011.xml).
Very good, except you forgot to use url() syntax. :)
>> "All strings—including the empty string and strings representing
>> invalid URIs—are valid namespace names in @namespace declarations."
>>
>> This can't be tested by matching because XML namespaces must be URIs,
>> but it can be tested by not-matching: overwriting a matching
>> @namespace
>> declaration with a non-matching one that has invalid URI characters
>> in it (like "<>" or something).
>
> The XML specification seems rather vague on whether that is an authoring
> or user agent requirement. Seems like a bug in XML. (I think user agents
> accept any string as namespace from some adhoc testing which meets my
> expectations.)
Yeah, but it's best if we write a test that will be accurate on both
types of systems. In any case, the validity of non-URI strings in CSS
needs a test. :)
>> "If a namespace prefix or default namespace is declared more than
>> once only the last declaration shall be used."
>>
>> Multiple declarations probably deserves its own explicit test.
>
> Done (syntax-010.xml).
r+
>> "The prefix of a qualified name may be omitted to indicate that the
>> name belongs to no namespace, i.e. that the namespace name part of
>> the expanded name has no value."
>>
>> Need a test for this one as well.
>
> Done (prefix-006.xml).
r+
>> "To form a qualified name in CSS syntax, a namespace prefix that
>> has been declared within scope is prepended to a local name (such
>> as an element or attribute name), separated by a "vertical bar"
>> (|, U+007C)."
>>
>> Should have a test that makes sure an escaped | is not recognized
>> as the namespace prefix separator.
>
> Done (syntax-009.xml).
r+
~fantasai
Received on Wednesday, 28 January 2009 20:32:20 UTC