o
    n¨Êh¡  ã                   @   s€   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
Zd dlmZmZ edd	„ ƒZed
gd�G dd„ deƒƒZdS )é    )Úcontextmanager)Úforms)ÚTestCase)Úoverride_settings)ÚoverrideN)Úget_language_configÚTinyMCEc                 c   s`   � i }|   ¡ D ]\}}ttj|ƒ||< ttj||ƒ qd V  |  ¡ D ]}ttj||| ƒ q"d S )N)ÚitemsÚgetattrÚtinymceÚsettingsÚsetattrÚkeys)Úsettings_dictÚsaved_valuesÚsettingÚvalue© r   úL/var/www/html/env/lib/python3.10/site-packages/tinymce/tests/test_widgets.pyÚoverride_tinymce_settings   s   €ÿr   )ÚenÚEnglish)Ú	LANGUAGESc                   @   sZ   e Zd Zdd„ Zedgd�dd„ ƒZdd„ Zd	d
„ Zdd„ Zedd�dd„ ƒZ	dd„ Z
dS )ÚTestWidgetsc                 C   s`   t ƒ }dddddœ}|  ||¡ td ƒ� t ƒ }|  ||¡ W d   ƒ d S 1 s)w   Y  d S )Nú+English=enÚltrr   ú/tinymce/spellchecker/©Úspellchecker_languagesÚdirectionalityÚlanguageÚspellchecker_rpc_url)r   ÚassertEqualr   ©ÚselfÚconfigÚ	config_okr   r   r   Útest_default_config   s   ü
"ýzTestWidgets.test_default_configr   )ÚLANGUAGES_BIDIc                 C   s$   t ƒ }dddddœ}|  ||¡ d S )Nr   Úrtlr   r   r   ©r   r"   r#   r   r   r   Útest_default_config_rtl*   s   üz#TestWidgets.test_default_config_rtlc                 C   s&   t dƒ}dddddœ}|  ||¡ d S )Nzru-ruz
English=enr   r   r   r   r*   r#   r   r   r   Útest_content_language5   s   üz!TestWidgets.test_content_languagec                 C   sp   t ƒ }|jddddid�}|  d|¡ |  d|¡ |  d|¡ |  d|¡ |jdddd	d
œd�}|  d|¡ d S )NÚfoobarúlorem ipsumÚidÚ	id_foobar©Úattrszid="id_foobar"zname="foobar"zclass="tinymce"Úfoo)r/   Úclasszclass="foo tinymce"©r   ÚrenderÚassertIn©r$   ÚwidgetÚhtmlr   r   r   Útest_tinymce_widget?   s   
ÿÿzTestWidgets.test_tinymce_widgetc                 C   s@   t dddœd�}|jddddid�}|  d	|¡ |  d
|¡ d S )NéP   é   )ÚcolsÚrowsr1   r-   r.   r/   r0   z	cols="80"z	rows="30"r5   r8   r   r   r   Útest_tinymce_widget_sizeM   s   
ÿz$TestWidgets.test_tinymce_widget_sizeF)ÚTINYMCE_INCLUDE_JQUERYc                 C   s‚   t ƒ }|  |j ¡ g d¢¡ |  t|j ¡ ƒg ¡ tdddœƒ� t ƒ }|  |j ¡ ddg¡ W d   ƒ d S 1 s:w   Y  d S )N)zC<script type="text/javascript" src="/tinymce/compressor/"></script>zY<script type="text/javascript" src="/static/django_tinymce/jquery-1.9.1.min.js"></script>úU<script type="text/javascript" src="/static/django_tinymce/init_tinymce.js"></script>F)ÚUSE_COMPRESSORÚINCLUDE_JQUERYzK<script type="text/javascript" src="/static/tiny_mce/tiny_mce.js"></script>rB   )r   r"   ÚmediaÚ	render_jsÚlistÚ
render_cssr   )r$   r9   r   r   r   Útest_tinymce_widget_mediaU   s   þþþ"þz%TestWidgets.test_tinymce_widget_mediac                 C   s,   G dd„ dt jƒ}t|ƒ ƒ}|  d|¡ dS )zÎ
        The TinyMCE widget should never output the required HTML attribute, even
        if the form field is required, as the client-side browser validation
        might prevent form submission.
        c                   @   s   e Zd Zejdeƒ d�ZdS )z:TestWidgets.test_tinymce_widget_required.<locals>.TinyFormT)Úrequiredr9   N)Ú__name__Ú
__module__Ú__qualname__r   Ú	CharFieldr   Úfieldr   r   r   r   ÚTinyFormq   s    rP   rJ   N)r   ÚFormÚstrÚassertNotIn)r$   rP   Úrenderedr   r   r   Útest_tinymce_widget_requiredk   s   
z(TestWidgets.test_tinymce_widget_requiredN)rK   rL   rM   r'   r   r+   r,   r;   r@   rI   rU   r   r   r   r   r      s    




r   )Ú
contextlibr   Údjangor   Údjango.testr   Údjango.test.utilsr   Údjango.utils.translationr   Útinymce.settingsr   Útinymce.widgetsr   r   r   r   r   r   r   r   Ú<module>   s   


