§
    Ètºfº,  ã                   ó¤   — d Z ddlmZ ddlmZmZ ddlmZ ddlm	Z	 ddl
mZmZ  G d„ d¦  «        Z G d	„ d
ee	¦  «        Z G d„ dee	¦  «        ZdS )zH
Specific tests for (some of) the methods in L{twisted.web.domhelpers}.
é    )Úreload)ÚAnyÚOptional)Úminidom)ÚTestCase)Ú
domhelpersÚmicrodomc                   ó|   — e Zd ZU dZdZee         ed<   d„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚDOMHelpersTestsMixinz¥
    A mixin for L{TestCase} subclasses which defines test methods for
    domhelpers functionality based on a DOM creation function provided by a
    subclass.
    NÚdomc                 ó.  — | j                              d¦  «        }t          j        |d¦  «        d         j        }d}|                      ||¦  «         |j        }t          j        |d¦  «        d         j        }|                      ||¦  «         d}| j                              |¦  «        }t          j        |d¦  «        }d                     d„ |D ¦   «         ¦  «        }d}|                      ||¦  «         |j        }t          j        |d¦  «        }d                     d„ |D ¦   «         ¦  «        }|                      ||¦  «         d	}	| j                              |	¦  «        }
t          j        |
d¦  «        }d                     d
„ |D ¦   «         ¦  «        }d}|                      ||¦  «         |
j        }t          j        |d¦  «        }d                     d„ |D ¦   «         ¦  «        }|                      ||¦  «         d}| j                              |¦  «        }t          j        |d¦  «        }|j        }||j        d         j        d         g}|                      ||¦  «         t          j        |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                 ó8   — g | ]}|                      d ¦  «        ‘ŒS ©Úin©ÚgetAttribute©Ú.0Únodes     ú_/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/web/test/test_domhelpers.pyú
<listcomp>zBDOMHelpersTestsMixin.test_getElementsByTagName.<locals>.<listcomp>%   ó&   € ÐGÐGÐG°d˜$×+Ò+¨DÑ1Ô1ÐGÐGÐGó    Úabcdefghc                 ó8   — g | ]}|                      d ¦  «        ‘ŒS r   r   r   s     r   r   zBDOMHelpersTestsMixin.test_getElementsByTagName.<locals>.<listcomp>*   r   r   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                 ó8   — g | ]}|                      d ¦  «        ‘ŒS r   r   r   s     r   r   zBDOMHelpersTestsMixin.test_getElementsByTagName.<locals>.<listcomp>@   r   r   Ú
abdgheicfjc                 ó8   — g | ]}|                      d ¦  «        ‘ŒS r   r   r   s     r   r   zBDOMHelpersTestsMixin.test_getElementsByTagName.<locals>.<listcomp>E   r   r   z'<foo><bar></bar><baz><foo/></baz></foo>éÿÿÿÿ)	r   ÚparseStringr   ÚgetElementsByTagNameÚnodeNameÚassertEqualÚdocumentElementÚjoinÚ
childNodes)ÚselfÚdoc1ÚactualÚexpectedÚel1Údoc2_xmlÚdoc2Útag_listÚel2Údoc3_xmlÚdoc3Úel3Údoc4_xmlÚdoc4Úroots                  r   Útest_getElementsByTagNamez.DOMHelpersTestsMixin.test_getElementsByTagName   sŠ  € ØŒx×#Ò# HÑ-Ô-ˆÝÔ0°°uÑ=Ô=¸aÔ@ÔIˆØˆØ×Ò˜ Ñ*Ô*Ð*ØÔ"ˆÝÔ0°°eÑ<Ô<¸QÔ?ÔHˆØ×Ò˜ Ñ*Ô*Ð*ð UˆØŒx×#Ò# HÑ-Ô-ˆÝÔ2°4¸Ñ?Ô?ˆØ—’ÐGÐG¸hÐGÑGÔGÑHÔHˆØˆØ×Ò˜ Ñ*Ô*Ð*ØÔ"ˆÝÔ2°3¸Ñ>Ô>ˆØ—’ÐGÐG¸hÐGÑGÔGÑHÔHˆØ×Ò˜ Ñ*Ô*Ð*ðˆð" Œx×#Ò# HÑ-Ô-ˆÝÔ2°4¸Ñ?Ô?ˆØ—’ÐGÐG¸hÐGÑGÔGÑHÔHˆØˆØ×Ò˜ Ñ*Ô*Ð*ØÔ"ˆÝÔ2°3¸Ñ>Ô>ˆØ—’ÐGÐG¸hÐGÑGÔGÑHÔHˆØ×Ò˜ Ñ*Ô*Ð*à<ˆØŒx×#Ò# HÑ-Ô-ˆÝÔ0°°uÑ=Ô=ˆØÔ#ˆØ˜$œ/¨"Ô-Ô8¸Ô;Ð<ˆØ×Ò˜ Ñ*Ô*Ð*ÝÔ0°°uÑ=Ô=ˆØ×Ò˜ Ñ*Ô*Ð*Ð*Ð*r   c                 óÌ  — | j                              d¦  «        }t          j        |¦  «        }d}|                      ||¦  «         t          j        |j        ¦  «        }|                      ||¦  «         d}| j                              |¦  «        }t          j        |¦  «        }d}|                      ||¦  «         t          j        |j        ¦  «        }|                      ||¦  «         d}| j                              |¦  «        }t          j        |¦  «        }d}|                      ||¦  «         t          j        |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   ÚgatherTextNodesr%   r&   )r)   r*   r+   r,   r.   r/   r2   r3   s           r   Útest_gatherTextNodesz)DOMHelpersTestsMixin.test_gatherTextNodesQ   sT  € ØŒx×#Ò# LÑ1Ô1ˆÝÔ+¨DÑ1Ô1ˆØˆØ×Ò˜ Ñ*Ô*Ð*ÝÔ+¨DÔ,@ÑAÔAˆØ×Ò˜ Ñ*Ô*Ð*à@ˆØŒx×#Ò# HÑ-Ô-ˆÝÔ+¨DÑ1Ô1ˆØˆØ×Ò˜ Ñ*Ô*Ð*ÝÔ+¨DÔ,@ÑAÔAˆØ×Ò˜ Ñ*Ô*Ð*ð-ð 	ð Œx×#Ò# HÑ-Ô-ˆÝÔ+¨DÑ1Ô1ˆØˆØ×Ò˜ Ñ*Ô*Ð*ÝÔ+¨DÔ,@ÑAÔAˆØ×Ò˜ Ñ*Ô*Ð*Ð*Ð*r   c                 ó¤  — | j                              d¦  «        }|j        }t          j        |¦  «         |                      |                     ¦   «         | j                              d¦  «                             ¦   «         ¦  «         | j                              d¦  «        }|j        j        d         }t          j        |¦  «         |j                             ¦   «         }| j                              d¦  «        }| 	                    | j                              d¦  «        ¦  «         |                      ||                     ¦   «         ¦  «         d S )Nz<a><b><c><d/></c></b></a>Úar   Úb)
r   r"   r&   r   Ú	clearNoder%   ÚtoxmlÚElementr(   ÚappendChild)r)   r*   Úa_noder/   Úb_noder+   r,   s          r   Útest_clearNodez#DOMHelpersTestsMixin.test_clearNodel   s  € ØŒx×#Ò#Ð$?Ñ@Ô@ˆØÔ%ˆÝÔ˜VÑ$Ô$Ð$Ø×Ò˜Ÿš™œ¨¬×)9Ò)9¸#Ñ)>Ô)>×)DÒ)DÑ)FÔ)FÑGÔGÐGàŒx×#Ò#Ð$?Ñ@Ô@ˆØÔ%Ô0°Ô3ˆÝÔ˜VÑ$Ô$Ð$ØÔ%×+Ò+Ñ-Ô-ˆØ”8×#Ò# CÑ(Ô(ˆØ×Ò˜TœX×-Ò-¨cÑ2Ô2Ñ3Ô3Ð3Ø×Ò˜ §¢Ñ!1Ô!1Ñ2Ô2Ð2Ð2Ð2r   c                 ó´  — | j                              d¦  «        }| j                              ¦   «         }t          j        |d¦  «        }|                     ¦   «         }|                     d¦  «        }|                     dd¦  «         |                      ||                     ¦   «         ¦  «         t          j        |d¦  «        }|                     ¦   «         }|                     d¦  «        }|                     dd¦  «         |                      ||                     ¦   «         ¦  «         |  	                    t          j
        t          j        |d¦  «         d S )	Nú$<a><b id="bar"/><c class="foo"/></a>r   ÚcÚclassÚbarr?   ÚidÚpzork)r   r"   ÚDocumentr   ÚgetrA   ÚcreateElementÚsetAttributer%   ÚassertRaisesÚNodeLookupError©r)   r*   Údocr   r+   r,   s         r   Útest_getzDOMHelpersTestsMixin.test_getz   s  € ØŒx×#Ò#Ð$JÑKÔKˆØŒh×ÒÑ!Ô!ˆÝŒ~˜d EÑ*Ô*ˆØ—’‘”ˆØ×$Ò$ SÑ)Ô)ˆØ×Ò˜g uÑ-Ô-Ð-Ø×Ò˜ §¢Ñ!1Ô!1Ñ2Ô2Ð2åŒ~˜d EÑ*Ô*ˆØ—’‘”ˆØ×$Ò$ SÑ)Ô)ˆØ×Ò˜d EÑ*Ô*Ð*Ø×Ò˜ §¢Ñ!1Ô!1Ñ2Ô2Ð2à×Ò�*Ô4µj´nÀdÈGÑTÔTÐTÐTÐTr   c                 óº  — | j                              d¦  «        }| j                              ¦   «         }t          j        |d¦  «        }|                     ¦   «         }|                     d¦  «        }|                     dd¦  «         |                      ||                     ¦   «         ¦  «         t          j        |d¦  «        }|  	                    |d ¦  «         d S )NrH   r   rI   rJ   rM   )
