def test_css_absolute_filter_only_url_fragment(self): filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css') content = "p { background: url('#foo') }" filter = CssAbsoluteFilter(content) self.assertEqual(content, filter.input(filename=filename, basename='css/url/test.css')) with self.settings(COMPRESS_URL='http://media.example.com/'): filter = CssAbsoluteFilter(content) self.assertEqual(content, filter.input(filename=filename, basename='css/url/test.css'))
def test_css_absolute_filter_relative_path(self): filename = os.path.join(settings.TEST_DIR, 'whatever', '..', 'media', 'whatever/../css/url/test.css') imagefilename = os.path.join(settings.COMPRESS_ROOT, 'img/python.png') output = "p { background: url('%simg/python.png?%s') }" % (settings.COMPRESS_URL, self.hashing_func(imagefilename)) filter = CssAbsoluteFilter(self.content) self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css')) settings.COMPRESS_URL = 'https://media.example.com/' filter = CssAbsoluteFilter(self.content) output = "p { background: url('%simg/python.png?%s') }" % (settings.COMPRESS_URL, self.hashing_func(imagefilename)) self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
def test_css_absolute_filter_relative_path(self): from compressor.filters.css_default import CssAbsoluteFilter filename = os.path.join(django_settings.TEST_DIR, 'whatever', '..', 'media', 'whatever/../css/url/test.css') content = "p { background: url('../../images/image.gif') }" output = "p { background: url('%simages/image.gif?%s') }" % (settings.MEDIA_URL, get_hashed_mtime(filename)) filter = CssAbsoluteFilter(content) self.assertEqual(output, filter.input(filename=filename)) settings.MEDIA_URL = 'https://media.example.com/' output = "p { background: url('%simages/image.gif?%s') }" % (settings.MEDIA_URL, get_hashed_mtime(filename)) self.assertEqual(output, filter.input(filename=filename))
def test_css_absolute_filter_relative_path(self): from compressor.filters.css_default import CssAbsoluteFilter filename = os.path.join(settings.TEST_DIR, 'whatever', '..', 'media', 'whatever/../css/url/test.css') content = "p { background: url('../../images/image.gif') }" output = "p { background: url('%simages/image.gif?%s') }" % (settings.COMPRESS_URL, get_hashed_mtime(filename)) filter = CssAbsoluteFilter(content) self.assertEqual(output, filter.input(filename=filename)) settings.COMPRESS_URL = 'https://media.example.com/' output = "p { background: url('%simages/image.gif?%s') }" % (settings.COMPRESS_URL, get_hashed_mtime(filename)) self.assertEqual(output, filter.input(filename=filename))
def test_css_absolute_filter_https(self): from compressor.filters.css_default import CssAbsoluteFilter filename = os.path.join(settings.MEDIA_ROOT, 'css/url/test.css') content = "p { background: url('../../images/image.gif') }" output = "p { background: url('%simages/image.gif') }" % settings.MEDIA_URL filter = CssAbsoluteFilter(content) self.assertEqual(output, filter.input(filename=filename)) settings.MEDIA_URL = 'https://media.example.com/' filename = os.path.join(settings.MEDIA_ROOT, 'css/url/test.css') output = "p { background: url('%simages/image.gif') }" % settings.MEDIA_URL self.assertEqual(output, filter.input(filename=filename))
def test_css_absolute_filter(self): from compressor.filters.css_default import CssAbsoluteFilter filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css') content = "p { background: url('../../images/image.gif') }" output = "p { background: url('%simages/image.gif?%s') }" % (settings.COMPRESS_URL, get_hashed_mtime(filename)) filter = CssAbsoluteFilter(content) self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css')) settings.COMPRESS_URL = 'http://media.example.com/' filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css') output = "p { background: url('%simages/image.gif?%s') }" % (settings.COMPRESS_URL, get_hashed_mtime(filename)) self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
def test_css_absolute_filter_https(self): from compressor.filters.css_default import CssAbsoluteFilter filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css') content = "p { background: url('../../images/image.gif') }" output = "p { background: url('%simages/image.gif?%s') }" % (settings.COMPRESS_URL, get_hashed_mtime(filename)) filter = CssAbsoluteFilter(content) self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css')) settings.COMPRESS_URL = 'https://media.example.com/' filter = CssAbsoluteFilter(content) filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css') output = "p { background: url('%simages/image.gif?%s') }" % (settings.COMPRESS_URL, get_hashed_mtime(filename)) self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
def test_css_absolute_filter_relative_path(self): from compressor.filters.css_default import CssAbsoluteFilter filename = os.path.join(settings.TEST_DIR, 'whatever', '..', 'media', 'whatever/../css/url/test.css') imagefilename = os.path.join(settings.COMPRESS_ROOT, 'img/python.png') content = "p { background: url('../../img/python.png') }" output = "p { background: url('%simg/python.png?%s') }" % (settings.COMPRESS_URL, self.suffix_method(imagefilename)) filter = CssAbsoluteFilter(content) self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css')) settings.COMPRESS_URL = 'https://media.example.com/' filter = CssAbsoluteFilter(content) output = "p { background: url('%simg/python.png?%s') }" % (settings.COMPRESS_URL, self.suffix_method(imagefilename)) self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
def test_css_absolute_filter_filename_outside_compress_root(self): filename = '/foo/bar/baz/test.css' content = self.template % blankdict(url='../qux/') params = blankdict({ 'url': settings.COMPRESS_URL + 'bar/qux/', }) output = self.template % params filter = CssAbsoluteFilter(content) self.assertEqual(output, filter.input(filename=filename, basename='bar/baz/test.css')) settings.COMPRESS_URL = 'https://static.example.com/' params['url'] = settings.COMPRESS_URL + 'bar/qux/' output = self.template % params filter = CssAbsoluteFilter(content) self.assertEqual(output, filter.input(filename=filename, basename='bar/baz/test.css'))
def test_css_no_hash(self): filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css') content = self.template % blankdict(url='../../') params = blankdict({ 'url': settings.COMPRESS_URL, }) output = self.template % params filter = CssAbsoluteFilter(content) self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css')) with self.settings(COMPRESS_URL='http://static.example.com/'): params['url'] = settings.COMPRESS_URL output = self.template % params filter = CssAbsoluteFilter(content) self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
def test_css_absolute_filter_filename_outside_compress_root(self): filename = '/foo/bar/baz/test.css' content = self.template % blankdict(url='../qux/') params = blankdict({ 'url': settings.COMPRESS_URL + 'bar/qux/', }) output = self.template % params filter = CssAbsoluteFilter(content) self.assertEqual(output, filter.input(filename=filename, basename='bar/baz/test.css')) with self.settings(COMPRESS_URL='https://static.example.com/'): params['url'] = settings.COMPRESS_URL + 'bar/qux/' output = self.template % params filter = CssAbsoluteFilter(content) self.assertEqual(output, filter.input(filename=filename, basename='bar/baz/test.css'))
def test_css_absolute_filter_relative_path(self): filename = os.path.join(settings.TEST_DIR, 'whatever', '..', 'static', 'whatever/../css/url/test.css') imagefilename = os.path.join(settings.COMPRESS_ROOT, 'img/python.png') content = self.template % blankdict(url='../../') params = blankdict({ 'url': settings.COMPRESS_URL, 'hash': '?' + self.hashing_func(imagefilename), }) output = self.template % params filter = CssAbsoluteFilter(content) self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css')) settings.COMPRESS_URL = params['url'] = 'https://static.example.com/' output = self.template % params filter = CssAbsoluteFilter(content) self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
def test_css_absolute_filter_relative_path(self): filename = os.path.join(settings.TEST_DIR, 'whatever', '..', 'media', 'whatever/../css/url/test.css') imagefilename = os.path.join(settings.COMPRESS_ROOT, 'img/python.png') params = { 'url': settings.COMPRESS_URL, 'hash': self.hashing_func(imagefilename), } output = ("p { background: url('%(url)simg/python.png?%(hash)s') }" "p { filter: Alpha(src='%(url)simg/python.png?%(hash)s') }") % params filter = CssAbsoluteFilter(self.content) self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css')) settings.COMPRESS_URL = params['url'] = 'https://media.example.com/' filter = CssAbsoluteFilter(self.content) output = ("p { background: url('%(url)simg/python.png?%(hash)s') }" "p { filter: Alpha(src='%(url)simg/python.png?%(hash)s') }") % params self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
def test_css_absolute_filter_querystring(self): filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css') imagefilename = os.path.join(settings.COMPRESS_ROOT, 'img/python.png') content = self.template % blankdict(url='../../', query='?foo') params = blankdict({ 'url': settings.COMPRESS_URL, 'query': '?foo', 'hash': '&' + self.hashing_func(imagefilename), }) output = self.template % params filter = CssAbsoluteFilter(content) self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css')) settings.COMPRESS_URL = params['url'] = 'http://media.example.com/' output = self.template % params filter = CssAbsoluteFilter(content) self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
def test_css_absolute_filter_querystring(self): filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css') imagefilename = os.path.join(settings.COMPRESS_ROOT, 'img/python.png') params = { 'url': settings.COMPRESS_URL, 'hash': self.hashing_func(imagefilename), } content = "p { background: url('../../img/python.png?foo') }" output = "p { background: url('%(url)simg/python.png?foo&%(hash)s') }" % params filter = CssAbsoluteFilter(content) self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css')) settings.COMPRESS_URL = params['url'] = 'http://media.example.com/' filter = CssAbsoluteFilter(content) filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css') output = "p { background: url('%(url)simg/python.png?foo&%(hash)s') }" % params self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
def test_css_absolute_filter_relative_path(self): filename = os.path.join(settings.TEST_DIR, 'whatever', '..', 'static', 'whatever/../css/url/test.css') imagefilename = os.path.join(settings.COMPRESS_ROOT, 'img/python.png') content = self.template % blankdict(url='../../') params = blankdict({ 'url': settings.COMPRESS_URL, 'hash': '?' + self.hashing_func(imagefilename), }) output = self.template % params filter = CssAbsoluteFilter(content) self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css')) with self.settings(COMPRESS_URL='https://static.example.com/'): params['url'] = settings.COMPRESS_URL output = self.template % params filter = CssAbsoluteFilter(content) self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
def test_css_absolute_filter_querystring(self): filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css') imagefilename = os.path.join(settings.COMPRESS_ROOT, 'img/python.png') content = self.template % blankdict(url='../../', query='?foo') params = blankdict({ 'url': settings.COMPRESS_URL, 'query': '?foo', 'hash': '&' + self.hashing_func(imagefilename), }) output = self.template % params filter = CssAbsoluteFilter(content) self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css')) with self.settings(COMPRESS_URL='http://media.example.com/'): params['url'] = settings.COMPRESS_URL output = self.template % params filter = CssAbsoluteFilter(content) self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
def test_css_absolute_filter_url_fragment(self): filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css') imagefilename = os.path.join(settings.COMPRESS_ROOT, 'img/python.png') content = self.template % blankdict(url='../../', frag='#foo') params = blankdict({ 'url': settings.COMPRESS_URL, 'hash': '?' + self.hashing_func(imagefilename), 'frag': '#foo', }) output = self.template % params filter = CssAbsoluteFilter(content) self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css')) with self.settings(COMPRESS_URL='http://media.example.com/'): params['url'] = settings.COMPRESS_URL output = self.template % params filter = CssAbsoluteFilter(content) self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
def test_css_absolute_filter_relative_path(self): from compressor.filters.css_default import CssAbsoluteFilter filename = os.path.join(settings.TEST_DIR, 'whatever', '..', 'media', 'whatever/../css/url/test.css') imagefilename = os.path.join(settings.COMPRESS_ROOT, 'img/python.png') content = "p { background: url('../../img/python.png') }" output = "p { background: url('%simg/python.png?%s') }" % ( settings.COMPRESS_URL, self.suffix_method(imagefilename)) filter = CssAbsoluteFilter(content) self.assertEqual( output, filter.input(filename=filename, basename='css/url/test.css')) settings.COMPRESS_URL = 'https://media.example.com/' filter = CssAbsoluteFilter(content) output = "p { background: url('%simg/python.png?%s') }" % ( settings.COMPRESS_URL, self.suffix_method(imagefilename)) self.assertEqual( output, filter.input(filename=filename, basename='css/url/test.css'))
def test_css_absolute_filter(self): from compressor.filters.css_default import CssAbsoluteFilter filename = os.path.join(settings.COMPRESS_ROOT, "css/url/test.css") imagefilename = os.path.join(settings.COMPRESS_ROOT, "img/python.png") content = "p { background: url('../../img/python.png') }" output = "p { background: url('%simg/python.png?%s') }" % ( settings.COMPRESS_URL, self.suffix_method(imagefilename), ) filter = CssAbsoluteFilter(content) self.assertEqual(output, filter.input(filename=filename, basename="css/url/test.css")) settings.COMPRESS_URL = "http://media.example.com/" filter = CssAbsoluteFilter(content) filename = os.path.join(settings.COMPRESS_ROOT, "css/url/test.css") output = "p { background: url('%simg/python.png?%s') }" % ( settings.COMPRESS_URL, self.suffix_method(imagefilename), ) self.assertEqual(output, filter.input(filename=filename, basename="css/url/test.css"))
def test_css_absolute_filter(self): filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css') imagefilename = os.path.join(settings.COMPRESS_ROOT, 'img/python.png') content = self.template % blankdict(url='../../') params = blankdict({ 'url': settings.COMPRESS_URL, 'hash': '?' + self.hashing_func(imagefilename), }) output = self.template % params filter = CssAbsoluteFilter(content) self.assertEqual( output, filter.input(filename=filename, basename='css/url/test.css')) settings.COMPRESS_URL = params['url'] = 'http://static.example.com/' output = self.template % params filter = CssAbsoluteFilter(content) self.assertEqual( output, filter.input(filename=filename, basename='css/url/test.css'))
def test_css_absolute_filter_querystring(self): filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css') imagefilename = os.path.join(settings.COMPRESS_ROOT, 'img/python.png') params = { 'url': settings.COMPRESS_URL, 'hash': self.hashing_func(imagefilename), } content = "p { background: url('../../img/python.png?foo') }" output = "p { background: url('%(url)simg/python.png?foo&%(hash)s') }" % params filter = CssAbsoluteFilter(content) self.assertEqual( output, filter.input(filename=filename, basename='css/url/test.css')) settings.COMPRESS_URL = params['url'] = 'http://media.example.com/' filter = CssAbsoluteFilter(content) filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css') output = "p { background: url('%(url)simg/python.png?foo&%(hash)s') }" % params self.assertEqual( output, filter.input(filename=filename, basename='css/url/test.css'))
def test_css_absolute_filter_relative_path(self): filename = os.path.join(settings.TEST_DIR, 'whatever', '..', 'static', 'whatever/../css/url/test.css') imagefilename = os.path.join(settings.COMPRESS_ROOT, 'img/python.png') params = { 'url': settings.COMPRESS_URL, 'hash': self.hashing_func(imagefilename), } output = ("p { background: url('%(url)simg/python.png?%(hash)s') }" "p { filter: Alpha(src='%(url)simg/python.png?%(hash)s') }" ) % params filter = CssAbsoluteFilter(self.content) self.assertEqual( output, filter.input(filename=filename, basename='css/url/test.css')) settings.COMPRESS_URL = params['url'] = 'https://static.example.com/' filter = CssAbsoluteFilter(self.content) output = ("p { background: url('%(url)simg/python.png?%(hash)s') }" "p { filter: Alpha(src='%(url)simg/python.png?%(hash)s') }" ) % params self.assertEqual( output, filter.input(filename=filename, basename='css/url/test.css'))