Feature: Returning valid responses with various queries Scenario: User will get XML version if there is no Accept or format parameter Given URI /api exists And authentification is not required for this URI And client perform an HTTP request for this URI Then client should get valid XML response Scenario: User wants to get XML version of API using Accept header Given URI /api exists And authentification is not required for this URI When client use Accept header: | application/xml;q=0.9 | And client perform an HTTP request for this URI Then client should get valid XML response Scenario: User wants to get HTML version of API using Accept header Given URI /api exists And authentification is not required for this URI When client use Accept header: | application/xhtml+xml | And client perform an HTTP request for this URI Then client should get valid HTML response Scenario: User wants to get JSON version of API Given URI /api exists And authentification is not required for this URI When client use Accept header: | application/json;q=0.9 | And client perform an HTTP request for this URI Then client should get valid JSON response Scenario: User wants to get XML version of API with format parameter Given URI /api exists And authentification is not required for this URI When client use Accept header: | application/xhtml+xml;q=0.9 | And client accept this URI with parameters: | format | xml | And client perform an HTTP request for this URI Then client should get valid XML response Scenario: User wants to get JSON version of API with format parameter Given URI /api exists And authentification is not required for this URI When client use Accept header: | application/xhtml+html;q=0.9 | And client accept this URI with parameters: | format | json | And client perform an HTTP request for this URI Then client should get valid JSON response Scenario: User set Accept to json but force format to XML using format parameter Given URI /api exists And authentification is not required for this URI When client use Accept header: | application/json;q=0.9 | And client accept this URI with parameters: | format | xml | And client perform an HTTP request for this URI Then client should get valid XML response # Extensions are ignored, so this doesn't affect content-negotiation Scenario: User wants to get XML version of API with format parameter and set extension Given URI /api exists And authentification is not required for this URI When client wants to get URI '/api.xml' When client use Accept header: | application/xhtml+xml;q=0.9 | And client perform an HTTP request for this URI Then client should get valid HTML response