ó
ç'ÊUc           @   s~   d  d l  Z  d  d l m Z d  d l m Z d  d l m Z m Z m Z d  d l	 m
 Z
 d g Z d e  j f d „  ƒ  YZ d S(	   iÿÿÿÿN(   t   AjaxCrawlMiddleware(   t   Spider(   t   Requestt   HtmlResponset   Response(   t   get_crawlers&   scrapy.downloadermiddlewares.ajaxcrawlt   AjaxCrawlMiddlewareTestc           B   sV   e  Z d  „  Z d „  Z d d d „ Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 RS(	   c         C   s>   t  t i t d 6ƒ } | j d ƒ |  _ t j | ƒ |  _ d  S(   Nt   AJAXCRAWL_ENABLEDt   foo(   R   R   t   Truet   _create_spidert   spiderR    t   from_crawlert   mw(   t   selft   crawler(    (    sQ   /home/travis/build/scrapy/scrapy/tests/test_downloadermiddleware_ajaxcrawlable.pyt   setUp   s    c         C   s   d S(   NsJ   <html><head><meta name="fragment" content="!"/></head><body></body></html>(    (   R   (    (    sQ   /home/travis/build/scrapy/scrapy/tests/test_downloadermiddleware_ajaxcrawlable.pyt   _ajaxcrawlable_body   s    c         C   s:   t  | | p i   } t | d | | p* i  } | | f S(   Nt   request(   R   R   (   R   t   urlt
   req_kwargst   resp_kwargst   reqt   resp(    (    sQ   /home/travis/build/scrapy/scrapy/tests/test_downloadermiddleware_ajaxcrawlable.pyt	   _req_resp   s    c         C   sN   |  j  d i d d 6ƒ \ } } |  j j | | |  j ƒ } |  j | | ƒ d  S(   Ns   http://example.com/t   HEADt   method(   R   R   t   process_responseR   t   assertEqual(   R   R   R   t   resp2(    (    sQ   /home/travis/build/scrapy/scrapy/tests/test_downloadermiddleware_ajaxcrawlable.pyt   test_non_get   s    c         C   sS   t  d ƒ } t d d d d | ƒ} |  j j | | |  j ƒ } |  j | | ƒ d  S(   Ns   http://example.com/t   bodyt	   foobar R   (   R   R   R   R   R   t   assertIs(   R   R   R   R   (    (    sQ   /home/travis/build/scrapy/scrapy/tests/test_downloadermiddleware_ajaxcrawlable.pyt   test_binary_response   s    c         C   s   |  j  d i i d d 6d 6i |  j ƒ  d 6ƒ \ } } |  j j | | |  j ƒ } |  j | j d ƒ |  j | j d d ƒ d  S(   Ns   http://example.com/t   barR   t   metaR   s'   http://example.com/?_escaped_fragment_=(   R   R   R   R   R   R   R   R$   (   R   R   R   t   req2(    (    sQ   /home/travis/build/scrapy/scrapy/tests/test_downloadermiddleware_ajaxcrawlable.pyt   test_ajaxcrawl#   s    c         C   sÌ   |  j  d i  i |  j ƒ  d 6ƒ \ } } |  j j | | |  j ƒ } t | j d | j d | ƒ} |  j j | | |  j ƒ } t | t ƒ s  t	 | j
 | f ƒ ‚ |  j | j j d ƒ | | k sÈ t	 ‚ d  S(   Ns   http://example.com/R   R   s'   http://example.com/?_escaped_fragment_=(   R   R   R   R   R   R   R   R   t
   isinstancet   AssertionErrort	   __class__R   R   (   R   R   R   R%   R   t   resp3(    (    sQ   /home/travis/build/scrapy/scrapy/tests/test_downloadermiddleware_ajaxcrawlable.pyt   test_ajaxcrawl_loop-   s    ($c         C   sQ   |  j  d i  i d d 6ƒ \ } } |  j j | | |  j ƒ } |  j | | ƒ d  S(   Ns   http://example.com/s   <html></html>R   (   R   R   R   R   R!   (   R   R   R   R   (    (    sQ   /home/travis/build/scrapy/scrapy/tests/test_downloadermiddleware_ajaxcrawlable.pyt   test_noncrawlable_body7   s    "N(   t   __name__t
   __module__R   R   t   NoneR   R   R"   R&   R+   R,   (    (    (    sQ   /home/travis/build/scrapy/scrapy/tests/test_downloadermiddleware_ajaxcrawlable.pyR   
   s   					
	
(   t   unittestt&   scrapy.downloadermiddlewares.ajaxcrawlR    t   scrapy.spidersR   t   scrapy.httpR   R   R   t   scrapy.utils.testR   t   __doctests__t   TestCaseR   (    (    (    sQ   /home/travis/build/scrapy/scrapy/tests/test_downloadermiddleware_ajaxcrawlable.pyt   <module>   s   	