r   r"   rN   r   ÚgetIfExistsrA   rP   rQ   r%   ÚassertIdenticalrT   s         r   Útest_getIfExistsz%DOMHelpersTestsMixin.test_getIfExists‹   sÁ   € ØŒx×#Ò#Ð$JÑKÔKˆØŒh×ÒÑ!Ô!ˆÝÔ% d¨EÑ2Ô2ˆØ—’‘”ˆØ×$Ò$ SÑ)Ô)ˆØ×Ò˜g uÑ-Ô-Ð-Ø×Ò˜ §¢Ñ!1Ô!1Ñ2Ô2Ð2åÔ% d¨GÑ4Ô4ˆØ×Ò˜T 4Ñ(Ô(Ð(Ð(Ð(r   c                 ód  — | j                              d¦  «        }| j                              ¦   «         }t          j        |d¦  «        }|                     ¦   «         }|                     d¦  «        }|                     dd¦  «         |                      ||                     ¦   «         ¦  «         d S )Nz<a><b id="foo"><c></c></b></a>r   r?   rL   )	r   r"   rN   r   ÚgetAndClearrA   rP   rQ   r%   rT   s         r   Útest_getAndClearz%DOMHelpersTestsMixin.test_getAndClear—   s™   € ØŒx×#Ò#Ð$DÑEÔEˆØŒh×ÒÑ!Ô!ˆÝÔ% d¨EÑ2Ô2ˆØ—’‘”ˆØ×$Ò$ SÑ)Ô)ˆØ×Ò˜d EÑ*Ô*Ð*Ø×Ò˜ §¢Ñ!1Ô!1Ñ2Ô2Ð2Ð2Ð2r   c                 óü  — | j                              d¦  «        }| j                              ¦   «         }t          j        |j        ddd¬¦  «        }d                     d„ |D ¦   «         ¦  «        }|                     d¦  «        }|                     dd¦  «         |                     d	¦  «        }|                     dd¦  «         | 	                    |¦  «         |  
                    ||                     ¦   «         ¦  «         t          j        |j        ddd
