o
    h!                     @   s   d dl mZ d dlmZmZ d dlmZ d dlmZ d dl	m
Z
mZ d dlmZ d dlmZ G dd	 d	eeZG d
d deZG dd deZdS )    )get_user_model)TestCaseoverride_settings)reverse)PasswordResetForm)CustomLoginFormCustomPasswordResetForm)Page)WagtailTestUtilsc                   @   s   e Zd Zdg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e
dddd Ze
dddd Ze
dddd Ze
dddd Ze
dddd  Zd!d" Ze
d#d$d%d& Zd'd( Zd)S )*TestLoginViewz	test.jsonc                 C   s   |   | _tjjdd| _d S )Nz/home/)url_path)create_test_useruserr	   objectsgethomepageself r   ^/var/www/html/ndineBlogger/venv/lib/python3.10/site-packages/wagtail/admin/tests/test_views.pysetUp   s   
zTestLoginView.setUpc                 C   s,   | j tdddd}| |td d S )Nwagtailadmin_logintest@email.compasswordusernamer   wagtailadmin_home)clientpostr   assertRedirectsr   responser   r   r   test_success_redirect   s   z#TestLoginView.test_success_redirectc                 C   sH   t d| jjgd}t dd| }| j|ddd}| || d S )Nwagtailadmin_pages:editargsr   ?next={}r   r   r   )r   r   pkformatr   r   r   r   homepage_admin_url	login_urlr!   r   r   r   3test_success_redirect_honour_redirect_get_parameter   s   
zATestLoginView.test_success_redirect_honour_redirect_get_parameterc                 C   s<   t d| jjgd}| jt ddd|d}| || d S )Nr#   r$   r   r   r   )r   r   next)r   r   r'   r   r   r   )r   r*   r!   r   r   r   4test_success_redirect_honour_redirect_post_parameter*   s   zBTestLoginView.test_success_redirect_honour_redirect_post_parameterc                 C   s2   | j ddd | jtd}| |td d S )Nr   r   r   r   r   )loginr   r   r   r   r    r   r   r   #test_already_authenticated_redirect6   s   z1TestLoginView.test_already_authenticated_redirectc                 C   sN   | j ddd td| jjgd}tdd| }| j|}| || d S )Nr   r   r   r#   r$   r   r&   )r/   r   r   r'   r(   r   r   r   r)   r   r   r   Atest_already_authenticated_redirect_honour_redirect_get_parameter<   s   
zOTestLoginView.test_already_authenticated_redirect_honour_redirect_get_parameterzhttp://example.com/login/)WAGTAILADMIN_LOGIN_URLc                 C   s$   | j td}| j|ddd d S )Nr   z&http://example.com/login/?next=/admin/F)fetch_redirect_response)r   r   r   r   r    r   r   r   1test_unauthenticated_redirect_to_custom_login_urlF   s   
z?TestLoginView.test_unauthenticated_redirect_to_custom_login_urlde)LANGUAGE_CODEc                 C       | j td}| |d d S )Nr   zU<html lang="de" dir="ltr" class="w-theme-system w-density-default w-contrast-system">r   r   r   assertContainsr    r   r   r   test_language_codeO   
   z TestLoginView.test_language_codehec                 C   r7   )Nr   zU<html lang="he" dir="rtl" class="w-theme-system w-density-default w-contrast-system">r8   r    r   r   r   (test_bidi_language_changes_dir_attributeW   r;   z6TestLoginView.test_bidi_language_changes_dir_attributez.wagtail.admin.tests.test_forms.CustomLoginForm)WAGTAILADMIN_USER_LOGIN_FORMc                 C   4   | j td}| j|ddd | j|ddd d S )Nr   
            <input type="text" name="captcha" required
            aria-describedby="id_captcha-helptext" id="id_captcha">
            Thtml
            <div class="w-field__help" id="id_captcha-helptext" data-field-help>
                <div class="help">should be in extra_fields()</div>
            </div>
            r8   r    r   r   r   $test_login_page_renders_extra_fields_      
z2TestLoginView.test_login_page_renders_extra_fieldsc                 C   s*   | j tddddd}| |d d S )Nr   r   r   unsolvedr   r   captchazCaptcha is invalid)r   r   r   r9   r    r   r   r   4test_login_page_renders_custom_form_non_field_errorsv   s   zBTestLoginView.test_login_page_renders_custom_form_non_field_errorsc                 C   sD   | j tddddd}tjd dt ji }| j||dd	 d S )
Nr   r   zbad-passwordsolvedrG   invalid_loginusername_fieldTrA   )r   r   r   r   error_messagesr   USERNAME_FIELDr9   )r   r!   msgr   r   r   /test_login_page_renders_custom_form_login_error   s   z=TestLoginView.test_login_page_renders_custom_form_login_errorc                 C   s.   | j tdddd | | j j  d S )Nr   r   r   r   )r   r   r   
assertTruesessionget_expire_at_browser_closer   r   r   r   $test_session_expire_on_browser_close   s   z2TestLoginView.test_session_expire_on_browser_close   )SESSION_COOKIE_AGEc                 C   sD   | j tddddd | | j j  | | j j d d S )Nr   r   r   T)r   r   rememberrU   )r   r   r   assertFalserR   rS   assertEqualget_expiry_ager   r   r   r   test_session_expiry_remember   s   
z*TestLoginView.test_session_expiry_rememberc                 C   sr   t  }|jdddddi}|jD ]
}||vr|||< q|jjdi | | jtdddd}| |td d S )	Nztest2@email.comemailr   z  whitespaced_password  r   r   r   r   )	r   rN   REQUIRED_FIELDSr   create_superuserr   r   r   r   )r   
user_model	user_datafieldr!   r   r   r   %test_password_whitespace_not_stripped   s"   
z3TestLoginView.test_password_whitespace_not_strippedN)__name__
__module____qualname__fixturesr   r"   r,   r.   r0   r1   r   r4   r:   r=   rD   rI   rP   rT   r[   rb   r   r   r   r   r      s<    









r   c                   @   s&   e Zd Zdd Zedddd ZdS )TestPasswordResetViewc                 C   sx   | j td}| |jdt tdd | j td}| |jdt W d    d S 1 s5w   Y  d S )Nwagtailadmin_password_resetform6wagtail.admin.tests.test_forms.CustomPasswordResetForm%WAGTAILADMIN_USER_PASSWORD_RESET_FORM)r   r   r   assertIsInstancecontextr   r   r   r    r   r   r   *test_password_reset_view_uses_correct_form   s   "z@TestPasswordResetView.test_password_reset_view_uses_correct_formrj   rk   c                 C   r?   )Nrh   r@   TrA   rC   r8   r    r   r   r   -test_password_reset_page_renders_extra_fields   rE   zCTestPasswordResetView.test_password_reset_page_renders_extra_fieldsN)rc   rd   re   ro   r   rp   r   r   r   r   rg      s    
rg   c                   @   s   e Zd Zdd ZdS )TestJsi18nViewc                 C   s@   | j td}| |jd |d dd }| |d d S )Nwagtailadmin_javascript_catalog   zcontent-type;r   ztext/javascript)r   r   r   rY   status_codesplit)r   r!   content_typer   r   r   "test_jsi18n_does_not_require_login   s   z1TestJsi18nView.test_jsi18n_does_not_require_loginN)rc   rd   re   rx   r   r   r   r   rq      s    rq   N)django.contrib.authr   django.testr   r   django.urlsr   wagtail.admin.forms.authr   wagtail.admin.tests.test_formsr   r   wagtail.modelsr	   wagtail.test.utilsr
   r   rg   rq   r   r   r   r   <module>   s     6#