o
    ~¨Êhû  ã                   @   sT   d dl mZmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 G dd„ deƒZdS )	é    )Úwith_statementÚunicode_literals)ÚTestCase)Úoverride_settings)Úsettings)Úcss_tagc                   @   s¢   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	e
dd�dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&S )'ÚTestJinja2CompressorExtensiona  
    Test case for jinja2 extension.

    .. note::
       At tests we need to make some extra care about whitespace. Please note
       that we use jinja2 specific controls (*minus* character at block's
       beginning or end). For more information see jinja2 documentation.
    c                 C   s*   |   | ¡ | ¡ d| ¡ | ¡ f ¡ d S )Nz%r != %r)ÚassertEqualÚstrip)ÚselfÚresultÚexpected© r   úQ/var/www/html/env/lib/python3.10/site-packages/compressor/tests/test_jinja2ext.pyÚassertStrippedEqual   s   ÿz1TestJinja2CompressorExtension.assertStrippedEqualc                 C   s0   dd l }|| _ ddlm} | j j|gd�| _d S )Nr   )ÚCompressorExtension)Ú
extensions)Újinja2Úcompressor.contrib.jinja2extr   ÚEnvironmentÚenv)r   r   r   r   r   r   ÚsetUp   s   z#TestJinja2CompressorExtension.setUpc                 C   ó   |   | jjj| jjd¡ d S )Nz%{% compress %}Foobar{% endcompress %}©ÚassertRaisesr   Ú
exceptionsÚTemplateSyntaxErrorr   Úfrom_string©r   r   r   r   Ú'test_error_raised_if_no_arguments_given   ó   ÿzETestJinja2CompressorExtension.test_error_raised_if_no_arguments_givenc                 C   r   )Nz){% compress foo %}Foobar{% endcompress %}r   r   r   r   r   Ú%test_error_raised_if_wrong_kind_given"   r    zCTestJinja2CompressorExtension.test_error_raised_if_wrong_kind_givenc                 C   r   )Nz,{% compress js %}Foobar{% endcompress css %}r   r   r   r   r   Ú-test_error_raised_if_wrong_closing_kind_given&   r    zKTestJinja2CompressorExtension.test_error_raised_if_wrong_closing_kind_givenc                 C   r   )Nz-{% compress css foo %}Foobar{% endcompress %}r   r   r   r   r   Ú%test_error_raised_if_wrong_mode_given*   r    zCTestJinja2CompressorExtension.test_error_raised_if_wrong_mode_givenF©ÚCOMPRESS_ENABLEDc                 C   sb   d  g d¢¡}d| d }| j |¡}|  || ¡ ¡ d| d }| j |¡}|  || ¡ ¡ d S )NÚ
)zJ<link rel="stylesheet" href="css/one.css" type="text/css" charset="utf-8">z;<style type="text/css">p { border:5px solid green;}</style>zJ<link rel="stylesheet" href="css/two.css" type="text/css" charset="utf-8">z{% compress css %}z{% endcompress %}z{% endcompress css %})Újoinr   r   r	   Úrender)r   Útag_bodyÚtemplate_stringÚtemplater   r   r   Útest_compress_is_disabled.   s   z7TestJinja2CompressorExtension.test_compress_is_disabledc                 C   ó,   | j  d¡}dtji}|  d| |¡¡ d S )Nz>{% compress js %}{% block js %}{% endblock %}{% endcompress %}Ú
STATIC_URLÚ ©r   r   r   ÚCOMPRESS_URLr	   r(   ©r   r+   Úcontextr   r   r   Útest_empty_tag>   s   
z,TestJinja2CompressorExtension.test_empty_tagc                 C   r-   )NzJ{% compress js %}{% block js %}
        {% endblock %}{% endcompress js %}r.   r/   r0   r2   r   r   r   Útest_empty_tag_with_kindC   s   
z6TestJinja2CompressorExtension.test_empty_tag_with_kindc                 C   ó4   | j  d¡}dtji}tdƒ}|  || |¡¡ d S )Na7  {% compress css -%}
        <link rel="stylesheet" href="{{ STATIC_URL }}css/one.css" type="text/css" charset="utf-8">
        <style type="text/css">p { border:5px solid green;}</style>
        <link rel="stylesheet" href="{{ STATIC_URL }}css/two.css" type="text/css" charset="utf-8">
        {% endcompress %}r.   z"/static/CACHE/css/58a8c0714e59.css©r   r   r   r1   r   r	   r(   ©r   r+   r3   Úoutr   r   r   Útest_css_tagI   s   
