AtomAPI Test cases
Question: What do you get when you take a protocol which is infinitely extensible, consists predominantly of optional elements, and all the implementations are liberal in what they consume?
Answer: an interoperability nightmare. One in which running code trumps specs. This can't be completely avoided, but can be mitigated by clear specifications and the existance of compliance test suites.
What Atom will contain is a completely voluntary test suite on the internet for validating implementations. Furthermore, this test suite can be downloaded and run on your own private network.
Kicking this off
AtomApiTestPost is an attempt to specify how each of the atom entry elements are to be validated and interpreted on a POST. Once this is complete, this will be repeated for PUT (expected to be substantially similar), and DELETE (not much will need to be said there). Other tests will be created to ensure consistent handling of such things as unicode characters, namespaces, and data formats.
Note: while the AtomAPI shares the same element names as Atom feeds, it has a different set of validity rules. As an example, as the server is expected to record the modification times, this data is present in syndication feeds but must NOT be present in POST requests.