1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/dom/workers/test/xhr_headers_server.sjs Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,51 @@ 1.4 +/** 1.5 + * Any copyright is dedicated to the Public Domain. 1.6 + * http://creativecommons.org/publicdomain/zero/1.0/ 1.7 + */ 1.8 +"use strict"; 1.9 + 1.10 +function handleRequest(request, response) { 1.11 + switch (request.method) { 1.12 + case "POST": 1.13 + try { 1.14 + var optionsHost = request.getHeader("options-host"); 1.15 + } catch(e) { } 1.16 + 1.17 + if (optionsHost) { 1.18 + setState("postHost", request.host); 1.19 + setState("optionsHost", optionsHost); 1.20 + return; 1.21 + } 1.22 + break; 1.23 + 1.24 + case "OPTIONS": 1.25 + if (getState("optionsHost") == request.host) { 1.26 + try { 1.27 + var optionsHeader = 1.28 + request.getHeader("Access-Control-Request-Headers"); 1.29 + } catch(e) { } 1.30 + setState("optionsHeader", "'" + optionsHeader + "'"); 1.31 + } 1.32 + break; 1.33 + 1.34 + case "GET": 1.35 + response.setHeader("Cache-Control", "no-cache", false); 1.36 + response.setHeader("Content-Type", "text/plain", false); 1.37 + 1.38 + if (getState("postHost") == request.host) { 1.39 + var result = getState("optionsHeader"); 1.40 + if (result) { 1.41 + response.write("Success: expected OPTIONS request with " + result + 1.42 + " header"); 1.43 + } else if (getState("badGet") == 1) { 1.44 + response.write("Error: unexpected GET request"); 1.45 + } 1.46 + } else { 1.47 + setState("badGet", "1"); 1.48 + response.write("Error: this response should never be seen"); 1.49 + } 1.50 + return; 1.51 + } 1.52 + 1.53 + response.setStatusLine(request.httpVersion, 501, "Not Implemented"); 1.54 +}