)]]
This info is here for developers only. If you don't understand it, it's not for you.
[[html(
)]]
[[TOC(heading= ,inline)]]
[[BR]]
[[BR]]
== !TestScenarios ==
some ideas about how to test UPnP setups, a bit more structured at the moment,[[BR]]
at this stage focused on UPnP A/V !ControlPoints, !MediaServers and !MediaRenderers
=== Discovery: ===
* do we receive NOTIFY messages from all devices/services: root device, uuid, device and services?
* d embedded devices, s embedded services, k service types --> 3+2d+k NOTIFY broadcasts
* did we receive all service notifications necessary for a certain device type?
* e.g. MS needs to propagate at least information about a !ContentDirectory and a !ContentManager
* check if alive notifications are scheduled and sent within a reasonable time?
* CACHE-CONTROL value
* does the renewing alive notification arrive before the old one times out?
* are the notifications correct: all fields, reasonable values?
* NOTIFY HTTP header
* do we receive responses to a M-SEARCH request from all devices?
* do we receive M-SEARCH requests from a devices we havn't got a notification before?
* do we receive a response to a M-SEARCH ssdp:all request for a device we havn't got a notification before?
* do known devices respond to M-SEARCH requests?
* are the M-SEARCH responses correct?
* does a CP send M-SEARCH requests in a certain interval, not only just once?
* does a device answer with a 412 error if the M-SEARCH request isn't correct?
* if we send a byebye, do we still get messages like Action requests or Event messages?
=== Description ===
* are all the propagated device and service descriptions accessible?
* reasonable XML (valid against the XML Schema)?
* are the device and service descriptions correct: all fields, reasonable values, naming conventions?
* can we retrieve all service descriptions (and do we get all state variables) necessary for a certain device type?
* does a service provide all necessary actions and variables?
* if a custom device/service is used, does the description comply to a given XML Schema?
=== Control ===
* does it respond to all propagated actions?
* are the responses correct for correct requests?
* do we get a reasonable and well-formed error for an incorrect request?
* are the requests from the device correct?
* does it handle errors or incorrect responses from us?
* do we get a corresponding ConnectionComplete request for a PrepareForConnection like the specs claim?
=== Eventing ===
* can we subscribe to events?
* do we get events within our subscription time?
* are the events correct: all fields, reasonable values?
* are there missing SEQs?
* is the new SEQ an increment of the old one?
* what happens, if we continue to send with the same SEQ?
* do we still get events even if we haven't renewed the subscription?
* does a remote device subscribe to our events?
* do we get the renewal of its subscription in time?
* if we send out an UNSUBSCRIBE notification, do we still get Event messages?
=== Presentation ===
* if a presentation url is given in the device description, is it accessible?
* is it valid (X)HTML?