o
    >h@                     @   s   d Z 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
mZmZ ddlmZ ddlmZ d	ed
efddZG dd deZdS )z
Test L{twisted.web.pages}
    )cast)SynchronousTestCase)Headers)IRequest)	errorPage	forbiddennotFound)	IResource)DummyRequestresourcereturnc                 C   s   t dg}| tt| |S )z
    Render a response using the given resource.

    @param resource: The resource to use to handle the request.

    @returns: The request that the resource handled,
        )r
   renderr   r   )r   request r   {/var/www/vedio/testing/chatpythonscript.ninositsolution.com/env/lib/python3.10/site-packages/twisted/web/test/test_pages.py_render   s   
r   c                   @   sV   e Zd ZdZdZdedededdfddZdd	d
Z	dddZ
dddZdddZdS )ErrorPageTestszu
    Test L{twisted.web.pages._ErrorPage} and its public aliases L{errorPage},
    L{notFound} and L{forbidden}.
    Nr   codebodyr   c                 C   sJ   |  |j| |  |jtddgi |  d|jd|d d S )Ns   content-types   text/html; charset=utf-8r   zlatin-1)assertEqualresponseCoderesponseHeadersr   joinwrittendecode)selfr   r   r   r   r   r   assertResponse*   s   zErrorPageTests.assertResponsec                 C   s   |  ttddddd dS )zS
        The I{brief} and I{detail} parameters are HTML-escaped on render.
        i  zA & Bz<script>alert('oops!')s   <!DOCTYPE html>
<html><head><title>400 - A &amp; B</title></head><body><h1>A &amp; B</h1><p>&lt;script&gt;alert('oops!')</p></body></html>N)r   r   r   r   r   r   r   test_escapesHTML7   s
   zErrorPageTests.test_escapesHTMLc              	   C   s0   t ddd}| |dtttdg| dS )z
        The C{getChild} method of the resource returned by L{errorPage} returns
        the L{_ErrorPage} it is called on.
          foobars   namer   N)r   assertIsgetChildr   r   r
   )r   pager   r   r   test_getChildF   s
   zErrorPageTests.test_getChildc                 C      |  tt dd dS )zq
        The default arguments to L{twisted.web.pages.notFound} produce
        a reasonable error page.
        r    s   <!DOCTYPE html>
<html><head><title>404 - No Such Resource</title></head><body><h1>No Such Resource</h1><p>Sorry. No luck finding that resource.</p></body></html>N)r   r   r   r   r   r   r   test_notFoundDefaultsQ   
   z$ErrorPageTests.test_notFoundDefaultsc                 C   r'   )zr
        The default arguments to L{twisted.web.pages.forbidden} produce
        a reasonable error page.
        i  s   <!DOCTYPE html>
<html><head><title>403 - Forbidden Resource</title></head><body><h1>Forbidden Resource</h1><p>Sorry, resource is forbidden.</p></body></html>N)r   r   r   r   r   r   r   test_forbiddenDefaultsb   r)   z%ErrorPageTests.test_forbiddenDefaults)r   N)__name__
__module____qualname____doc__maxDiffr
   intbytesr   r   r&   r(   r*   r   r   r   r   r   "   s    


r   N)r.   typingr   twisted.trial.unittestr   twisted.web.http_headersr   twisted.web.iwebr   twisted.web.pagesr   r   r   twisted.web.resourcer	   twisted.web.test.requesthelperr
   r   r   r   r   r   r   <module>   s   