=================
HTTPFactory tests
=================

This tests that httpfactory provide the right publication class,
for each request type, defined in the configure.zcml with publisher directive.

The publication class is chosen upon the method name,
the mime type and sometimes some request headers

A regular GET, POST or HEAD

  >>> from zope.app.wsgi.testlayer import http

  >>> print http(r"""
  ... GET / HTTP/1.1
  ... """)
  HTTP/1.0 200 OK
  Content-Length: ...
  Content-Type: text/html;charset=utf-8
  ...
  >>> print http(r"""
  ... POST / HTTP/1.1
  ... """)
  HTTP/1.0 200 OK
  Content-Length: ...
  Content-Type: text/html;charset=utf-8
  ...
  >>> print http(r"""
  ... HEAD / HTTP/1.1
  ... """)
  HTTP/1.0 200 OK
  Content-Length: 0
  Content-Type: text/html;charset=utf-8
  <BLANKLINE>

A text/xml POST request, wich is an xml-rpc call

  >>> print http(r"""
  ... POST /RPC2 HTTP/1.0
  ... Content-Type: text/xml
  ... """)
  HTTP/1.0 200 OK
  Content-Length: ...
  Content-Type: text/xml;charset=utf-8
  ...

A text/xml POST request, with a HTTP_SOAPACTION in the headers,
wich is an xml-rpc call:

TODO need to create a real SOAP exchange test here

  >>> print http(r"""
  ... POST /RPC2 HTTP/1.0
  ... Content-Type: text/xml
  ... HTTP_SOAPACTION: soap#action
  ... """)
  HTTP/1.0 200 OK
  Content-Length: ...
  Content-Type: text/xml;charset=utf-8
  ...

Unknown request types:

TODO need more testing here

  >>> print http(r"""
  ... POST /BUBA HTTP/1.0
  ... Content-Type: text/topnotch
  ... """)
  HTTP/1.0 404 Not Found
  ...

