| | 29 | def test_is_modified_since(self): |
| | 30 | file_name = 'file.txt' |
| | 31 | response = self.client.get( |
| | 32 | '/views/site_media/%s' % file_name, |
| | 33 | HTTP_IF_MODIFIED_SINCE='Thu, 1 Jan 1970 00:00:00 GMT') |
| | 34 | file = open(path.join(media_dir, file_name)) |
| | 35 | self.assertEquals(file.read(), response.content) |
| | 36 | |
| | 37 | def test_not_modified_since(self): |
| | 38 | file_name = 'file.txt' |
| | 39 | response = self.client.get( |
| | 40 | '/views/site_media/%s' % file_name, |
| | 41 | HTTP_IF_MODIFIED_SINCE='Mon, 18 Jan 2038 05:14:07 UTC' |
| | 42 | # This is 24h before max Unix time. Remember to fix Django and |
| | 43 | # update this test well before 2038 :) |
| | 44 | ) |
| | 45 | self.assertTrue(isinstance(response, HttpResponseNotModified)) |
| | 46 | |
| | 47 | def test_invalid_if_modified_since(self): |
| | 48 | """Handle bogus If-Modified-Since values gracefully |
| | 49 | |
| | 50 | Assume that a file is modified since an invalid timestamp as per RFC |
| | 51 | 2616, section 14.25. |
| | 52 | """ |
| | 53 | file_name = 'file.txt' |
| | 54 | response = self.client.get( |
| | 55 | '/views/site_media/%s' % file_name, |
| | 56 | HTTP_IF_MODIFIED_SINCE='Fri, 34 Feb 3118 24:34:19 GMT' |
| | 57 | # This is a real-life example of a bogus If-Modified-Since header. |
| | 58 | ) |
| | 59 | file = open(path.join(media_dir, file_name)) |
| | 60 | self.assertEquals(file.read(), response.content) |