mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-26 14:22:01 +00:00
Add a test for bug 398066 (image/* should be in the Accept header for <img>-related requests), and add CGI support to the reftest harness. r=dbaron on the harness changes
This commit is contained in:
parent
c3b1f8dafc
commit
2101e84d60
@ -99,8 +99,10 @@ function OnRefTestLoad()
|
||||
|
||||
try {
|
||||
ReadTopManifest(window.arguments[0]);
|
||||
if (gServer)
|
||||
if (gServer) {
|
||||
gServer.registerContentType("sjs", "sjs");
|
||||
gServer.start(HTTP_SERVER_PORT);
|
||||
}
|
||||
StartCurrentTest();
|
||||
} catch (ex) {
|
||||
//gBrowser.loadURI('data:text/plain,' + ex);
|
||||
|
@ -0,0 +1,12 @@
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=398066
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>Accept: header should include image/* catchall</title>
|
||||
</head>
|
||||
<body>
|
||||
<img src="green.png">
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,12 @@
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=398066
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>Accept: header should include image/* catchall</title>
|
||||
</head>
|
||||
<body>
|
||||
<img src="check-header.sjs">
|
||||
</body>
|
||||
</html>
|
72
modules/libpr0n/test/reftest/generic/check-header.sjs
Normal file
72
modules/libpr0n/test/reftest/generic/check-header.sjs
Normal file
@ -0,0 +1,72 @@
|
||||
const BinaryOutputStream = Components.Constructor("@mozilla.org/binaryoutputstream;1", "nsIBinaryOutputStream", "setOutputStream");
|
||||
|
||||
function isCatchall(v)
|
||||
{
|
||||
// "image/*" item exactly or with a quality factor
|
||||
return /^image\/\*(?:|;q=(?:1(?:\.0{0,3})?|0(?:\.\d{0,3})?))$/.test(v);
|
||||
}
|
||||
|
||||
/*
|
||||
# Python used to generate the following byte array
|
||||
def toHex(n):
|
||||
if n < 16: return "0x" + hex(n)[2:].upper()
|
||||
return "0x" + hex(n)[2:].upper()
|
||||
|
||||
def hexFile(name):
|
||||
f = open(name, "rb")
|
||||
try:
|
||||
while True:
|
||||
print toHex(ord(f.read(1))) + ", ",
|
||||
except:
|
||||
pass
|
||||
|
||||
hexFile("modules/libpr0n/test/reftest/generic/green.png")
|
||||
*/
|
||||
|
||||
const IMAGE_DATA =
|
||||
[
|
||||
0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 0x00,
|
||||
0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00,
|
||||
0x00, 0x64, 0x08, 0x02, 0x00, 0x00, 0x00, 0xFF, 0x80, 0x02, 0x03,
|
||||
0x00, 0x00, 0x00, 0x01, 0x73, 0x52, 0x47, 0x42, 0x00, 0xAE, 0xCE,
|
||||
0x1C, 0xE9, 0x00, 0x00, 0x00, 0x9E, 0x49, 0x44, 0x41, 0x54, 0x78,
|
||||
0xDA, 0xED, 0xD0, 0x31, 0x01, 0x00, 0x00, 0x08, 0x03, 0xA0, 0x69,
|
||||
0xFF, 0xCE, 0x5A, 0xC1, 0xCF, 0x07, 0x22, 0x50, 0x99, 0x70, 0xD4,
|
||||
0x0A, 0x64, 0xC9, 0x92, 0x25, 0x4B, 0x96, 0x2C, 0x05, 0xB2, 0x64,
|
||||
0xC9, 0x92, 0x25, 0x4B, 0x96, 0x02, 0x59, 0xB2, 0x64, 0xC9, 0x92,
|
||||
0x25, 0x4B, 0x81, 0x2C, 0x59, 0xB2, 0x64, 0xC9, 0x92, 0xA5, 0x40,
|
||||
0x96, 0x2C, 0x59, 0xB2, 0x64, 0xC9, 0x52, 0x20, 0x4B, 0x96, 0x2C,
|
||||
0x59, 0xB2, 0x64, 0x29, 0x90, 0x25, 0x4B, 0x96, 0x2C, 0x59, 0xB2,
|
||||
0x14, 0xC8, 0x92, 0x25, 0x4B, 0x96, 0x2C, 0x59, 0x0A, 0x64, 0xC9,
|
||||
0x92, 0x25, 0x4B, 0x96, 0x2C, 0x05, 0xB2, 0x64, 0xC9, 0x92, 0x25,
|
||||
0x4B, 0x96, 0x02, 0x59, 0xB2, 0x64, 0xC9, 0x92, 0x25, 0x4B, 0x81,
|
||||
0x2C, 0x59, 0xB2, 0x64, 0xC9, 0x92, 0xA5, 0x40, 0x96, 0x2C, 0x59,
|
||||
0xB2, 0x64, 0xC9, 0x52, 0x20, 0x4B, 0x96, 0x2C, 0x59, 0xB2, 0x64,
|
||||
0x29, 0x90, 0x25, 0x4B, 0x96, 0x2C, 0x59, 0xB2, 0x14, 0xC8, 0x92,
|
||||
0x25, 0x4B, 0x96, 0x2C, 0x59, 0x0A, 0x64, 0xC9, 0xFA, 0xB6, 0x89,
|
||||
0x5F, 0x01, 0xC7, 0x24, 0x83, 0xB2, 0x0C, 0x00, 0x00, 0x00, 0x00,
|
||||
0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82,
|
||||
];
|
||||
|
||||
function handleRequest(request, response)
|
||||
{
|
||||
response.setHeader("Content-Type", "text/plain");
|
||||
response.setHeader("Cache-Control", "no-cache");
|
||||
|
||||
var accept = request.hasHeader("Accept")
|
||||
? request.getHeader("Accept")
|
||||
: "";
|
||||
|
||||
if (accept.split(",").some(isCatchall))
|
||||
{
|
||||
response.setHeader("Content-Type", "image/png", false);
|
||||
|
||||
var stream = new BinaryOutputStream(response.bodyOutputStream);
|
||||
stream.writeByteArray(IMAGE_DATA, IMAGE_DATA.length);
|
||||
}
|
||||
else
|
||||
{
|
||||
response.setStatusLine(request.httpVersion, 404, "Not found");
|
||||
response.write("Accept header contained: " + accept);
|
||||
}
|
||||
}
|
BIN
modules/libpr0n/test/reftest/generic/green.png
Normal file
BIN
modules/libpr0n/test/reftest/generic/green.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 228 B |
1
modules/libpr0n/test/reftest/generic/reftest.list
Normal file
1
modules/libpr0n/test/reftest/generic/reftest.list
Normal file
@ -0,0 +1 @@
|
||||
HTTP == accept-image-catchall.html accept-image-catchall-ref.html
|
@ -18,3 +18,7 @@ include pngsuite-oddsizes/reftest.list
|
||||
include pngsuite-palettes/reftest.list
|
||||
include pngsuite-transparency/reftest.list
|
||||
include pngsuite-zlib/reftest.list
|
||||
|
||||
|
||||
include generic/reftest.list
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user