Outline of test cases intended to be produced for the Feed Validator. Section numbers are based on draft-ietf-atompub-format-10.txt.
Contents
-
1. Introduction
-
2. Atom Documents
-
3. Common Atom Constructs
-
4. Atom Element Definitions
-
4.1 Container Elements
-
4.2 Metadata Elements
-
4.2.1 The "atom:author" Element
-
4.2.2 The "atom:category" Element
-
4.2.3 The "atom:contributor" Element
-
4.2.4 The "atom:generator" Element
-
4.2.5 The "atom:icon" Element
-
4.2.6 The "atom:id" Element
-
4.2.7 The "atom:link" Element
-
4.2.8 The "atom:logo" Element
-
4.2.9 The "atom:published" Element
-
4.2.10 The "atom:rights" Element
-
4.2.11 The "atom:source" Element
-
4.2.12 The "atom:subtitle" Element
-
4.2.13 The "atom:summary" Element
-
4.2.14 The "atom:title" Element
-
4.2.15 The "atom:updated" Element
-
5 Securing Atom Documents
-
6 Extending Atom
-
7. IANA Considerations
-
8. Security Considerations
-
9. References
-
9.1 Normative References
-
9.2 Informative References
-
. Brief example produces no errors
-
. More extensive example produces no errors
-
. More extensive example produces no warnings
-
. Brief example without the namespace declaration produces an error
-
. Brief example with the wrong namespace declaration produces an error
-
. Extracting the entry from the brief example produces no error
-
. Adding xml:lang produces no error
-
. An invalid xml:lang value produces an error
-
. Adding xml:base produces no error
-
. An invalid xml:base value produces an error
-
. Summary with a type other than text, html, or xhtml produces an error
3.1.1.2
-
. Summary with a type of text but appears to include escaped html produces a warning
3.1.1.3
-
. Summary with a type of html but with an unmatched angle bracked produces an error
3.1.1.4
-
. Summary with a type of xhtml needs to include an xhtml:div
-
. contributor without an atom:name produces an error
-
. contributor with multiple atom:name elements produces an error
-
. contributor with multiple atom:uris produces an error
-
. contributor with an atom:uri that is not a valid IRI reference produces an error
-
. contributor with an atom:uri that is a relative IRI reference produce no error
-
. contributor with multiple atom:emails produces an eror
-
. contributor with an atom:email that does not comform to the addr-spec production in RFC822 produces an error
-
<updated>2003-12-13T18:30:02Z</updated> produces no error
-
. <updated>2003-12-13T18:30:02.25Z</updated> produces no error
-
. <updated>2003-12-13T18:30:02+01:00</updated> produces no error
-
. <updated>2003-12-13T18:30:02.25+01:00</updated> produces no error
-
. lowercase <updated>2003-12-13t18:30:02z</updated> produce an error
-
. two entries with the same timestamp produces a warning
-
Question: Even if the atom:ids are different? (yes, the point of this non-normative text (contrast with SHOULD in 4.1.1) was to shield aggregator authors in arguments with folks who don't actually have timestamp code backing their feed, and apply the same date to every entry. Raised by Graham, who's had the misfortune of having these arguments.).
-
. a feed with zero entries produces no error
-
. a feed with metadata after the first entry produces an error
-
. a feed with one entry, both of which contains an atom:author element produces no error
-
. a feed with one entry, which contains an atom:author element only at the feed level produces no error
-
. a feed with one entry, which contains an atom:author element only at the entry level produces no error
-
. a feed with one entry, neither of which contains an atom:author element produces an error
-
. a feed with two atom:author elements produces no error
-
. a feed with two atom:category elements produces no error
-
. a feed with two atom:contributor elements produces no error
-
. a feed with two atom:generator elements produces an error
-
. a feed with two atom:icon elements produces an error
-
. a feed with zero atom:id elements produces an error
-
. a feed with two atom:id elements produces an error
-
. a feed without an atom:link element with a rel attribute value of "self" produces a warning
-
. a feed with two atom:link elements with a rel attribute value of "alternate" and with the same type and hreflang attribute value produces an error
-
. a feed with two one atom:link elements with a rel attribute value of "alternate", but with different type and hreflang attribute value produces no error
-
. a feed with an atom:link with a rel attribute value specifying an unrecognized fully qualified IRI produces no error
-
. a feed with two atom:logo elements produces an error
-
. a feed with two atom:rights elements produces an error
-
. a feed with two atom:subtitle elements produces an error
-
. a feed with zero atom:title elements produces an error
-
. a feed with two atom:title elements produces an error
-
. a feed with zero atom:updated elements produces an error
-
. a feed with two atom:updated elements produces an error
-
. a feed with two atom:entry elements with the same atom:id and same atom:updated values produces a warning.
-
. a feed with zero entries and no atom:author element produces an error
4.1.1.1
-
. an entry with an empty atom:title produces a warning
-
. an entry with an empty atom:content element produces a warning
-
. an entry with no atom:content and an empty atom:summary produces a warning
-
. a bare entry (i.e., with no enclosing feed) with no immediate atom:author children, but with an atom:source element containing an atom:author element produces no error.
-
. an entry with multiple atom:category elements produces no error
-
. an entry with multiple atom:content elements produces an error
-
. an entry with multiple atom:contributor elements produces no error
-
. an entry with zero atom:id elements produces an error
-
. an entry with two atom:id elements produces an error
-
. en entry with an atom:content element but no atom:link element with a rel attribute value of "alternate" produces no error
-
. an entry with an atom:link element with a rel attribute value of "alternate" but no atom:content element produces no error
-
. an entry with neither an atom:link element with a rel attribute value of "alternate" nor an atom:content element produces an error
-
. an entry with two atom:link elements with a rel attribute value of "alternate" that has the same type and no hreflang attribute values produces an error.
-
. an entry with two atom:link elements with a rel attribute value of "alternate" that has the same type and hreflang attribute values produces an error.
-
. an entry with two atom:link elements with a rel attribute value of "alternate" that has the same type but differing hreflang attribute values produces no error.
-
. an entry with two atom:link elements with a rel attribute value of "alternate" that has the differing types produces no error.
-
. an entry with an atom:link with a rel attribute value specifying an unrecognized fully qualified IRI produces no error
-
. an entry with two atom:published elements produces an error
-
. an entry with two atom:rights elements produces an error
-
. an entry with two atom:source elements produces an error
-
. an entry with an atom:summary and an atom:content that has a "src" attribute produces no error
-
. an entry with an atom:content that has a "src" attribute but with no summary produces an error
-
. an entry contains content that is encoded in Base64 with a summary produces no error
-
. an entry contains content that is encoded in Base64 but without a summary produces an error
-
. an entry with two atom:summary elements produces an error
-
. an entry with zero atom:title elements produces an error
-
. an entry with two atom:title elements produces an error
-
. an entry with zero atom:updated elements produces an error
-
. an entry with two atom:updated elements produces an error
-
. content with "type" of "text" produces no error
-
. content with "type" of "html" produces no error
-
. content with "type" of "xhtml" produces no error
-
. content with "type" of "xml" produces an error
-
. content with a valid non-composite mime type produces no error
-
. content with a valid composite mime type produces an error
-
content with a non-registered mime type produces a warning (spec says "value MUST conform to the syntax of a MIME media type")
4.1.3.2
-
. content with a "src" attribute that is not a valid IRI reference produces an error
-
. content with a "src" attribute that is a relative IRI reference produce no error
-
. content with a "src" attribute and text content produces an error
-
. content with a "src" attribute and child elements produces an error
-
. content with a "src" attribute and no "type" attribute produces a warning
-
. content with a "src" attribute and a "type" attribute of text produces an error
-
. content with a "src" attribute and a "type" attribute of html produces an error
-
. content with a "src" attribute and a "type" attribute of xhtml produces an error
4.1.3.3
-
. content with no "type" attribute and children elements produces an error
-
. content with no "type" attribute and a value containing escaped html produces a warning
-
. content with a "type" of "text" and children elements produces an error
-
. content with a "type" of "html" and children elements produces an error
-
. content with a "type" of "xhtml" and an immediate child elements other than xhtml:div produces an error
-
. content with a "type" of "xhtml" and child text nodes produces an error
-
. content with a "type" of "application/svg+xml" containing an svg document produces no error
-
. content with a "type" of "application/svg+xml" and mixed text and element values as children produces an error
-
. content with a "type" of "text/plain" and children elements produces an error
-
. content with a "type" of "image/jpeg" and a value that is not valid base64 produces an error
-
. content with a "type" of "image/jpeg" and a value that is valid base64 produces no error
-
. category without a "term" attribute produces an error
-
. category without a "scheme" produces no error
-
. category with a "scheme" attribute that is not a valid IRI produces an error
-
. category without a "label" produces no error
-
. category with a "label" that appears to contain escaped HTML produces a warning
-
. generator without text produces a warning
-
Note: this is not explicit in the specification
-
. generator with text that appears to contain escaped HTML produces a warning
-
. generator with child elements produces an error
-
. generator with a uri that is not a valid IRI reference produces an error
-
. generator with a uri that is a relative IRI reference produce no error
-
. icon with content that is not a valid IRI reference produces an error
-
. icon with content that is a relative IRI reference produce no error
-
icon which, when fetched, contains an image where the height and width differs by more than 20% produces a warning
-
Note: this check will only be performed on machines where PIL is installed
-
. id which is not an IRI produces an error
-
. id which is a relative IRI produces an error
-
. id with a scheme in uppercase characters produces a warning
-
. id with a host in uppercase characters produces a warning
-
. id with percent-encoding unnecessarily (example: tilde) produces a warning
-
. id with percent-encoding using lowercase characters produces a warning
-
. id with dot-segments appearing in path produces a warning
-
. id with an explicit authority equivalent to the default produces a warning
-
. id with an empty path for schemes like http produces a warning
-
. id whith an explicitly specified default port produces a warning
-
. id with an empty fragment identifier produces no warning
-
. id with an empty query produces no warning
-
id which is not "apppropriately" normalized produce a warning
-
Question: is this testable?
-
. Valid Tag URIs produce no error
-
. link without a "href" attribute produces an error
-
. link with a "href" attribute that is not a valid IRI reference produces an error
-
. link with a "href" attribute that is a relative IRI reference produce no error
4.2.7.2
-
. link with a "rel" which is an absolute IRI produces no error
-
. link with a "rel" which matches isegment-nz-nc produces no error
-
. link with a "rel" which is a relative IRI but not a isegment-nz-nc produces an error
-
. link with a "rel" which matches isegment-nz-nc but is not in the IANA registry produces an error
-
link with a "rel" with a value of "enclosure" and no "length" attribute produces a warning
4.2.7.3
-
. link with a "type" attribute which does not match the syntax of a MIME media type produces an error
-
link with a "type" attribute which does not match a registered MIME media type produces a warning
-
link with a "type" attribute which does not match the actual MIME type of the resource produces a warning
-
Note: requires network access
4.2.7.4
-
. link with a "hreflang" attribute that is not a language tag produces an error
4.2.7.5
-
. link with a "title" attribute which appears to contain HTML produces a warning
4.2.7.6
-
. link with a "length" attribute which is not a positive integer produces an error
-
link with a "length" attribute which does not match the actual length of the resource produces a warning
-
Note: requires network access
-
. logo with content that is not a valid IRI reference produces an error
-
. logo with content that is a relative IRI reference produce no error
-
logo which, when fetched, contains an image where the height and width differs from a ratio of 1:2 by more than 20% produces a warning
-
Note: this check will only be performed on machines where PIL is installed
-
. published with content that does not conform to the "date-time" production in [RFC3339] produces an error
-
. rights with a type other than text, html, or xhtml produces an error
-
. rights with a type of text but appears to include escaped html produces a warning
-
. rights with a type of xhtml needs to include an xhtml:div
-
. a source with two atom:author elements produces no error
-
. a source with two atom:category elements produces no error
-
. a source with two atom:contributor elements produces no error
-
. a source with two atom:generator elements produces an error
-
. a source with two atom:icon elements produces an error
-
. a source with zero atom:id elements produces a warning
-
. a source with two atom:id elements produces an error
-
. a source with two atom:link elements with a rel attribute value of "alternate" with the same type and hreflang attribute value produces an error
-
. a source with two one atom:link elements with a rel attribute value of "alternate", but with different type and hreflang attribute values produces no error
-
. a source with two atom:logo elements produces an error
-
. a source with two atom:rights elements produces an error
-
. a source with two atom:subtitle elements produces an error
-
. a source with zero atom:title elements produces a warning
-
. a source with two atom:title elements produces an error
-
. a source with zero atom:updated elements produces a warning
-
. a source with two atom:updated elements produces an error
-
. a source with an atom:entry element produces an error
-
. a subtitle that is blank produces a warning
-
Note: this is not explicit in the specification
-
an entry with the same value for atom:title and atom:summary produces a warning
-
an entry with the same value for atom:content and atom:summary produces a warning
-
. a title that is blank produces a warning
-
Note: this is not explicit in the specification
-
. updated with content that does not conform to the "date-time" production in [RFC3339] produces an error
-
an element with the namespace URI "http://www.w3.org/2000/09/xmldsig#" and a local name of "Signature" as a child of the document element produces no error
-
an element with the namespace URI "http://www.w3.org/2000/09/xmldsig#" and a local name of "Signature" as a child of an entry in a feed produces no error
-
an element with the namespace URI "http://www.w3.org/2000/09/xmldsig#" and a local name of "Signature" as a child of an atom:author element produces an error
-
ds:Transform or ds:CanonicalizationMethod with @Algorithm other than "http://www.w3.org/2001/10/xml-exc-c14n#" produces a warning
-
Note: this will be covered by test cases for specific extensions (like dc)
6.1
Trackback
-
. Trackback ping for an entry produces no error
-
. Trackback about for an entry produces no error
-
. Trackback ping for a feed is an error