web/test/unittest_views_staticcontrollers.py
changeset 8312 6c2119509fac
parent 8298 2a4bc6f75e9c
child 8323 fe60a77ae4a7
equal deleted inserted replaced
8311:76a44a0d7f4b 8312:6c2119509fac
    24     def _publish_js_files(self, js_files):
    24     def _publish_js_files(self, js_files):
    25         req = self.request()
    25         req = self.request()
    26         head = HTMLHead(req)
    26         head = HTMLHead(req)
    27         url = head.concat_urls([req.data_url(js_file) for js_file in js_files])[len(req.base_url()):]
    27         url = head.concat_urls([req.data_url(js_file) for js_file in js_files])[len(req.base_url()):]
    28         req._url = url
    28         req._url = url
    29         return self.app_publish(req, url)
    29         return self.app_handle_request(req, url), req
    30 
    30 
    31     def expected_content(self, js_files):
    31     def expected_content(self, js_files):
    32         content = u''
    32         content = u''
    33         for js_file in js_files:
    33         for js_file in js_files:
    34             dirpath, rid = self.config.locate_resource(js_file)
    34             dirpath, rid = self.config.locate_resource(js_file)
    37                     content += f.read() + '\n'
    37                     content += f.read() + '\n'
    38         return content
    38         return content
    39 
    39 
    40     def test_cache(self):
    40     def test_cache(self):
    41         js_files = ('cubicweb.ajax.js', 'jquery.js')
    41         js_files = ('cubicweb.ajax.js', 'jquery.js')
    42         try:
    42         result, req = self._publish_js_files(js_files)
    43             result = self._publish_js_files(js_files)
    43         self.assertNotEqual(404, req.status_out)
    44         except StatusResponse, exc:
       
    45             if exc.status == 404:
       
    46                 self.fail('unable to serve cubicweb.js+jquery.js')
       
    47             # let the exception propagate for any other status (e.g 500)
       
    48             raise
       
    49         # check result content
    44         # check result content
    50         self.assertEqual(result, self.expected_content(js_files))
    45         self.assertEqual(result, self.expected_content(js_files))
    51         # make sure we kept a cached version on filesystem
    46         # make sure we kept a cached version on filesystem
    52         concat_hander = ConcatFilesHandler(self.config)
    47         concat_hander = ConcatFilesHandler(self.config)
    53         filepath = concat_hander.build_filepath(js_files)
    48         filepath = concat_hander.build_filepath(js_files)
    57     def test_invalid_file_in_debug_mode(self):
    52     def test_invalid_file_in_debug_mode(self):
    58         js_files = ('cubicweb.ajax.js', 'dummy.js')
    53         js_files = ('cubicweb.ajax.js', 'dummy.js')
    59         # in debug mode, an error is raised
    54         # in debug mode, an error is raised
    60         self.config.debugmode = True
    55         self.config.debugmode = True
    61         try:
    56         try:
    62             result = self._publish_js_files(js_files)
    57             result, req = self._publish_js_files(js_files)
    63             self.fail('invalid concat js should return a 404 in debug mode')
    58             #print result
    64         except StatusResponse, exc:
    59             self.assertEqual(404, req.status_out)
    65             if exc.status != 404:
       
    66                 self.fail('invalid concat js should return a 404 in debug mode')
       
    67         finally:
    60         finally:
    68             self.config.debugmode = False
    61             self.config.debugmode = False
    69 
    62 
    70     def test_invalid_file_in_production_mode(self):
    63     def test_invalid_file_in_production_mode(self):
    71         js_files = ('cubicweb.ajax.js', 'dummy.js')
    64         js_files = ('cubicweb.ajax.js', 'dummy.js')
    72         try:
    65         result, req = self._publish_js_files(js_files)
    73             result = self._publish_js_files(js_files)
    66         self.assertNotEqual(404, req.status_out)
    74         except StatusResponse, exc:
       
    75             if exc.status == 404:
       
    76                 self.fail('invalid concat js should NOT return a 404 in debug mode')
       
    77             # let the exception propagate for any other status (e.g 500)
       
    78             raise
       
    79         # check result content
    67         # check result content
    80         self.assertEqual(result, self.expected_content(js_files))
    68         self.assertEqual(result, self.expected_content(js_files))
    81 
    69 
    82 
    70 
    83 if __name__ == '__main__':
    71 if __name__ == '__main__':