ó
öSQc        
   @   s»   d  d l  Z  d  d l m Z d  d l m Z d  d l m Z d  d l m Z m	 Z	 d  d l
 m Z e d d d	 d d e  j j e  j j e ƒ d ƒ f d d ƒ d e f d „  ƒ  Yƒ Z d S(   iÿÿÿÿN(   t   settings(   t   User(   t   skipIfCustomUser(   t   TestCaset   Client(   t   override_settingst	   LOGIN_URLs   /accounts/login/t   MIDDLEWARE_CLASSESs)   django.middleware.common.CommonMiddlewares4   django.contrib.sessions.middleware.SessionMiddlewares)   django.middleware.csrf.CsrfViewMiddlewares7   django.contrib.auth.middleware.AuthenticationMiddlewares4   django.contrib.messages.middleware.MessageMiddlewares>   django.contrib.flatpages.middleware.FlatpageFallbackMiddlewaret   TEMPLATE_DIRSt	   templatest   SITE_IDi   t   FlatpageCSRFTestsc           B   sq   e  Z d  d g Z d Z d „  Z d „  Z d „  Z e d „  ƒ Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z RS(   t   sample_flatpagest   example_sites#   django.contrib.flatpages.tests.urlsc         C   s   t  d t ƒ |  _ d  S(   Nt   enforce_csrf_checks(   R   t   Truet   client(   t   self(    (    s<   ../Django//lib/python/django/contrib/flatpages/tests/csrf.pyt   setUp   s    c         C   s9   |  j  j d ƒ } |  j | j d ƒ |  j | d ƒ d S(   sK   A flatpage can be served through a view, even when the middleware is in uses   /flatpage_root/flatpage/iÈ   s   <p>Isn't it flat!</p>N(   R   t   gett   assertEqualt   status_codet   assertContains(   R   t   response(    (    s<   ../Django//lib/python/django/contrib/flatpages/tests/csrf.pyt   test_view_flatpage   s    c         C   s)   |  j  j d ƒ } |  j | j d ƒ d S(   sa   A non-existent flatpage raises 404 when served through a view, even when the middleware is in uses    /flatpage_root/no_such_flatpage/i”  N(   R   R   R   R   (   R   R   (    (    s<   ../Django//lib/python/django/contrib/flatpages/tests/csrf.pyt   test_view_non_existent_flatpage%   s    c         C   sŠ   |  j  j d ƒ } |  j | d ƒ t j j d d d ƒ |  j  j d d d d ƒ |  j  j d ƒ } |  j | j d ƒ |  j	 | d	 ƒ d
 S(   s;   A flatpage served through a view can require authentications   /flatpage_root/sekrit/s,   /accounts/login/?next=/flatpage_root/sekrit/t   testusers   test@example.comt   s3kritt   usernamet   passwordiÈ   s   <p>Isn't it sekrit!</p>N(
   R   R   t   assertRedirectsR   t   objectst   create_usert   loginR   R   R   (   R   R   (    (    s<   ../Django//lib/python/django/contrib/flatpages/tests/csrf.pyt    test_view_authenticated_flatpage*   s    c         C   s9   |  j  j d ƒ } |  j | j d ƒ |  j | d ƒ d S(   s2   A flatpage can be served by the fallback middlwares
   /flatpage/iÈ   s   <p>Isn't it flat!</p>N(   R   R   R   R   R   (   R   R   (    (    s<   ../Django//lib/python/django/contrib/flatpages/tests/csrf.pyt   test_fallback_flatpage5   s    c         C   s)   |  j  j d ƒ } |  j | j d ƒ d S(   sJ   A non-existent flatpage raises a 404 when served by the fallback middlwares   /no_such_flatpage/i”  N(   R   R   R   R   (   R   R   (    (    s<   ../Django//lib/python/django/contrib/flatpages/tests/csrf.pyt#   test_fallback_non_existent_flatpage;   s    c         C   s)   |  j  j d ƒ } |  j | j d ƒ d S(   si   POSTing to a flatpage served through a view will raise a CSRF error if no token is provided (Refs #14156)s   /flatpage_root/flatpage/i“  N(   R   t   postR   R   (   R   R   (    (    s<   ../Django//lib/python/django/contrib/flatpages/tests/csrf.pyt   test_post_view_flatpage@   s    c         C   s)   |  j  j d ƒ } |  j | j d ƒ d S(   sl   POSTing to a flatpage served by the middleware will raise a CSRF error if no token is provided (Refs #14156)s
   /flatpage/i“  N(   R   R%   R   R   (   R   R   (    (    s<   ../Django//lib/python/django/contrib/flatpages/tests/csrf.pyt   test_post_fallback_flatpageE   s    c         C   s)   |  j  j d ƒ } |  j | j d ƒ d S(   s;   POSTing to an unknown page isn't caught as a 403 CSRF errors   /no_such_page/i”  N(   R   R%   R   R   (   R   R   (    (    s<   ../Django//lib/python/django/contrib/flatpages/tests/csrf.pyt   test_post_unknown_pageJ   s    (   t   __name__t
   __module__t   fixturest   urlsR   R   R   R   R"   R#   R$   R&   R'   R(   (    (    (    s<   ../Django//lib/python/django/contrib/flatpages/tests/csrf.pyR   	   s   							(   s)   django.middleware.common.CommonMiddlewares4   django.contrib.sessions.middleware.SessionMiddlewares)   django.middleware.csrf.CsrfViewMiddlewares7   django.contrib.auth.middleware.AuthenticationMiddlewares4   django.contrib.messages.middleware.MessageMiddlewares>   django.contrib.flatpages.middleware.FlatpageFallbackMiddleware(   t   ost   django.confR    t   django.contrib.auth.modelsR   t   django.contrib.auth.tests.utilsR   t   django.testR   R   t   django.test.utilsR   t   patht   joint   dirnamet   __file__R   (    (    (    s<   ../Django//lib/python/django/contrib/flatpages/tests/csrf.pyt   <module>   s         $	