¬¦  «        }d                     d„ |D ¦   «         ¦  «        }|  
                    ||                     ¦   «         |                     ¦   «         z   ¦  «         d S )Nz:<a><b foo="olive"><c foo="olive"/></b><d foo="poopy"/></a>r   Úoliveé   )Ú	noNestingr   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS © ©rA   r   s     r   r   z9DOMHelpersTestsMixin.test_locateNodes.<locals>.<listcomp>¦   ó    € Ð=Ð=Ð=¨4˜$Ÿ*š*™,œ,Ð=Ð=Ð=r   r?   rI   r   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS rc   rd   r   s     r   r   z9DOMHelpersTestsMixin.test_locateNodes.<locals>.<listcomp>°   re   r   )r   r"   rN   r   ÚlocateNodesr(   r'   rP   rQ   rC   r%   rA   )r)   r*   rU   Ú	node_listr+   r,   rI   s          r   Útest_locateNodesz%DOMHelpersTestsMixin.test_locateNodes    s`  € ØŒx×#Ò#ØHñ
ô 
ˆð Œh×ÒÑ!Ô!ˆÝÔ*¨4¬?¸EÀ7ÐVWÐXÑXÔXˆ	Ø—’Ð=Ð=°9Ð=Ñ=Ô=Ñ>Ô>ˆØ×$Ò$ SÑ)Ô)ˆØ×Ò˜e WÑ-Ô-Ð-Ø×Ò˜cÑ"Ô"ˆØ	�Š�u˜gÑ&Ô&Ð&Ø×Ò˜QÑÔÐà×Ò˜ §¢Ñ!1Ô!1Ñ2Ô2Ð2åÔ*¨4¬?¸EÀ7ÐVWÐXÑXÔXˆ	Ø—’Ð=Ð=°9Ð=Ñ=Ô=Ñ>Ô>ˆØ×Ò˜ §¢Ñ!1Ô!1°A·G²G±I´IÑ!=Ñ>Ô>Ð>Ð>Ð>r   c                 ó  — | j                              d¦  «        }t          j        |j        d         j        d         j        d         ¦  «        }d                     d„ |D ¦   «         ¦  «        }|                      |d¦  «         d S )Nz!<a><b><c><d/></c><e/></b><f/></a>r   r   c                 ó<   — g | ]}t          |d ¦  «        ¯|j        ‘ŒS ©ÚtagName)Úhasattrrm   r   s     r   r   z8DOMHelpersTestsMixin.test_getParents.<locals>.<listcomp>¹   s)   € ÐLÐLÐL˜dµ7¸4ÀÑ3KÔ3KÐLˆTŒ\ÐLÐLÐLr   Úcba)r   r"   r   Ú
getParentsr(   r'   r%   ©r)   r*   rh   r+   s       r   Útest_getParentsz$DOMHelpersTestsMixin.test_getParents³   sˆ   € ØŒx×#Ò#Ð$GÑHÔHˆÝÔ)ØŒO˜AÔÔ)¨!Ô,Ô7¸Ô:ñ
ô 
ˆ	ð —’ØLÐL iÐLÑLÔLñ
ô 
ˆð 	×Ò˜ Ñ'Ô'Ð'Ð'Ð'r   c                 ód  — | j                              d¦  «        }t          j        |d¦  «        }d                     d„ |D ¦   «         ¦  «        }|                      |d¦  «         t          j        |dd¦  «        }d                     d„ |D ¦   «         ¦  «        }|                      |d¦  «         d S )	Nz+<a foo="1"><b foo="2"/><c foo="1"/><d/></a>r   r   c                 ó   — g | ]	}|j         ‘Œ
S rc   rl   r   s     r   r   zGDOMHelpersTestsMixin.test_findElementsWithAttribute.<locals>.<listcomp>À   ó   € Ð=Ð=Ð=¨4˜$œ,Ð=Ð=Ð=r   ÚabcÚ1c                 ó   — g | ]	}|j         ‘Œ
S rc   rl   r   s     r   r   zGDOMHelpersTestsMixin.test_findElementsWithAttribute.<locals>.<listcomp>Ä   ru   r   Úac)r   r"   r   ÚfindElementsWithAttributer'   r%   rq   s       r   Útest_findElementsWithAttributez3DOMHelpersTestsMixin.test_findElementsWithAttribute½   s°   € ØŒx×#Ò#Ð$QÑRÔRˆÝÔ8¸¸uÑEÔEˆ	Ø—’Ð=Ð=°9Ð=Ñ=Ô=Ñ>Ô>ˆØ×Ò˜ Ñ'Ô'Ð'åÔ8¸¸uÀcÑJÔJˆ	Ø—’Ð=Ð=°9Ð=Ñ=Ô=Ñ>Ô>ˆØ×Ò˜ Ñ&Ô&Ð&Ð&Ð&r   c                 ó®   — | j                              d¦  «        }t          j        |d¦  «        }t	          |¦  «        }|                      |d¦  «         d S )Nz#<doc><foo/><bar/><foo>a</foo></doc>r   é   )r   r"   r   ÚfindNodesNamedÚlenr%   rq   s       r   Útest_findNodesNamedz(DOMHelpersTestsMixin.test_findNodesNamedÇ   sQ   € ØŒx×#Ò#Ð$IÑJÔJˆÝÔ-¨d°EÑ:Ô:ˆ	Ý�Y‘”ˆØ×Ò˜ Ñ#Ô#Ð#Ð#Ð#r   c                 ó^   — d}d}|                       t          j        |¦  «        |¦  «         d S )Nz9this string " contains many & characters> xml< won't likezHthis string &quot; contains many &amp; characters&gt; xml&lt; won't like)r%   r   Úescape©r)   Újr,   s      r   Útest_escapez DOMHelpersTestsMixin.test_escapeÍ   s8   € ØHˆàVð 	ð 	×Ò�Ô*¨1Ñ-Ô-¨xÑ8Ô8Ð8Ð8Ð8r   c                 ó^   — d}d}|                       t          j        |¦  «        |¦  «         d S )NzTthis string &quot; has &&amp; entities &gt; &lt; and some characters xml won't like<zEthis string " has && entities > < and some characters xml won't like<)r%   r   Úunescaperƒ   s      r   Útest_unescapez"DOMHelpersTestsMixin.test_unescapeÔ   s8   € ØbˆàTð 	ð 	×Ò�Ô,¨QÑ/Ô/°Ñ:Ô:Ð:Ð:Ð:r   c                 óŠ   — | j                              d¦  «        }|                      t          j        |¦  «        d¦  «         dS )z|
        L{getNodeText} returns the concatenation of all the text data at or
        beneath the node passed to it.
        z(<foo><bar>baz</bar><bar>quux</bar></foo>ÚbazquuxN)r   r"   r%   r   ÚgetNodeText)r)   r   s     r   Útest_getNodeTextz%DOMHelpersTestsMixin.test_getNodeTextÛ   sA   € ð
 Œx×#Ò#Ð$NÑOÔOˆØ×Ò�Ô/°Ñ5Ô5°yÑAÔAÐAÐAÐAr   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   Ú__annotations__r8   r<   rF   rV   rZ   r]   ri   rr   r{   r€   r…   rˆ   rŒ   rc   r   r   r   r      s  € € € € € € ðð ð €Cˆ�#ŒÐÐÑð6+ð 6+ð 6+ðp+ð +ð +ð63ð 3ð 3ðUð Uð Uð"
)ð 
)ð 
)ð3ð 3ð 3ð?ð ?ð ?ð&(ð (ð (ð'ð 'ð 'ð$ð $ð $ð9ð 9ð 9ð;ð ;ð ;ðBð Bð Bð Bð Br   r   c                   ó$   — e Zd ZeZd„ Zd„ Zd„ ZdS )ÚMicroDOMHelpersTestsc                 óô   — d}| j                              |¦  «        }t          j        |¦  «        }d}|                      ||¦  «         t          j        |j        ¦  «        }|                      ||¦  «         dS )z£
        Microdom discards whitespace-only text nodes, so L{gatherTextNodes}
        returns only the text from nodes which had non-whitespace characters.
        z?<html>
  <head>
  </head>
  <body>
    stuff
  </body>
</html>
z
    stuff
  Nr:   )r)   r5   r6   r+   r,   s        r   Ú#test_gatherTextNodesDropsWhitespacez8MicroDOMHelpersTests.test_gatherTextNodesDropsWhitespaceç   sz   € ð
ˆð Œx×#Ò# HÑ-Ô-ˆÝÔ+¨DÑ1Ô1ˆØ$ˆØ×Ò˜ Ñ*Ô*Ð*ÝÔ+¨DÔ,@ÑAÔAˆØ×Ò˜ Ñ*Ô*Ð*Ð*Ð*r   c                 óô   — d}| j                              |¦  «        }t          j        |¦  «        }d}|                      ||¦  «         t          j        |j        ¦  «        }|                      ||¦  «         dS )zB
        Microdom does not decode entities in text nodes.
        ú<x>Souffl&amp;</x>zSouffl&amp;Nr:   ©r)   Údoc5_xmlÚdoc5r+   r,   s        r   Útest_textEntitiesNotDecodedz0MicroDOMHelpersTests.test_textEntitiesNotDecodedû   sx   € ð (ˆØŒx×#Ò# HÑ-Ô-ˆÝÔ+¨DÑ1Ô1ˆØ ˆØ×Ò˜ Ñ*Ô*Ð*ÝÔ+¨DÔ,@ÑAÔAˆØ×Ò˜ Ñ*Ô*Ð*Ð*Ð*r   c                 óî   — t          t          ¦  «         |                      | j        g¦  «        }|                      dt          |¦  «        ¦  «         |                      d|d         d         ¦  «         dS )z?
        An import will raise the deprecation warning.
        r`   z8twisted.web.domhelpers was deprecated at Twisted 23.10.0r   ÚmessageN)r   r   ÚflushWarningsÚtest_deprecationr%   r   )r)   Úwarningss     r   rŸ   z%MicroDOMHelpersTests.test_deprecation  sx   € õ 	�zÑÔÐØ×%Ò% tÔ'<Ð&=Ñ>Ô>ˆØ×Ò˜�C ™MœMÑ*Ô*Ð*Ø×ÒØFØ�QŒK˜	Ô"ñ	
ô 	
ð 	
ð 	
ð 	
r   N)r�   rŽ   r�   r	   r   r•   r›   rŸ   rc   r   r   r“   r“   ä   sF   € € € € € Ø
€Cð+ð +ð +ð(
+ð 
+ð 
+ð

ð 

ð 

ð 

ð 

r   r“   c                   ó   — e Zd ZeZd„ Zd„ ZdS )ÚMiniDOMHelpersTestsc                 óô   — d}| j                              |¦  «        }t          j        |¦  «        }d}|                      ||¦  «         t          j        |j        ¦  «        }|                      ||¦  «         dS )z=
        Minidom does decode entities in text nodes.
        r—   zSouffl&Nr:   r˜   s        r   Útest_textEntitiesDecodedz,MiniDOMHelpersTests.test_textEntitiesDecoded  sx   € ð (ˆØŒx×#Ò# HÑ-Ô-ˆÝÔ+¨DÑ1Ô1ˆØˆØ×Ò˜ Ñ*Ô*Ð*ÝÔ+¨DÔ,@ÑAÔAˆØ×Ò˜ Ñ*Ô*Ð*Ð*Ð*r   c                 ó¦  — | j                              d¦  «        }t          j        |¦  «        }|                      |d¦  «         |                      |t          ¦  «         | j                              d                     ¦   «         ¦  «        }t          j        |¦  «        }|                      |d¦  «         |                      |t          ¦  «         dS )zÇ
        L{domhelpers.getNodeText} returns a C{unicode} string when text
        nodes are represented in the DOM with unicode, whether or not there
        are non-ASCII characters present.
        z<foo>bar</foo>rK   u   <foo>â˜ƒ</foo>u   â˜ƒN)r   r"   r   r‹   r%   ÚassertIsInstanceÚstrÚencode)r)   r   Útexts      r   Útest_getNodeUnicodeTextz+MiniDOMHelpersTests.test_getNodeUnicodeText#  sº   € ð Œx×#Ò#Ð$4Ñ5Ô5ˆÝÔ% dÑ+Ô+ˆØ×Ò˜˜uÑ%Ô%Ð%Ø×Ò˜d¥CÑ(Ô(Ð(àŒx×#Ò#Ð$<×$CÒ$CÑ$EÔ$EÑFÔFˆÝÔ% dÑ+Ô+ˆØ×Ò˜˜}Ñ-Ô-Ð-Ø×Ò˜d¥CÑ(Ô(Ð(Ð(Ð(r   N)r�   rŽ   r�   r   r   r¤   rª   rc   r   r   r¢   r¢     s7   € € € € € Ø
€Cð
+ð 
+ð 
+ð)ð )ð )ð )ð )r   r¢   N)r�   Ú	importlibr   Útypingr   r   Úxml.domr   Útwisted.trial.unittestr   Útwisted.webr   r	   r   r“   r¢   rc   r   r   ú<module>r°      s  ðð
ð ð Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð à +Ð +Ð +Ð +Ð +Ð +Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,ðQBð QBð QBð QBð QBñ QBô QBð QBðh-
ð -
ð -
ð -
ð -
Ð/°ñ -
ô -
ð -
ð`)ð )ð )ð )ð )Ð.°ñ )ô )ð )ð )ð )r   