1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/layout/reftests/backgrounds/background-referrer.sjs Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,72 @@ 1.4 +const BinaryOutputStream = Components.Constructor("@mozilla.org/binaryoutputstream;1", "nsIBinaryOutputStream", "setOutputStream"); 1.5 + 1.6 +/* 1.7 +# Python used to generate the following byte array 1.8 +def toHex(n): 1.9 + if n < 16: return "0x" + hex(n)[2:].upper() 1.10 + return "0x" + hex(n)[2:].upper() 1.11 + 1.12 +def hexFile(name): 1.13 + f = open(name, "rb") 1.14 + try: 1.15 + while True: 1.16 + print toHex(ord(f.read(1))) + ", ", 1.17 + except: 1.18 + pass 1.19 + 1.20 +hexFile("layout/reftests/backgrounds/background-referrer-image.png") 1.21 +*/ 1.22 + 1.23 +const IMAGE_DATA = 1.24 + [ 1.25 + 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 0x00, 1.26 + 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 1.27 + 0x00, 0x64, 0x08, 0x02, 0x00, 0x00, 0x00, 0xFF, 0x80, 0x02, 0x03, 1.28 + 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, 0x47, 0x42, 0x00, 0xAE, 0xCE, 1.29 + 0x1C, 0xE9, 0x00, 0x00, 0x00, 0x9E, 0x49, 0x44, 0x41, 0x54, 0x78, 1.30 + 0xDA, 0xED, 0xD0, 0x31, 0x01, 0x00, 0x00, 0x08, 0x03, 0xA0, 0x69, 1.31 + 0xFF, 0xCE, 0x5A, 0xC1, 0xCF, 0x07, 0x22, 0x50, 0x99, 0x70, 0xD4, 1.32 + 0x0A, 0x64, 0xC9, 0x92, 0x25, 0x4B, 0x96, 0x2C, 0x05, 0xB2, 0x64, 1.33 + 0xC9, 0x92, 0x25, 0x4B, 0x96, 0x02, 0x59, 0xB2, 0x64, 0xC9, 0x92, 1.34 + 0x25, 0x4B, 0x81, 0x2C, 0x59, 0xB2, 0x64, 0xC9, 0x92, 0xA5, 0x40, 1.35 + 0x96, 0x2C, 0x59, 0xB2, 0x64, 0xC9, 0x52, 0x20, 0x4B, 0x96, 0x2C, 1.36 + 0x59, 0xB2, 0x64, 0x29, 0x90, 0x25, 0x4B, 0x96, 0x2C, 0x59, 0xB2, 1.37 + 0x14, 0xC8, 0x92, 0x25, 0x4B, 0x96, 0x2C, 0x59, 0x0A, 0x64, 0xC9, 1.38 + 0x92, 0x25, 0x4B, 0x96, 0x2C, 0x05, 0xB2, 0x64, 0xC9, 0x92, 0x25, 1.39 + 0x4B, 0x96, 0x02, 0x59, 0xB2, 0x64, 0xC9, 0x92, 0x25, 0x4B, 0x81, 1.40 + 0x2C, 0x59, 0xB2, 0x64, 0xC9, 0x92, 0xA5, 0x40, 0x96, 0x2C, 0x59, 1.41 + 0xB2, 0x64, 0xC9, 0x52, 0x20, 0x4B, 0x96, 0x2C, 0x59, 0xB2, 0x64, 1.42 + 0x29, 0x90, 0x25, 0x4B, 0x96, 0x2C, 0x59, 0xB2, 0x14, 0xC8, 0x92, 1.43 + 0x25, 0x4B, 0x96, 0x2C, 0x59, 0x0A, 0x64, 0xC9, 0xFA, 0xB6, 0x89, 1.44 + 0x5F, 0x01, 0xC7, 0x24, 0x83, 0xB2, 0x0C, 0x00, 0x00, 0x00, 0x00, 1.45 + 0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82, 1.46 + ]; 1.47 + 1.48 +function handleRequest(request, response) 1.49 +{ 1.50 + response.setHeader("Content-Type", "text/plain", false); 1.51 + response.setHeader("Cache-Control", "no-cache", false); 1.52 + 1.53 + var referrer = request.hasHeader("Referer") ? 1.54 + request.getHeader("Referer") : ""; 1.55 + 1.56 + // Test url looks like: 1.57 + // http://localhost:port/timestamp/number/background-referrer.html 1.58 + // Except in Android, where it looks like: 1.59 + // http://A.B.C.D:port/timestamp/number/background-referrer.html 1.60 + // where A.B.C.D is the IP address of the box the reftest HTTP server is 1.61 + // running on. And maybe that will change. So just test for ending in 1.62 + // "/background-referrer.html". 1.63 + if (/\/background-referrer.html$/.test(referrer)) 1.64 + { 1.65 + response.setHeader("Content-Type", "image/png", false); 1.66 + 1.67 + var stream = new BinaryOutputStream(response.bodyOutputStream); 1.68 + stream.writeByteArray(IMAGE_DATA, IMAGE_DATA.length); 1.69 + } 1.70 + else 1.71 + { 1.72 + response.setStatusLine(request.httpVersion, 404, "Not found"); 1.73 + response.write("Accept header contained: " + accept); 1.74 + } 1.75 +}