z*TestJinja2CompressorExtension.test_css_tagc                 C   r6   )Nz×{% compress css -%}
        <link rel="stylesheet" href="{{ STATIC_URL }}css/nonasc.css" type="text/css" charset="utf-8">
        <style type="text/css">p { border:5px solid green;}</style>
        {% endcompress %}r.   z"/static/CACHE/css/4263023f49d6.cssr7   r8   r   r   r   Útest_nonascii_css_tagS   s   
z3TestJinja2CompressorExtension.test_nonascii_css_tagc                 C   ó0   | j  d¡}dtji}d}|  || |¡¡ d S )Nzâ{% compress js -%}
        <script src="{{ STATIC_URL }}js/one.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript" charset="utf-8">obj.value = "value";</script>
        {% endcompress %}r.   zO<script type="text/javascript" src="/static/CACHE/js/74e158ccb432.js"></script>r0   r8   r   r   r   Útest_js_tag\   ó   
z)TestJinja2CompressorExtension.test_js_tagc                 C   r<   )Nuè   {% compress js -%}
        <script src="{{ STATIC_URL }}js/nonasc.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript" charset="utf-8">var test_value = "â€”";</script>
        {% endcompress %}r.   zO<script type="text/javascript" src="/static/CACHE/js/a18195c6ae48.js"></script>r0   r8   r   r   r   Útest_nonascii_js_tage   r>   z2TestJinja2CompressorExtension.test_nonascii_js_tagc                 C   r<   )Nuá   {% compress js -%}
        <script src="{{ STATIC_URL }}js/nonasc-latin1.js" type="text/javascript" charset="latin-1"></script>
        <script type="text/javascript">var test_value = "â€”";</script>
        {% endcompress %}r.   zO<script type="text/javascript" src="/static/CACHE/js/f64debbd8878.js"></script>r0   r8   r   r   r   Útest_nonascii_latin1_js_tagn   r>   z9TestJinja2CompressorExtension.test_nonascii_latin1_js_tagc                 C   s:   | j  d¡}dtji}d ddg¡}|  || |¡¡ d S )NzÜ{% compress css, inline -%}
        <link rel="stylesheet" href="{{ STATIC_URL }}css/one.css" type="text/css" charset="utf-8">
        <style type="text/css">p { border:5px solid green;}</style>
        {% endcompress %}r.   r&   z0<style type="text/css">body { background:#990; }z$p { border:5px solid green;}</style>)r   r   r   r1   r'   r	   r(   r8   r   r   r   Útest_css_inlinew   s   
þz-TestJinja2CompressorExtension.test_css_inlinec                 C   r<   )Nzú{% compress js, inline -%}
        <script src="{{ STATIC_URL }}js/one.js" type="text/css" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript" charset="utf-8">obj.value = "value";</script>
        {% endcompress %}r.   zC<script type="text/javascript">;obj={};;obj.value="value";</script>r0   r8   r   r   r   Útest_js_inlineƒ   r>   z,TestJinja2CompressorExtension.test_js_inlinec                 C   s\   | j dd�� | j d¡}W d   ƒ n1 sw   Y  d}dt ji}|  || |¡¡ d S )NFr$   ua   {% compress css %}<style type="text/css">/* Ñ€ÑƒÑ�Ñ�ÐºÐ¸Ð¹ Ñ‚ÐµÐºÑ�Ñ‚ */</style>{% endcompress %}zS<link rel="stylesheet" href="/static/CACHE/css/c836c9caed5c.css" type="text/css" />r.   )r   r   r   r1   r	   r(   )r   r+   r9   r3   r   r   r   Útest_nonascii_inline_cssŒ   s   ÿ
z6TestJinja2CompressorExtension.test_nonascii_inline_cssN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r!   r"   r#   r   r,   r4   r5   r:   r;   r=   r?   r@   rA   rB   rC   r   r   r   r   r      s(    

					r   N)Ú
__future__r   r   Údjango.testr   Údjango.test.utilsr   Úcompressor.confr   Úcompressor.tests.test_baser   r   r   r   r   r   Ú<module>   s   