import os from django.test import TestCase from compressor.templatetags.compress import CompressedCssNode, CompressedJsNode from compressor.conf import settings class CompressedNodeTestCase(TestCase): def setUp(self): settings.COMPRESS = True self.css = """ """ self.css_output = '' self.cssNode = CompressedCssNode(self.css) self.js = """ """ self.js_output = '' self.jsNode = CompressedJsNode(self.js) def test_css_split(self): out = [ ('file', os.path.join(settings.MEDIA_ROOT, u'css/one.css')), ('hunk', u'p { border:5px solid green;}'), ('file', os.path.join(settings.MEDIA_ROOT, u'css/two.css')), ] self.assertEqual(out, self.cssNode.split_contents()) def test_css_hunks(self): out = ['body { background:#990; }', u'p { border:5px solid green;}', 'body { color:#fff; }'] self.assertEqual(out, self.cssNode.get_hunks()) def test_css_concat(self): out = u'body { background:#990; }\np { border:5px solid green;}\nbody { color:#fff; }' self.assertEqual(out, self.cssNode.concat()) def test_css_return_if_off(self): settings.COMPRESS = False self.assertEqual(self.css, self.cssNode.render()) def test_css_return_if_on(self): self.assertEqual(self.css_output, self.cssNode.render()) def test_js_split(self): out = [ ('file', os.path.join(settings.MEDIA_ROOT, u'js/one.js')), ('hunk', u'obj.value = "value";'), ] self.assertEqual(out, self.jsNode.split_contents()) def test_js_hunks(self): out = ['obj = {};', u'obj.value = "value";'] self.assertEqual(out, self.jsNode.get_hunks()) def test_js_concat(self): out = u'obj = {};\nobj.value = "value";' self.assertEqual(out, self.jsNode.concat()) def test_js_return_if_off(self): settings.COMPRESS = False self.assertEqual(self.js, self.jsNode.render()) def test_js_return_if_on(self): self.assertEqual(self.js_output, self.jsNode.render())