From d14740af2e3c1b9bbd8857ec0d58ad2289e85fc1 Mon Sep 17 00:00:00 2001 From: Witold Filipczyk Date: Mon, 21 Jan 2008 14:44:10 +0100 Subject: [PATCH] Three CGI tests for content-encoding. The output should be: Two lines should be visible. The second line. All three tests fail currently when the ELinks is invoked like this: $ elinks -no-connect path_to_chunked_test --- test/cgi/chunked_bzip2.py | 36 ++++++++++++++++++++++++++++++++++++ test/cgi/chunked_deflate.py | 22 ++++++++++++++++++++++ test/cgi/chunked_gzip.py | 36 ++++++++++++++++++++++++++++++++++++ 3 files changed, 94 insertions(+) create mode 100755 test/cgi/chunked_bzip2.py create mode 100755 test/cgi/chunked_deflate.py create mode 100755 test/cgi/chunked_gzip.py diff --git a/test/cgi/chunked_bzip2.py b/test/cgi/chunked_bzip2.py new file mode 100755 index 00000000..c34dc132 --- /dev/null +++ b/test/cgi/chunked_bzip2.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python +import bz2, os + +data1 = 'Two lines should be visible.
' +data2 = 'The second line.' + +f1 = bz2.BZ2File("/tmp/1.bz2", mode = "wb") +f1.write(data1) +f1.close() +f2 = bz2.BZ2File("/tmp/2.bz2", mode = "wb") +f2.write(data2) +f2.close() + +f = open("/tmp/1.bz2") +cd1 = f.read() +f.close() +f3 = open("/tmp/2.bz2") +cd2 = f3.read() +f3.close() + +os.unlink("/tmp/1.bz2") +os.unlink("/tmp/2.bz2") + +calosc = cd1 + cd2 +length = len(calosc) +how_many = 40 + +len1 = hex(how_many)[2:] +len2 = hex(length - how_many)[2:] + +os.write(1, "HTTP/1.0 200 OK\r\nDate: Sun, 20 Jan 2008 15:24:00 GMT\r\nServer: ddd\r\nTransfer-Encoding: chunked\r\nContent-Encoding: bzip2\r\nConnection: close\r\nContent-Type: text/html; charset=ISO-8859-1\r\n\r\n") +os.write(1, "%s\r\n" % len1) +os.write(1, calosc[:how_many]) +os.write(1, "\r\n%s\r\n" % len2) +os.write(1, calosc[how_many:]) +os.write(1, "\r\n0\r\n\r\n") diff --git a/test/cgi/chunked_deflate.py b/test/cgi/chunked_deflate.py new file mode 100755 index 00000000..59d7ee0b --- /dev/null +++ b/test/cgi/chunked_deflate.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python +import os, zlib + +data1 = 'Two lines should be visible.
' +data2 = 'The second line.' + +cd1 = zlib.compress(data1) +cd2 = zlib.compress(data2) + +calosc = cd1 + cd2 +length = len(calosc) + +how_many = 40 +len1 = hex(how_many)[2:] +len2 = hex(length - how_many)[2:] + +os.write(1, "HTTP/1.0 200 OK\r\nDate: Sun, 20 Jan 2008 15:24:00 GMT\r\nServer: ddd\r\nTransfer-Encoding: chunked\r\nContent-Encoding: deflate\r\nConnection: close\r\nContent-Type: text/html; charset=ISO-8859-1\r\n\r\n") +os.write(1, "%s\r\n" % len1) +os.write(1, calosc[:how_many]) +os.write(1, "\r\n%s\r\n" % len2) +os.write(1, calosc[how_many:]) +os.write(1, "\r\n0\r\n\r\n") diff --git a/test/cgi/chunked_gzip.py b/test/cgi/chunked_gzip.py new file mode 100755 index 00000000..411fa99f --- /dev/null +++ b/test/cgi/chunked_gzip.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python +import gzip, os + +data1 = 'Two lines should be visible.
' +data2 = 'The second line.' + +f1 = gzip.GzipFile("/tmp/1.gz", mode = "wb") +f1.write(data1) +f1.close() +f2 = gzip.GzipFile("/tmp/2.gz", mode = "wb") +f2.write(data2) +f2.close() + +f = open("/tmp/1.gz") +cd1 = f.read() +f.close() +f3 = open("/tmp/2.gz") +cd2 = f3.read() +f3.close() + +os.unlink("/tmp/1.gz") +os.unlink("/tmp/2.gz") + +calosc = cd1 + cd2 +length = len(calosc) +how_many = 40 + +len1 = hex(how_many)[2:] +len2 = hex(length - how_many)[2:] + +os.write(1, "HTTP/1.0 200 OK\r\nDate: Sun, 20 Jan 2008 15:24:00 GMT\r\nServer: ddd\r\nTransfer-Encoding: chunked\r\nContent-Encoding: gzip\r\nConnection: close\r\nContent-Type: text/html; charset=ISO-8859-1\r\n\r\n") +os.write(1, "%s\r\n" % len1) +os.write(1, calosc[:how_many]) +os.write(1, "\r\n%s\r\n" % len2) +os.write(1, calosc[how_many:]) +os.write(1, "\r\n0\r\n\r\n") -- 2.11.4.GIT