
     h>B                     V    d Z ddlZddlmZ ddlZddlZ G d dej                        Zy)z'Testcases for cssutils.css.CSSMediaRule    N   )test_cssrulec                   r     e Zd Zd Z f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 Z xZS )TestCSSMediaRulec                 \   t         j                  j                         | _        t         j                  j                  d      | _        t         j                  j                  j
                  | _        d| _        t         j                  j                         | _	        d| j                  _
        y )NT)readonly
MEDIA_RULEza {})cssutilscssCSSMediaRulerrROr	   r_typer_typeStringCSSStyleRule	stylerulecssTextselfs    `/var/www/api/v1/venv_getwork_v1/lib/python3.12/site-packages/cssutils/tests/test_cssmediarule.py_setup_rulezTestCSSMediaRule._setup_rule   sn    **,<<,,d,;ll//::(!224!'    c                    t         |           t        j                  j	                         }t        |j                  t        j                  j                        sJ g |j                  k(  sJ d|j                  k(  sJ t        |j                  t        j                  j                        sJ d|j                  j                  k(  sJ |j                  J t        j                  j	                  dd      }t        |j                  t        j                  j                        sJ g |j                  k(  sJ d|j                  k(  sJ t        |j                  t        j                  j                        sJ d|j                  j                  k(  sJ d|j                  k(  sJ t        j                  t         j"                  j$                        5  | j&                  j)                  d       ddd       y# 1 sw Y   yxY w)zCSSMediaRule.__init__() allNprintname)	mediaTextr   x)super	test_initr
   r   r   
isinstancecssRulesCSSRuleListr   mediastylesheets	MediaListr   r   pytestraisesxmldomInvalidModificationErrr   _setAtkeyword)r   r   	__class__s     r   r!   zTestCSSMediaRule.test_init   s   LL%%'!**hll&>&>???QZZQYY!''8#7#7#A#ABBB)))))vv~~LL%%f%E!**hll&>&>???QZZQYY!''8#7#7#A#ABBB!''+++++ ]]37799:FF  % ;::s   G::Hc                    t         j                  j                         }d|_        t         j                  j                  j
                  t         j                  j                  j                  t         j                  j                  j                  g}t        |      D ]>  \  }}||j                  |   k(  sJ |j                  ||   k(  sJ |j                  |k(  r>J  y)zCSSMediaRule.__iter__()z*@media all { /*1*/a { left: 0} b{ top:0} }N)r
   r   r   r   CSSRuleCOMMENT
STYLE_RULE	enumerater#   type
parentRule)r   mtypesirules        r   	test_iterzTestCSSMediaRule.test_iter-   s    LL%%'D	LL  ((LL  ++LL  ++

 !|GAt1::a=(((99a(((??a''' $r   c                    t        j                  d      }|j                  d   }|j                  }|j                  d   j                  |k(  sJ |d   j                  |k(  sJ d|_        t        j                  d      j                  |_        ||j                  k7  sJ t        |j                        D ]'  \  }}|j                  |k(  sJ |j                  |k(  r'J  y)zCSSStylesheet referencesz@media all {a {color: red}}r   z@media all {a {color: blue}}z=
            /**/
            @x;
            b {}').cssRulesN)r
   parseStringr#   parentStyleSheetr   r3   r5   )r   sr   rulesr8   srs         r   	test_refszTestCSSMediaRule.test_refs;   s      !>?JJqM

zz!}--222Qx((A--- 3	 ))

 ( 	

 

"""qzz*EAr&&!+++==A%%% +r   c                 X   t         j                  j                         }g |j                  k(  sJ t         j                  j	                         }|j                  j                  |       |g|j                  k(  sJ t         j                  j                         }t        j                  t        j                  j                        5  |j                  j                  |       ddd       t        j                  d      }|j                  d   }d|j                  j                  k(  sJ |j                  d= d|j                  j                  k(  sJ |j                  j                  d       d|j                  j                  k(  sJ |j                  j                  t        j                  d      j                         d|j                  j                  k(  sJ d	|j                  k(  sJ |j                  D ]$  }|j                   |k(  sJ |j"                  |k(  r$J  y# 1 sw Y   ?xY w)
zCSSMediaRule.cssRulesNz@media all { /*1*/a {x:1} }r      r   /*2*/z/*3*/x {y:2}   zd@media all {
    a {
        x: 1
        }
    /*2*/
    /*3*/
    x {
        y: 2
        }
    })r
   r   r   r#   r   appendCSSImportRuler(   r)   r*   r+   HierarchyRequestErrr<   lengthextendr   r=   r5   )r   r   r@   irr>   r6   r9   s          r   test_cssRuleszTestCSSMediaRule.test_cssRulesT   s   LL%%'QZZ\\&&(	

"tqzz!!!\\'')]]377667JJb! 8   !>?JJqMAJJ%%%%%JJqMAJJ%%%%%	

'"AJJ%%%%%	

(..~>GGHAJJ%%%%%{yy	
 JJD((A---??a''' # 87s   HH)c                    d}ddddddddddddddd}i }t        |j                               D ]  \  }}||}d| | |d| | <    | j                  |       | j                  |       i dd	d
d	dd	dd	dd	dd	dd	dd	dd	dd	dd	dd	dd	dd	dd	dd	dd	i dd	dd	dd	dd	dd	dd	d d	d!d	d"d	d#d	d$d	dd	d d	d!d	d"d	d%d	d&d	d	d'd(d'd'd)d*d+d,d,d'd-d.d/}| j                  |       | j                  |       i d0t        j
                  j                  d1t        j
                  j                  d2t        j
                  j                  d3t        j
                  j                  d4t        j
                  j                  d5t        j
                  j                  d6t        j
                  j                  d7t        j
                  j                  d8t        j
                  j                  d9t        j
                  j                  d:t        j
                  j                  d;t        j
                  j                  d<t        j
                  j                  d=t        j
                  j                  d>t        j
                  j                  d?t        j
                  j                  d@t        j
                  j                  t        j
                  j                  t        j
                  j                  t        j
                  j                  dA}| j                  |       | j                  |       dBt        j
                  j                  i}| j                  |       t        j                  j                         }dC|_        |j                  D ].  }||j                  k(  sJ |j                   |j                   k(  r.J  y)DzCSSMediaRule.cssTextz,{
    a {
        color: red
        }
    }N only tv and (color) C only tv and (color: red) and (width: 100px), tv and (width: 20px) z (color) and (width), (height) )z: (min-device-pixel-ratio: 1.3), (min-resolution: 1.3dppx) z tv z	 only tv z not tv rN   z only tv and(color)z only tv and (color: red) z- only tv and (color: red) and (width: 100px) z1 only tv and (color: red) and (width: 100px), tv rO   zD only tv and(color :red)and(  width :100px  )  ,tv and(width: 20px) z0 (color: red) and (width: 100px), (width: 20px) zU /*1*/ only /*2*/ tv /*3*/ and /*4*/ (/*5*/ width) /*5*/ /*6*/, (color) and (height) z(color)and(width),(height)@mediaz@media only tv{}r   z@media not tv{}z@media only tv and (color){}z!@media only tv and (color: red){}z4@media only tv and (color: red) and (width: 100px){}z8@media only tv and (color: red) and (width: 100px), tv{}zJ@media only tv and (color: red) and (width: 100px), tv and (width: 20px){}z7@media (color: red) and (width: 100px), (width: 20px){}z@media (width){}z@media (width:10px){}z@media (width), (color){}z%@media (width)  ,  (color),(height){}z)@media (width)  ,  (color) and (height){}z@media (width) and (color){}z@media all and (width){}z@media all and (width:10px){}z!@media all and (width), (color){}z-@media all and (width)  ,  (color),(height){}z1@media all and (width)  ,  (color) and (height){}z$@media all and (width) and (color){}z@media only tv and (width){}z!@media only tv and (width:10px){}z%@media only tv and (width), (color){}z1@media only tv and (width)  ,  (color),(height){}z5@media only tv and (width)  ,  (color) and (height){}z(@media only tv and (width) and (color){}z$@media only tv and (width) "name" {}z)@media only tv and (width:10px) "name" {}z@media all "name"{}z@media all {}z1@media all {
    a {
        x: 1
        }
    }z8@media all "name" {
    a {
        x: 1
        }
    }zk@media all {
    @x some;
    a {
        color: red
        }
    b {
        color: green
        }
    }z%@media all {
    @x {
        }
    }z.@media all "n" /**/ {
    @x {
        }
    }zS@media /*1*/ /*2*/ all /*3*/ /*4*/ {
    /*5*/
    a {
        x: 1
        }
    }z:@media all {
    @page {
        margin: 0
        }
    }z^@media all {
    @media all {
        p {
            color: red
            }
        }
    })z@media/*x*/all{}z@media all { a{ x: 1} }z@media all "name" { a{ x: 1} }z@MEDIA all { a{x:1} }z@\media all { a{x:1} }z3@media all {@x some;a{color: red;}b{color: green;}}z@media all { @x{}}z@media all "n" /**/ { @x{}}z*@media/*1*//*2*/all/*3*//*4*/{/*5*/a{x:1}}z=@media  /*1*/  /*2*/  all  /*3*/  /*4*/  {  /*5*/  a{ x: 1} }z#@media
	 all
	 {
	 a{ x: 1}
	 }z#@media all { @page { margin: 0; } }z/@media all { @media all { p { color: red; } } }z	@media {}z@media;z@media/*only comment*/{}z@media all;z@media all "n";z@media all; @x{}z@media { a{ x: 1} }z@media "name" { a{ x: 1} }z@media "name" all { a{ x: 1} }z@media all { @charset "x"; a{}}z@media all { @import "x"; a{}}z@media all { , }z@media all {}EXTRAz
@media ({}z@media (color{}z@media (color:{}z@media (color:red{})z@media (:red){}z@media (:){}z@media color:red){}z@media all { x{} } a{}z$@media all {@x; /*1*/a{color: red;}})listitems
do_equal_p
do_equal_rr*   r+   	SyntaxErrrH   
do_raise_p
do_raise_rr
   r   r   r   r#   r5   r=   )r   stylemlstestsbar6   r   s           r   test_cssTextzTestCSSMediaRule.test_cssTextq   s   	 KO%)#:*.=AAESW UZ@Dei*K
  %DAqy+1!UG)<EF1#eW%& &
 	=
=
r=
 +B=
 0	=

 CB=
 G=
 YZ\=
 Fr=
 =
 $R=
 (=
 4R=
 8=
 +B=
 '=
  ,R!=
" 0#=
$ <R%=
& @'=
( 3B)=
* +B+=
, 0-=
. 4R/=
0 @1=
2 DR3=
4 75=
6 3B7=
8 89=
: 4R;=
< @==
> DR?=
@ 7A=
B "2C=
D RE=
F !#'^.l%\'^D	 #M+^ ;U Nh?v3s@:w=
| 	
**
sww((
 '(9(9
 377,,	

 sww00
  1 1
 "377#4#4
 )#''*;*;
 -cgg.?.?
 .sww/J/J
 -cgg.I.I
  1 1
 !#''"3"3
 #''++
 sww00
   1 1!
" "377#4#4#
$  #ww00GG--#&77#4#4)
, 	 %cgg&7&7
 	LL%%'>	A$$$%%););;;; r   c                 V   t        j                  t              5  | j                  j	                  dd       ddd       t        j                  t              5  | j                  j	                  dd       ddd       d| j                  j
                  _        | j                  j                  | j                         d| j                  j                  k(  sJ dt        j                  j                  _        d| j                  j                  k(  sJ y# 1 sw Y   xY w# 1 sw Y   xY w)zCSSMediaRule.mediar%   Nr   r   r   Tz@media print {
    a {}
    })r(   r)   AttributeErrorr   __setattr__r%   r   
insertRuler   r   r
   serprefskeepEmptyRulesr   s    r   
test_mediazTestCSSMediaRule.test_media   s    
 ]]>*FFw- +]]>*FFw* + ")$..)TVV^^###,0)0DFFNNBBB +***s   DDDD(c                    t         j                  j                         }d|_        d|j                  k(  sJ d|_        d|j                  k(  sJ d|j                  k(  sJ d|_        d|j                  k(  sJ d|j                  k(  sJ d|_        |j                  J d	|j                  k(  sJ d|_        |j                  J d	|j                  k(  sJ t        j                  t        j                  j                        5  |j                  d
       ddd       t        j                  t        j                  j                        5  |j                  d       ddd       y# 1 sw Y   QxY w# 1 sw Y   yxY w)zCSSMediaRule.namez!@media all "\n\"ame" {a{left: 0}}z\n"amenz8@media all "n" {
    a {
        left: 0
        }
    }"z9@media all "\"" {
    a {
        left: 0
        }
    }r   Nz4@media all {
    a {
        left: 0
        }
    }r   {   )r
   r   r   r   r   r(   r)   r*   r+   rU   _setName)r   r   s     r   	test_namezTestCSSMediaRule.test_name	  s7   LL%%'9	AFF"""aff}}JaiiW	
Waff}}Lyy	
 vv~~IQYYVVVvv~~IQYYVVV]]377,,-JJqM .]]377,,-JJsO .- .---s   E$	E0$E-0E9c                 p   t         j                  j                         }d|_        d|j                  j
                  k(  sJ t        j                  t        j                  j                        5  |j                  d       ddd       |j                  d   }||j                  k(  sJ |j                  d       |j                  J d|j                  j
                  k(  sJ d|j                  k(  sJ |j                  d       d|j                  j
                  k(  sJ d	|j                  k(  sJ |j                  d
       d|j                  j
                  k(  sJ d|j                  k(  sJ |j                  d
       d
|j                  j
                  k(  sJ d|j                  k(  sJ y# 1 sw Y   -xY w)zCSSMediaRule.deleteRule(index)zj@media all {
            @a;
            /* x */
            @b;
            @c;
            @d;
        }   NrE   z6@media all {
    @a;
    /* x */
    @b;
    @c;
    }r      z.@media all {
    /* x */
    @b;
    @c;
    }r   rC   z&@media all {
    /* x */
    @c;
    }z@media all {
    /* x */
    })r
   r   r   r   r#   rI   r(   r)   r*   r+   IndexSizeErr
deleteRuler5   )r   r6   r   s      r   test_deleteRuleIndexz%TestCSSMediaRule.test_deleteRuleIndex(  sr    LL%%'	 AJJ%%%%%]]377//0LLO 1
 JJrNALL   	R||###AJJ%%%%%IQYYV	
V 	
QAJJ%%%%%CqyyPPP	QAJJ%%%%%:aiiGGG	QAJJ%%%%%1QYY>>>3 10s   .F++F5c                    t         j                  j                         }d|_        |j                  \  }}}t         j                  j                         }t        j                  t        j                  j                        5  |j                  |       ddd       d|j                  j                  k(  sJ |j                  |       d|j                  j                  k(  sJ |j                  dk(  sJ t        j                  t        j                  j                        5  |j                  |       ddd       y# 1 sw Y   xY w# 1 sw Y   yxY w)zCSSMediaRule.deleteRule(rule)zs@media all {
            a { color: red; }
            b { color: blue; }
            c { color: green; }
        }Nro   rC   z^@media all {
    a {
        color: red
        }
    c {
        color: green
        }
    })r
   r   r   r   r#   r   r(   r)   r*   r+   rp   rq   rI   )r   r6   s1s2s3r   s         r   test_deleteRulez TestCSSMediaRule.test_deleteRuleO  s    LL%%'	
 ZZ
BLL%%']]377//0LLO 1 AJJ%%%%%	RAJJ%%%%%IIvw	
w ]]377//0LL 10 10 10s   D; E;EEc                 L   t         j                  j                         }t         j                  j                         }t         j                  j                         }|j	                  |       |j	                  |       |j
                  d   |k(  sJ |j
                  d   |k(  sJ y)zCSSMediaRule.add()r   r   N)r
   r   r   r   addr#   )r   r   
stylerule1
stylerule2s       r   test_addzTestCSSMediaRule.test_addg  s~     LL%%'\\..0
\\..0
	j	jzz!}
***zz!}
***r   c                    t         j                  j                         }t         j                  j                  d      }t         j                  j	                  d      }t         j                  j                         }t         j                  j                  d      }t         j                  j                  d      }d|_        t         j                  j                  d      }t         j                  j                  d      }t        j                  t        j                  j                        5  |j                  |d       d	d	d	       t        j                  t        j                  j                        5  |j                  |d       d	d	d	       t        j                  t        j                  j                        5  |j                  |d       d	d	d	       |j                  |d       ||j                   k(  sJ |j"                  |j"                  k(  sJ |j                  |d       ||j                   k(  sJ |j"                  |j"                  k(  sJ |j                  |d
       ||j                   k(  sJ |j"                  |j"                  k(  sJ |j                  |       ||j                   k(  sJ |j"                  |j"                  k(  sJ d|j                  k(  sJ t        j                  t        j                  j$                        5  |j                  |d       d	d	d	       t        j                  t        j                  j$                        5  |j                  ||j&                  j(                  dz          d	d	d	       y	# 1 sw Y   JxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y	xY w)zCSSMediaRule.insertRuleasciir   z@x;r\   z	a { x: 1}z/*1*/rD   r   NrC   zM@media all {
    /*1*/
    a {
        x: 1
        }
    @x;
    /*2*/
    }rn   r   )r
   r   r   CSSCharsetRulerG   CSSNamespaceRuleCSSUnknownRuler   r   
CSSCommentr(   r)   r*   r+   rH   ra   r5   r=   rp   r#   rI   )	r   r   charsetrule
importrulenamespaceruleunknownruler   comment1comment2s	            r   test_insertRulez TestCSSMediaRule.test_insertRuler  s    LL%%'ll11':\\//4
 557ll11%8LL--c2	'	<<**73<<**73 ]]377667LLa( 8]]377667LLQ' 8]]377667LL* 8 	
Y"I(((((!!Y%?%????	Xq!H'''''!!Y%?%????	[!$K*****!!Y%?%????	XH'''''!!Y%?%????byy	

 ]]377//0LLB' 1]]377//0LLAJJ$5$5$9: 10? 8777772 1000s<   +N3N;N N-*N9NN N*-N69Oc                 &    | j                  d       y)z+CSSMediaRule.cssText InvalidModificationErrrP   N)_test_InvalidModificationErrr   s    r   test_InvalidModificationErrz,TestCSSMediaRule.test_InvalidModificationErr  s    ))(3r   c                 4    ddddd}| j                  |       y)zCSSMediaRule (incomplete)z @media all {
    @unknown;
    }z3@media all {
    a {
        x: "1"
        }
    })z@media all { @unknown;z@media all { a {x:"1"}z@media all { a {x:"1"z@media all { a {x:"1N)rS   )r   rZ   s     r   test_incompletez TestCSSMediaRule.test_incomplete  s&     'K&_%^$]	
 	r   c                     d}t         j                  j                  |      }|t        |      v sJ t	        t        |            }t        ||j                        sJ ||j                  j                  k(  sJ y)z#CSSMediaRule.__repr__(), .__str__()z	tv, print)r   N)
r
   r   r   strevalreprr"   r.   r%   r   )r   r   r>   ru   s       r   test_reprANDstrz TestCSSMediaRule.test_reprANDstr  si    	LL%%	%:CF"""$q']"akk***BHH.....r   )__name__
__module____qualname__r   r!   r:   rA   rL   r]   re   rk   rr   rw   r|   r   r   r   r   __classcell__)r.   s   @r   r   r      sS    (&0(&2(:E<NC">%?N0	+.;`4
/r   r   )	__doc__xml.domr*   r   r   r
   r(   TestCSSRuler    r   r   <module>r      s*    -    o/|// o/r   