added jinja2 tests
This commit is contained in:
		@@ -60,8 +60,8 @@ class OfflineTestCaseMixin(object):
 | 
				
			|||||||
        if default_storage.exists(manifest_path):
 | 
					        if default_storage.exists(manifest_path):
 | 
				
			||||||
            default_storage.delete(manifest_path)
 | 
					            default_storage.delete(manifest_path)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_offline(self):
 | 
					    def _test_offline(self, engine):
 | 
				
			||||||
        count, result = CompressCommand().compress(log=self.log, verbosity=self.verbosity)
 | 
					        count, result = CompressCommand().compress(log=self.log, verbosity=self.verbosity, engine=engine)
 | 
				
			||||||
        self.assertEqual(1, count)
 | 
					        self.assertEqual(1, count)
 | 
				
			||||||
        self.assertEqual([
 | 
					        self.assertEqual([
 | 
				
			||||||
            '<script type="text/javascript" src="/static/CACHE/js/%s.js"></script>' % (self.expected_hash, ),
 | 
					            '<script type="text/javascript" src="/static/CACHE/js/%s.js"></script>' % (self.expected_hash, ),
 | 
				
			||||||
@@ -69,16 +69,36 @@ class OfflineTestCaseMixin(object):
 | 
				
			|||||||
        rendered_template = self.template.render(Context(settings.COMPRESS_OFFLINE_CONTEXT))
 | 
					        rendered_template = self.template.render(Context(settings.COMPRESS_OFFLINE_CONTEXT))
 | 
				
			||||||
        self.assertEqual(rendered_template, "".join(result) + "\n")
 | 
					        self.assertEqual(rendered_template, "".join(result) + "\n")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def test_offline_django(self):
 | 
				
			||||||
 | 
					        settings.TEMPLATE_DIRS = (
 | 
				
			||||||
 | 
					            os.path.join(settings.TEST_DIR, 'test_templates', self.templates_dir),
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					        self._test_offline(engine="django")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def test_offline_jinja2(self):
 | 
				
			||||||
 | 
					        settings.TEMPLATE_DIRS = (
 | 
				
			||||||
 | 
					            os.path.join(settings.TEST_DIR, 'test_templates_jinja2', self.templates_dir),
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					        self._test_offline(engine="jinja2")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class OfflineGenerationBlockSuperTestCase(OfflineTestCaseMixin, TestCase):
 | 
					class OfflineGenerationBlockSuperTestCase(OfflineTestCaseMixin, TestCase):
 | 
				
			||||||
    templates_dir = "test_block_super"
 | 
					    templates_dir = "test_block_super"
 | 
				
			||||||
    expected_hash = "7c02d201f69d"
 | 
					    expected_hash = "7c02d201f69d"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def test_offline_jinja2(self):
 | 
				
			||||||
 | 
					        # Block.super not supported for Jinja2 yet.
 | 
				
			||||||
 | 
					        pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class OfflineGenerationBlockSuperMultipleTestCase(OfflineTestCaseMixin, TestCase):
 | 
					class OfflineGenerationBlockSuperMultipleTestCase(OfflineTestCaseMixin, TestCase):
 | 
				
			||||||
    templates_dir = "test_block_super_multiple"
 | 
					    templates_dir = "test_block_super_multiple"
 | 
				
			||||||
    expected_hash = "2f6ef61c488e"
 | 
					    expected_hash = "2f6ef61c488e"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def test_offline_jinja2(self):
 | 
				
			||||||
 | 
					        # Block.super not supported for Jinja2 yet.
 | 
				
			||||||
 | 
					        pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class OfflineGenerationBlockSuperMultipleWithCachedLoaderTestCase(OfflineTestCaseMixin, TestCase):
 | 
					class OfflineGenerationBlockSuperMultipleWithCachedLoaderTestCase(OfflineTestCaseMixin, TestCase):
 | 
				
			||||||
    templates_dir = "test_block_super_multiple_cached"
 | 
					    templates_dir = "test_block_super_multiple_cached"
 | 
				
			||||||
@@ -98,12 +118,16 @@ class OfflineGenerationBlockSuperMultipleWithCachedLoaderTestCase(OfflineTestCas
 | 
				
			|||||||
        super(OfflineGenerationBlockSuperMultipleWithCachedLoaderTestCase, self).tearDown()
 | 
					        super(OfflineGenerationBlockSuperMultipleWithCachedLoaderTestCase, self).tearDown()
 | 
				
			||||||
        settings.TEMPLATE_LOADERS = self._old_template_loaders
 | 
					        settings.TEMPLATE_LOADERS = self._old_template_loaders
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def test_offline_jinja2(self):
 | 
				
			||||||
 | 
					        # Block.super not supported for Jinja2 yet.
 | 
				
			||||||
 | 
					        pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class OfflineGenerationBlockSuperTestCaseWithExtraContent(OfflineTestCaseMixin, TestCase):
 | 
					class OfflineGenerationBlockSuperTestCaseWithExtraContent(OfflineTestCaseMixin, TestCase):
 | 
				
			||||||
    templates_dir = "test_block_super_extra"
 | 
					    templates_dir = "test_block_super_extra"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_offline(self):
 | 
					    def _test_offline(self, engine):
 | 
				
			||||||
        count, result = CompressCommand().compress(log=self.log, verbosity=self.verbosity)
 | 
					        count, result = CompressCommand().compress(log=self.log, verbosity=self.verbosity, engine=engine)
 | 
				
			||||||
        self.assertEqual(2, count)
 | 
					        self.assertEqual(2, count)
 | 
				
			||||||
        self.assertEqual([
 | 
					        self.assertEqual([
 | 
				
			||||||
            '<script type="text/javascript" src="/static/CACHE/js/ced14aec5856.js"></script>',
 | 
					            '<script type="text/javascript" src="/static/CACHE/js/ced14aec5856.js"></script>',
 | 
				
			||||||
@@ -112,6 +136,10 @@ class OfflineGenerationBlockSuperTestCaseWithExtraContent(OfflineTestCaseMixin,
 | 
				
			|||||||
        rendered_template = self.template.render(Context(settings.COMPRESS_OFFLINE_CONTEXT))
 | 
					        rendered_template = self.template.render(Context(settings.COMPRESS_OFFLINE_CONTEXT))
 | 
				
			||||||
        self.assertEqual(rendered_template, "".join(result) + "\n")
 | 
					        self.assertEqual(rendered_template, "".join(result) + "\n")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def test_offline_jinja2(self):
 | 
				
			||||||
 | 
					        # Block.super not supported for Jinja2 yet.
 | 
				
			||||||
 | 
					        pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class OfflineGenerationConditionTestCase(OfflineTestCaseMixin, TestCase):
 | 
					class OfflineGenerationConditionTestCase(OfflineTestCaseMixin, TestCase):
 | 
				
			||||||
    templates_dir = "test_condition"
 | 
					    templates_dir = "test_condition"
 | 
				
			||||||
@@ -158,9 +186,21 @@ class OfflineGenerationTestCaseWithContext(OfflineTestCaseMixin, TestCase):
 | 
				
			|||||||
class OfflineGenerationTestCaseErrors(OfflineTestCaseMixin, TestCase):
 | 
					class OfflineGenerationTestCaseErrors(OfflineTestCaseMixin, TestCase):
 | 
				
			||||||
    templates_dir = "test_error_handling"
 | 
					    templates_dir = "test_error_handling"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_offline(self):
 | 
					    def _test_offline(self, engine):
 | 
				
			||||||
        count, result = CompressCommand().compress(log=self.log, verbosity=self.verbosity)
 | 
					        count, result = CompressCommand().compress(log=self.log, verbosity=self.verbosity, engine=engine)
 | 
				
			||||||
        self.assertEqual(2, count)
 | 
					
 | 
				
			||||||
 | 
					        if engine == "django":
 | 
				
			||||||
 | 
					            self.assertEqual(2, count)
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            # Because we use env.parse in Jinja2Parser, the engine does not
 | 
				
			||||||
 | 
					            # actually load the "extends" and "includes" templates, and so
 | 
				
			||||||
 | 
					            # it is unable to detect that they are missing. So all the "compress"
 | 
				
			||||||
 | 
					            # nodes are processed correctly.
 | 
				
			||||||
 | 
					            self.assertEqual(4, count)
 | 
				
			||||||
 | 
					            self.assertEqual(engine, "jinja2")
 | 
				
			||||||
 | 
					            self.assertIn('<link rel="stylesheet" href="/static/CACHE/css/78bd7a762e2d.css" type="text/css" />', result)
 | 
				
			||||||
 | 
					            self.assertIn('<link rel="stylesheet" href="/static/CACHE/css/e31030430724.css" type="text/css" />', result)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.assertIn('<script type="text/javascript" src="/static/CACHE/js/3872c9ae3f42.js"></script>', result)
 | 
					        self.assertIn('<script type="text/javascript" src="/static/CACHE/js/3872c9ae3f42.js"></script>', result)
 | 
				
			||||||
        self.assertIn('<script type="text/javascript" src="/static/CACHE/js/cd8870829421.js"></script>', result)
 | 
					        self.assertIn('<script type="text/javascript" src="/static/CACHE/js/cd8870829421.js"></script>', result)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -173,7 +213,7 @@ class OfflineGenerationTestCaseWithError(OfflineTestCaseMixin, TestCase):
 | 
				
			|||||||
        settings.COMPRESS_PRECOMPILERS = (('text/coffeescript', 'non-existing-binary'),)
 | 
					        settings.COMPRESS_PRECOMPILERS = (('text/coffeescript', 'non-existing-binary'),)
 | 
				
			||||||
        super(OfflineGenerationTestCaseWithError, self).setUp()
 | 
					        super(OfflineGenerationTestCaseWithError, self).setUp()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_offline(self):
 | 
					    def _test_offline(self, engine):
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        Test that a CommandError is raised with DEBUG being False as well as
 | 
					        Test that a CommandError is raised with DEBUG being False as well as
 | 
				
			||||||
        True, as otherwise errors in configuration will never show in
 | 
					        True, as otherwise errors in configuration will never show in
 | 
				
			||||||
@@ -183,10 +223,10 @@ class OfflineGenerationTestCaseWithError(OfflineTestCaseMixin, TestCase):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            settings.DEBUG = True
 | 
					            settings.DEBUG = True
 | 
				
			||||||
            self.assertRaises(CommandError, CompressCommand().compress)
 | 
					            self.assertRaises(CommandError, CompressCommand().compress, engine=engine)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            settings.DEBUG = False
 | 
					            settings.DEBUG = False
 | 
				
			||||||
            self.assertRaises(CommandError, CompressCommand().compress)
 | 
					            self.assertRaises(CommandError, CompressCommand().compress, engine=engine)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        finally:
 | 
					        finally:
 | 
				
			||||||
            settings.DEBUG = self._old_debug
 | 
					            settings.DEBUG = self._old_debug
 | 
				
			||||||
@@ -257,7 +297,26 @@ class OfflineGenerationInlineNonAsciiTestCase(OfflineTestCaseMixin, TestCase):
 | 
				
			|||||||
        self.COMPRESS_OFFLINE_CONTEXT = self.old_offline_context
 | 
					        self.COMPRESS_OFFLINE_CONTEXT = self.old_offline_context
 | 
				
			||||||
        super(OfflineGenerationInlineNonAsciiTestCase, self).tearDown()
 | 
					        super(OfflineGenerationInlineNonAsciiTestCase, self).tearDown()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_offline(self):
 | 
					    def _test_offline(self, engine):
 | 
				
			||||||
        count, result = CompressCommand().compress(log=self.log, verbosity=self.verbosity)
 | 
					        count, result = CompressCommand().compress(log=self.log, verbosity=self.verbosity, engine=engine)
 | 
				
			||||||
        rendered_template = self.template.render(Context(settings.COMPRESS_OFFLINE_CONTEXT))
 | 
					        rendered_template = self.template.render(Context(settings.COMPRESS_OFFLINE_CONTEXT))
 | 
				
			||||||
        self.assertEqual(rendered_template, "".join(result) + "\n")
 | 
					        self.assertEqual(rendered_template, "".join(result) + "\n")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class OfflineGenerationComplexTestCase(OfflineTestCaseMixin, TestCase):
 | 
				
			||||||
 | 
					    templates_dir = "test_complex"
 | 
				
			||||||
 | 
					    expected_hash = "0e8807bebcee"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def setUp(self):
 | 
				
			||||||
 | 
					        self.old_offline_context = settings.COMPRESS_OFFLINE_CONTEXT
 | 
				
			||||||
 | 
					        settings.COMPRESS_OFFLINE_CONTEXT = {
 | 
				
			||||||
 | 
					            'condition': 'OK!',
 | 
				
			||||||
 | 
					            # Django templating does not allow definition of tuples in the
 | 
				
			||||||
 | 
					            # templates. Make sure this is same as test_templates_jinja2/test_complex.
 | 
				
			||||||
 | 
					            'my_names': ("js/one.js", "js/nonasc.js"),
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        super(OfflineGenerationComplexTestCase, self).setUp()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def tearDown(self):
 | 
				
			||||||
 | 
					        self.COMPRESS_OFFLINE_CONTEXT = self.old_offline_context
 | 
				
			||||||
 | 
					        super(OfflineGenerationComplexTestCase, self).tearDown()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					{% load compress static %}{% spaceless %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% if condition %}
 | 
				
			||||||
 | 
					    {% compress js%}
 | 
				
			||||||
 | 
					        <script type="text/javascript">alert("{{ condition|default:"yellow" }}");</script>
 | 
				
			||||||
 | 
					        {% with names=my_names %}
 | 
				
			||||||
 | 
					          {% for name in names %}
 | 
				
			||||||
 | 
					          <script type="text/javascript" src="{% static name %}"></script>
 | 
				
			||||||
 | 
					          {% endfor %}
 | 
				
			||||||
 | 
					        {% endwith %}
 | 
				
			||||||
 | 
					    {% endcompress %}
 | 
				
			||||||
 | 
					{% endif %}{% endspaceless %}
 | 
				
			||||||
@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					{% spaceless %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% compress js %}
 | 
				
			||||||
 | 
					    <script type="text/javascript">
 | 
				
			||||||
 | 
					        alert("Basic test");
 | 
				
			||||||
 | 
					    </script>
 | 
				
			||||||
 | 
					{% endcompress %}
 | 
				
			||||||
 | 
					{% endspaceless %}
 | 
				
			||||||
@@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					{% spaceless %}
 | 
				
			||||||
 | 
					{% block js %}
 | 
				
			||||||
 | 
					    <script type="text/javascript">
 | 
				
			||||||
 | 
					        alert("test using block.super");
 | 
				
			||||||
 | 
					    </script>
 | 
				
			||||||
 | 
					{% endblock %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% block css %}
 | 
				
			||||||
 | 
					    <style type="text/css">
 | 
				
			||||||
 | 
					        body {
 | 
				
			||||||
 | 
					            background: red;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    </style>
 | 
				
			||||||
 | 
					{% endblock %}
 | 
				
			||||||
 | 
					{% endspaceless %}
 | 
				
			||||||
@@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					{% extends "base.html" %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% block js %}{% spaceless %}
 | 
				
			||||||
 | 
						{% compress js %}
 | 
				
			||||||
 | 
							{{ super() }}
 | 
				
			||||||
 | 
						    <script type="text/javascript">
 | 
				
			||||||
 | 
						        alert("this alert shouldn't be alone!");
 | 
				
			||||||
 | 
						    </script>
 | 
				
			||||||
 | 
						{% endcompress %}
 | 
				
			||||||
 | 
					{% endspaceless %}{% endblock %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% block css %}{% endblock %}
 | 
				
			||||||
@@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					{% spaceless %}
 | 
				
			||||||
 | 
					{% block js %}
 | 
				
			||||||
 | 
					    <script type="text/javascript">
 | 
				
			||||||
 | 
					        alert("test using block.super");
 | 
				
			||||||
 | 
					    </script>
 | 
				
			||||||
 | 
					{% endblock %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% block css %}
 | 
				
			||||||
 | 
					    <style type="text/css">
 | 
				
			||||||
 | 
					        body {
 | 
				
			||||||
 | 
					            background: red;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    </style>
 | 
				
			||||||
 | 
					{% endblock %}
 | 
				
			||||||
 | 
					{% endspaceless %}
 | 
				
			||||||
@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					{% extends "base.html" %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% block js %}{% spaceless %}
 | 
				
			||||||
 | 
						{% compress js %}
 | 
				
			||||||
 | 
						    <script type="text/javascript">
 | 
				
			||||||
 | 
						        alert("this alert should be alone.");
 | 
				
			||||||
 | 
						    </script>
 | 
				
			||||||
 | 
						{% endcompress %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						{% compress js %}
 | 
				
			||||||
 | 
							{{ super() }}
 | 
				
			||||||
 | 
						    <script type="text/javascript">
 | 
				
			||||||
 | 
						        alert("this alert shouldn't be alone!");
 | 
				
			||||||
 | 
						    </script>
 | 
				
			||||||
 | 
						{% endcompress %}
 | 
				
			||||||
 | 
					{% endspaceless %}{% endblock %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% block css %}{% endblock %}
 | 
				
			||||||
@@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					{% spaceless %}
 | 
				
			||||||
 | 
					{% block js %}
 | 
				
			||||||
 | 
					    <script type="text/javascript">
 | 
				
			||||||
 | 
					        alert("test using multiple inheritance and block.super");
 | 
				
			||||||
 | 
					    </script>
 | 
				
			||||||
 | 
					{% endblock %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% block css %}
 | 
				
			||||||
 | 
					    <style type="text/css">
 | 
				
			||||||
 | 
					        body {
 | 
				
			||||||
 | 
					            background: red;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    </style>
 | 
				
			||||||
 | 
					{% endblock %}
 | 
				
			||||||
 | 
					{% endspaceless %}
 | 
				
			||||||
@@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					{% extends "base.html" %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% block css %}{% endblock %}
 | 
				
			||||||
@@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					{% extends "base2.html" %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% block js %}{% spaceless %}
 | 
				
			||||||
 | 
						{% compress js %}
 | 
				
			||||||
 | 
						    {{ super() }}
 | 
				
			||||||
 | 
						    <script type="text/javascript">
 | 
				
			||||||
 | 
						        alert("this alert shouldn't be alone!");
 | 
				
			||||||
 | 
						    </script>
 | 
				
			||||||
 | 
						{% endcompress %}
 | 
				
			||||||
 | 
					{% endspaceless %}{% endblock %}
 | 
				
			||||||
@@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					{% spaceless %}
 | 
				
			||||||
 | 
					{% block js %}
 | 
				
			||||||
 | 
					    <script type="text/javascript">
 | 
				
			||||||
 | 
					        alert("test using multiple inheritance and block.super");
 | 
				
			||||||
 | 
					    </script>
 | 
				
			||||||
 | 
					{% endblock %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% block css %}
 | 
				
			||||||
 | 
					    <style type="text/css">
 | 
				
			||||||
 | 
					        body {
 | 
				
			||||||
 | 
					            background: red;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    </style>
 | 
				
			||||||
 | 
					{% endblock %}
 | 
				
			||||||
 | 
					{% endspaceless %}
 | 
				
			||||||
@@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					{% extends "base.html" %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% block css %}{% endblock %}
 | 
				
			||||||
@@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					{% extends "base2.html" %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% block js %}{% spaceless %}
 | 
				
			||||||
 | 
						{% compress js %}
 | 
				
			||||||
 | 
						    {{ super() }}
 | 
				
			||||||
 | 
						    <script type="text/javascript">
 | 
				
			||||||
 | 
						        alert("this alert shouldn't be alone!");
 | 
				
			||||||
 | 
						    </script>
 | 
				
			||||||
 | 
						{% endcompress %}
 | 
				
			||||||
 | 
					{% endspaceless %}{% endblock %}
 | 
				
			||||||
@@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					{% spaceless %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% if condition %}
 | 
				
			||||||
 | 
					    {% compress js%}
 | 
				
			||||||
 | 
					        <script type="text/javascript">alert("{{ condition|default("yellow") }}");</script>
 | 
				
			||||||
 | 
					        {% with names=[] %}
 | 
				
			||||||
 | 
					          {% do names.append("js/one.js") %}
 | 
				
			||||||
 | 
					          {% do names.append("js/nonasc.js") %}
 | 
				
			||||||
 | 
					          {% for name in names %}
 | 
				
			||||||
 | 
					          <script type="text/javascript" src="{{url_for('static', filename=name)}}"></script>
 | 
				
			||||||
 | 
					          {% endfor %}
 | 
				
			||||||
 | 
					        {% endwith %}
 | 
				
			||||||
 | 
					    {% endcompress %}
 | 
				
			||||||
 | 
					{% endif %}{% endspaceless %}
 | 
				
			||||||
@@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					{% spaceless %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% if condition %}
 | 
				
			||||||
 | 
					    {% compress js%}
 | 
				
			||||||
 | 
					        <script type="text/javascript">alert("{{ condition|default("yellow") }}");</script>
 | 
				
			||||||
 | 
					    {% endcompress %}
 | 
				
			||||||
 | 
					{% endif %}{% endspaceless %}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{% extends "buggy_template.html" %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% compress css %}
 | 
				
			||||||
 | 
					    <style type="text/css">
 | 
				
			||||||
 | 
					        body {
 | 
				
			||||||
 | 
					            background: orange;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    </style>
 | 
				
			||||||
 | 
					{% endcompress %}
 | 
				
			||||||
@@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					{% compress css %}
 | 
				
			||||||
 | 
					    <style type="text/css">
 | 
				
			||||||
 | 
					        body {
 | 
				
			||||||
 | 
					            background: pink;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    </style>
 | 
				
			||||||
 | 
					{% endcompress %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% fail %}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{% extends "missing.html" %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% compress css %}
 | 
				
			||||||
 | 
					    <style type="text/css">
 | 
				
			||||||
 | 
					        body {
 | 
				
			||||||
 | 
					            background: purple;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    </style>
 | 
				
			||||||
 | 
					{% endcompress %}
 | 
				
			||||||
@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					{% spaceless %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% compress js %}
 | 
				
			||||||
 | 
					    <script type="text/javascript">
 | 
				
			||||||
 | 
					        alert("Basic test, should pass in spite of errors in other templates");
 | 
				
			||||||
 | 
					    </script>
 | 
				
			||||||
 | 
					{% endcompress %}
 | 
				
			||||||
 | 
					{% endspaceless %}
 | 
				
			||||||
@@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					{% compress js %}
 | 
				
			||||||
 | 
					    <script type="text/coffeescript" charset="utf-8">
 | 
				
			||||||
 | 
					      a = 1
 | 
				
			||||||
 | 
					    </script>
 | 
				
			||||||
 | 
					{% endcompress %}
 | 
				
			||||||
@@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					{% spaceless %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% compress js, inline %}
 | 
				
			||||||
 | 
					    <script type="text/javascript">
 | 
				
			||||||
 | 
					        var value = '{{ test_non_ascii_value }}';
 | 
				
			||||||
 | 
					    </script>
 | 
				
			||||||
 | 
					{% endcompress %}{% endspaceless %}
 | 
				
			||||||
@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					{% spaceless %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% compress js %}
 | 
				
			||||||
 | 
					    <script>alert('amazing');</script>
 | 
				
			||||||
 | 
					    <script type="text/javascript" src="{{ url_for('static', filename="js/one.js") }}"></script>
 | 
				
			||||||
 | 
					{% endcompress %}{% endspaceless %}
 | 
				
			||||||
@@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					{% spaceless %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% compress js %}
 | 
				
			||||||
 | 
					    <script type="text/javascript">
 | 
				
			||||||
 | 
					        alert("{{ lower("testtemplatetag") }}");
 | 
				
			||||||
 | 
					    </script>
 | 
				
			||||||
 | 
					{% endcompress %}{% endspaceless %}
 | 
				
			||||||
@@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					{% spaceless %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% compress js %}
 | 
				
			||||||
 | 
					    <script type="text/javascript">
 | 
				
			||||||
 | 
					        alert("{{ content|default("Ooops!") }}");
 | 
				
			||||||
 | 
					    </script>
 | 
				
			||||||
 | 
					{% endcompress %}{% endspaceless %}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user