Download Install Tutorial Docs FAQ Tools WikiLicense Team IRC Planet Involvement Shop Book

Changeset 776

Show
Ignore:
Timestamp:
11/01/05 15:05:40
Author:
fumanchu
Message:

Fix for #378 (gzipfilter needs to set a Vary header).

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/cherrypy/lib/filter/gzipfilter.py

    r774 r776  
    2424        def zipit(): 
    2525            # Return a generator that compresses the page 
     26            varies = response.headerMap.get("Vary", "") 
     27            varies = [x.strip() for x in varies.split(",") if x.strip()] 
     28            if "Accept-Encoding" not in varies: 
     29                varies.append("Accept-Encoding") 
     30            response.headerMap['Vary'] = ", ".join(varies) 
     31             
    2632            response.headerMap['Content-Encoding'] = 'gzip' 
    2733            level = cherrypy.config.get('gzipFilter.compresslevel', 9) 
  • trunk/cherrypy/test/test_core.py

    r774 r776  
    185185class Headers(Test): 
    186186     
    187     def index(self): 
     187    def doubledheaders(self): 
    188188        # From http://www.cherrypy.org/ticket/165: 
    189189        # "header field names should not be case sensitive sayes the rfc. 
     
    672672                        "en;q=0.7") 
    673673     
    674     def testHeaderCaseSensitivity(self): 
     674    def testHeaders(self): 
    675675        # Tests that each header only appears once, regardless of case. 
    676         self.getPage("/headers/") 
     676        self.getPage("/headers/doubledheaders") 
    677677        self.assertBody("double header test") 
    678678        hnames = [name.title() for name, val in self.headers] 
  • trunk/cherrypy/test/test_gzip_filter.py

    r774 r776  
    4646        self.getPage('/', headers=[("Accept-Encoding", "gzip")]) 
    4747        self.assertInBody(zbuf.getvalue()[:3]) 
     48        self.assertHeader("Vary", "Accept-Encoding") 
    4849         
    4950        # Test when gzip is denied. 
    5051        self.getPage('/', headers=[("Accept-Encoding", "identity")]) 
     52        self.assertNoHeader("Vary") 
    5153        self.assertBody("Hello, world") 
     54         
    5255        self.getPage('/', headers=[("Accept-Encoding", "gzip;q=0")]) 
     56        self.assertNoHeader("Vary") 
    5357        self.assertBody("Hello, world") 
     58         
    5459        self.getPage('/', headers=[("Accept-Encoding", "*;q=0")]) 
    5560        self.assertStatus("406 Not Acceptable") 
     61        self.assertNoHeader("Vary") 
    5662        self.assertErrorPage(406, "identity, gzip") 
    5763         

Hosted by WebFaction

Log in as guest/cpguest to create tickets