File: //usr/lib/python3/dist-packages/twisted/web/test/__pycache__/test_domhelpers.cpython-38.pyc
U
W[_+ � @ sn d Z ddlmZ ddlmZ ddlmZ ddlmZm Z G dd� d�Z
G dd � d e
e�ZG d
d� de
e�ZdS )
zH
Specific tests for (some of) the methods in L{twisted.web.domhelpers}.
� )�minidom)�unicode)�TestCase)�
domhelpers�microdomc @ s| e Zd ZdZdZdd� Zdd� Zdd� Zd d
� Zdd� Z d
d� Z
dd� Zdd� Zdd� Z
dd� Zdd� Zdd� Zdd� ZdS )�DOMHelpersTestsMixinz�
A mixin for L{TestCase} subclasses which defines test methods for
domhelpers functionality based on a DOM creation function provided by a
subclass.
Nc C s� | j �d�}t�|d�d j}d}| �||� |j}t�|d�d j}| �||� d}| j �|�}t�|d�}d�dd� |D ��}d}| �||� |j}t�|d�}d�d d� |D ��}| �||� d
} | j �| �}
t�|
d�}d�dd� |D ��}d}| �||� |
j}t�|d�}d�d
d� |D ��}| �||� d}| j �|�}
t�|
d�}|
j}||jd jd g}| �||� t�|d�}| �||� d S )Nz<foo/>�foor z<a><foo in="a"/><b><foo in="b"/></b><c><foo in="c"/></c><foo in="d"/><foo in="ef"/><g><foo in="g"/><h><foo in="h"/></h></g></a>� c S s g | ]}|� d ��qS ��in�ZgetAttribute��.0�node� r �B/usr/lib/python3/dist-packages/twisted/web/test/test_domhelpers.py�
<listcomp>$ s zBDOMHelpersTestsMixin.test_getElementsByTagName.<locals>.<listcomp>�abcdefghc S s g | ]}|� d ��qS r
r r
r r r r ) s aH
<a><foo in="a"/>
<b><foo in="b"/>
<d><foo in="d"/>
<g><foo in="g"/></g>
<h><foo in="h"/></h>
</d>
<e><foo in="e"/>
<i><foo in="i"/></i>
</e>
</b>
<c><foo in="c"/>
<f><foo in="f"/>
<j><foo in="j"/></j>
</f>
</c>
</a>c S s g | ]}|� d ��qS r
r r
r r r r ? s �
abdgheicfjc S s g | ]}|� d ��qS r
r r
r r r r D s z'<foo><bar></bar><baz><foo/></baz></foo>���) �dom�parseStringr ZgetElementsByTagNameZnodeName�assertEqual�documentElement�join�
childNodes)�self�doc1�actual�expectedZel1�doc2_xml�doc2Ztag_listZel2�doc3_xml�doc3Zel3�doc4_xml�doc4�rootr r r �test_getElementsByTagName sF z.DOMHelpersTestsMixin.test_getElementsByTagNamec C s� | j �d�}t�|�}d}| �||� t�|j�}| �||� d}| j �|�}t�|�}d}| �||� t�|j�}| �||� d}| j �|�}t�|�}d}| �||� t�|j�}| �||� d S )Nz
<a>foo</a>r z+<a>a<b>b</b><c>c</c>def<g>g<h>h</h></g></a>r zP<a>a<b>b<d>d<g>g</g><h>h</h></d><e>e<i>i</i></e></b><c>c<f>f<j>j</j></f></c></a>r �r r r ZgatherTextNodesr r )r r r r r r! r"