2013-05-24 08:57:09 +00:00
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
|
|
|
from base import *
|
|
|
|
from requests import *
|
|
|
|
|
|
|
|
class DeflateRequest(CurlRequest):
|
|
|
|
URL = "/test.txt"
|
|
|
|
EXPECT_RESPONSE_BODY = TEST_TXT
|
|
|
|
EXPECT_RESPONSE_CODE = 200
|
|
|
|
|
|
|
|
EXPECT_RESPONSE_HEADERS = [("Vary", "Accept-Encoding")]
|
|
|
|
|
|
|
|
def Prepare(self):
|
|
|
|
self.EXPECT_RESPONSE_HEADERS = self.EXPECT_RESPONSE_HEADERS + [ ("Content-Encoding", self.ACCEPT_ENCODING) ]
|
|
|
|
|
|
|
|
class TestGzip(DeflateRequest):
|
|
|
|
ACCEPT_ENCODING = 'gzip'
|
|
|
|
|
|
|
|
class TestXGzip(DeflateRequest):
|
|
|
|
ACCEPT_ENCODING = 'x-gzip'
|
|
|
|
|
|
|
|
class TestDeflate(DeflateRequest):
|
|
|
|
ACCEPT_ENCODING = 'deflate'
|
|
|
|
|
|
|
|
# not supported
|
|
|
|
#class TestCompress(DeflateRequest):
|
|
|
|
# ACCEPT_ENCODING = 'compress'
|
|
|
|
|
|
|
|
class TestBzip2(DeflateRequest):
|
|
|
|
ACCEPT_ENCODING = 'bzip2'
|
|
|
|
|
|
|
|
class TestXBzip2(DeflateRequest):
|
|
|
|
ACCEPT_ENCODING = 'x-bzip2'
|
|
|
|
|
2013-08-07 16:50:49 +00:00
|
|
|
class TestDisableDeflate(CurlRequest):
|
|
|
|
URL = "/test.txt?nodeflate"
|
|
|
|
EXPECT_RESPONSE_BODY = TEST_TXT
|
|
|
|
EXPECT_RESPONSE_CODE = 200
|
|
|
|
|
|
|
|
EXPECT_RESPONSE_HEADERS = [("Content-Encoding", None)]
|
|
|
|
|
|
|
|
|
2013-05-24 08:57:09 +00:00
|
|
|
class Test(GroupTest):
|
2013-08-07 16:50:49 +00:00
|
|
|
group = [TestGzip, TestXGzip, TestDeflate, TestBzip2, TestXBzip2, TestDisableDeflate]
|
2013-05-24 08:57:09 +00:00
|
|
|
|
|
|
|
def Prepare(self):
|
|
|
|
# deflate is enabled global too; force it here anyway
|
2013-09-10 10:08:44 +00:00
|
|
|
self.config = """
|
|
|
|
defaultaction;
|
|
|
|
if req.query == "nodeflate" { req_header.remove "Accept-Encoding"; } static; do_deflate;
|
|
|
|
"""
|