
     ha                     Z    d Z ddlZddlmZ  G d dej                        Z G d d      Zy)	z$Testcases for cssutils.CSSSerializer    N   )basetestc                       e 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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y)TestPreferencesz6
    testcases for cssutils.serialize.Preferences
    c                    t         j                  j                  j                  sJ dt         j                  j                  _        d}ddddd}dt         j                  j                  _        t	        |j                               D ]<  \  }}t        j                  ||z         }|j                         |j                  k(  r<J  dt         j                  j                  _        y	)
zPreferences.resolveVariablesFz
            @variables {
                c1: red;
                c2: #0f0;
                px: 1px 2px;
            }
        za {
    color: red
    }z)a {
    color: red;
    color: #0f0
    }za {
    margin: 1px 2px
    }zt@media all {
    a {
        margin: 1px 2px 1px 2px;
        color: red;
        left: var(unknown)
        }
    })za {
    color: var(c1)
    }z1a {
    color: var(c1)
; color: var(  c2   )    }za {
    margin: var(px)
    }z@media all {
                a {
                    margin: var(px) var(px);
                    color: var(c1);
                    left: var(unknown)
                    }
            }TN)	cssutilsserprefsresolveVariableslistitemsparseStringencodecssText)selfvarsteststestexpss         ]/var/www/api/v1/venv_getwork_v1/lib/python3.12/site-packages/cssutils/tests/test_serialize.pytest_resolveVariablesz%TestPreferences.test_resolveVariables   s    ||!!2222.3+ 3SGy3XT
 /3+ekkm,ID#$$TD[1A::<199,,, - /3+    c                    t         j                  j                  j                          t         j                  j                  j	                          t         j                  j                  j
                  sJ t         j                  j                  j                  sJ t         j                  j                  j                  sJ t         j                  j                  j                  J t         j                  j                  j                  dk(  sJ t         j                  j                  j                  sJ t         j                  j                  j                  sJ t         j                  j                  j                  sJ t         j                  j                  j                  du sJ t         j                  j                  j                  sJ t         j                  j                  j                  du sJ t         j                  j                  j                   du sJ t         j                  j                  j"                  dk(  sJ t         j                  j                  j$                  dk(  sJ t         j                  j                  j&                  sJ t         j                  j                  j(                  sJ t         j                  j                  j*                  du sJ t         j                  j                  j,                  dk(  sJ t         j                  j                  j.                  dk(  sJ t         j                  j                  j0                  dk(  sJ t         j                  j                  j2                  dk(  sJ t         j                  j                  j4                  du sJ d}d}t        j6                  |      }|j8                  |j;                         k(  sJ dd	i}t         j                  j                  j	                          t=        |j?                               D ]?  \  }}t        j6                  d
|z        }d|z  j;                         |j8                  k(  r?J  y)zPreferences.useDefaults()N    F
 a]  
    /*1*/
    @import url(x) tv , print;
    @namespace prefix "uri";
    @namespace unused "unused";
    @media all {}
    @media all {
        a {}
    }
    @media   all  {
    a { color: red; }
        }
    @page     { left: 0; }
    a {}
    prefix|x, a  +  b  >  c  ~  d  ,  b { top : 1px ;
        font-family : arial ,'some'
        }
    z/*1*/
@import url(x) tv, print;
@namespace prefix "uri";
@namespace unused "unused";
@media all {
    a {
        color: red
        }
    }
@page {
    left: 0
    }
prefix|x, a + b > c ~ d, b {
    top: 1px;
    font-family: arial, "some"
    }\0.1 .1 0.1px .1px 0.1% .1% +0.1 +.1 +0.1px +.1px +0.1% +.1% -0.1 -.1 -0.1px -.1px -0.1% -.1%ze0.1 0.1 0.1px 0.1px 0.1% 0.1% +0.1 +0.1 +0.1px +0.1px +0.1% +0.1% -0.1 -0.1 -0.1px -0.1px -0.1% -0.1%a{x:%s}za {
    x: %s
    }) r   r	   r
   useMinifieduseDefaultsdefaultAtKeyworddefaultPropertyNamedefaultPropertyPriorityimportHrefFormatindentindentClosingBracekeepAllPropertieskeepCommentskeepEmptyRuleskeepUnknownAtRuleskeepUsedNamespaceRulesOnlylineNumberslineSeparatorlistItemSpacerminimizeColorHashomitLastSemicolonomitLeadingZeroparanthesisSpacerpropertyNameSpacerselectorCombinatorSpacerspacer	validOnlyr   r   r   r   r   )r   css	parsedcssr   r   r   r   s          r   test_useDefaultsz TestPreferences.test_useDefaults/   sE   &&(&&(||!!2222||!!5555||!!9999||!!22:::||!!((G333||!!4444||!!3333||!!....||!!00E999||!!4444||!!<<EEE||!!--666||!!//4777||!!00C777||!!3333||!!3333||!!11U:::||!!33s:::||!!44;;;||!!::cAAA||!!((C///||!!++u444$		    %yyI,,..../18

 	&&(ekkm,ID#$$Y%56A+c199;qyyHHH -r   c                    t         j                  j                  j                          t         j                  j                  j                  sJ t         j                  j                  j
                  sJ t         j                  j                  j                  dk(  sJ t         j                  j                  j                  dk(  sJ t         j                  j                  j                  sJ t         j                  j                  j                  du sJ t         j                  j                  j                  du sJ t         j                  j                  j                  du sJ t         j                  j                  j                  sJ t         j                  j                  j                  du sJ t         j                  j                  j                  dk(  sJ t         j                  j                  j                  dk(  sJ t         j                  j                  j                   sJ t         j                  j                  j"                  sJ t         j                  j                  j$                  dk(  sJ t         j                  j                  j&                  dk(  sJ t         j                  j                  j(                  dk(  sJ t         j                  j                  j*                  dk(  sJ t         j                  j                  j,                  du sJ d}t        j.                  |      }dt         j                  j                  _        |j0                  dk(  sJ dt         j                  j                  _        |j0                  dk(  sJ dd	d
d
ddddddddddd}t3        |j5                               D ]?  \  }}t        j.                  d|z        }d|z  j7                         |j0                  k(  r?J  y)zPreferences.useMinified()string Fav  
    /*1*/
    @import   url(x) tv , print;
    @namespace   prefix "uri";
    @namespace   unused "unused";
    @media  all {}
    @media  all {
        a {}
    }
    @media all "name" {
        a { color: red; }
    }
    @page:left {
    left: 0
    }
    a {}
    prefix|x, a + b > c ~ d , b { top : 1px ;
        font-family : arial ,  'some'
        }
    @x  x;
    Ts   @import"x"tv,print;@namespace prefix"uri";@media all"name"{a{color:red}}@page :left{left:0}prefix|x,a+b>c~d,b{top:1px;font-family:arial,"some"}@x x;s   @import"x"tv,print;@namespace prefix"uri";@media all"name"{a{color:red}}@page :left{left:0}prefix|x,a+b>c~d,b{top:1px;font-family:arial,"some"}za a1 a-1 a-1aa b 1 c 1em d -1em e1em/5z#a 0 a 0 a 0 a 0 a 0 a 0 a 0 a 0 a 0z7a 1 a .1 a 1 a .1 a -1 a -.1 a -1 a -.1 a +1 a +.1 a +1z
url(x) f()#123#112234#123 url() f()
1 +2 +3 -4zS.1 .1 .1px .1px .1% .1% +.1 +.1 +.1px +.1px +.1% +.1% -.1 -.1 -.1px -.1px -.1% -.1%)z  a  a1  a-1  a-1a  r>   z  1em  /  5  r?   z2a 0 a .0 a 0.0 a -0 a -.0 a -0.0 a +0 a +.0 a +0.0zVa  0px  a  .0px  a  0.0px  a  -0px  a  -.0px  a  -0.0px  a  +0px  a  +.0px  a  +0.0px zTa  1  a  .1  a  1.0  a  0.1  a  -1  a  -.1  a  -1.0  a  -0.1  a  +1  a  +.1  a  +1.0z  url(x)  f()#112233rA   r@   rB   rC   r   r   N)r   r	   r
   r    r"   r#   r%   r&   r(   r)   r*   r+   r,   r-   r.   r/   r1   r2   r3   r4   r5   r6   r7   r   r   r   r   r   )r   r8   r   
valuetestsr   r   s         r   test_useMinifiedz TestPreferences.test_useMinifiedx   s0   &&(||!!2222||!!5555||!!22h>>>||!!((B...||!!3333||!!..%777||!!00E999||!!44===||!!<<<<||!!--666||!!//2555||!!00B666||!!3333||!!1111||!!33r999||!!44:::||!!::b@@@||!!((B...||!!++u444*   %04-II22	
2
 16-II--	
- %4$:$Bg$I#\) .&6,#

( j..01ID#$$Y%56AO++-::: 2r   c                    t        j                  d      }d|j                  k(  sJ dt         j                  j                  _        d|j                  k(  sJ dt         j                  j                  _        d|j                  k(  sJ y)zPreferences.defaultAtKeywordz@im\port "x";s   @import "x";TFs   @im\port "x";N)r   r   r   r	   r
   r"   r   r   s     r   test_defaultAtKeywordz%TestPreferences.test_defaultAtKeyword   sm      !12!))+++.2+!))+++.3+ AII---r   c                 Z   dt         j                  j                  _        t        j                  d      }d|j
                  k(  sJ dt         j                  j                  _        d|j
                  k(  sJ dt         j                  j                  _        d|j
                  k(  sJ t        j                  d      }d|j
                  k(  sJ dt         j                  j                  _        d|j
                  k(  sJ dt         j                  j                  _        d|j
                  k(  sJ y)zPreferences.defaultPropertyNameFza { c\olor: green; }   a {
    color: green
    }Ts   a {
    c\olor: green
    }z a { color: red; c\olor: green; }N)r   r	   r
   r(   r   r   r#   rH   s     r   test_defaultPropertyNamez(TestPreferences.test_defaultPropertyName   s    /4,
   !89.!));;;15..!));;;16.0AII===  !DE0AII===16.0AII===15..!));;;r   c                     d}t        j                  |      }|j                  dk(  sJ dt         j                  j                  _        |j                  |j                         k(  sJ y)z#Preferences.defaultPropertyPriorityz&a {
    color: green !IM\portant
    }s%   a {
    color: green !important
    }FN)r   r   r   r	   r
   r$   r   r   r8   r   s      r   test_defaultPropertyPriorityz,TestPreferences.test_defaultPropertyPriority   sT    9  %yyFFFF5:2yyCJJL(((r   c                 b   t         j                  j                         }d|_        t         j                  j                         }d|_        d|j                  k(  sJ d|j                  k(  sJ dt         j                  j
                  _        d|j                  k(  sJ d|j                  k(  sJ dt         j                  j
                  _        d|j                  k(  sJ d|j                  k(  sJ dt         j                  j
                  _        d|j                  k(  sJ d|j                  k(  sJ y	)
zPreferences.importHrefFormatz@import url("not");z@import "str";z@import url(not);r<   z@import "not";uriz@import url(str);znot definedN)r   r8   CSSImportRuler   r	   r
   r%   )r   r0r1s      r   test_importHrefFormatz%TestPreferences.test_importHrefFormat   s    \\'')*
\\'')%
"bjj0002::---.6+2::---2::---.3+"bjj000"bjj000.;+"bjj0002::---r   c                 .   t        j                  d      }d}d}dt         j                  j                  _        |j                         |j                  k(  sJ dt         j                  j                  _        |j                         |j                  k(  sJ y)zPreferences.identza { left: 0 }za {
    left: 0
    }za {
 left: 0
 }r   r   N)r   r   r	   r
   r&   r   r   )r   r   exp4exp1s       r   test_indentzTestPreferences.test_indent  sv      1	 %(!{{}		)))$+!{{}		)))r   c                 @   t        j                  d      }d}d}t         j                  j                  j	                          |j                         |j                  k(  sJ dt         j                  j                  _        |j                         |j                  k(  sJ y)zPreferences.indentClosingBracez%@media all {a {left: 0}} b { top: 0 }zI@media all {
    a {
        left: 0
        }
    }
b {
    top: 0
    }z=@media all {
    a {
        left: 0
    }
}
b {
    top: 0
}FN)r   r   r	   r
   r!   r   r   r'   )r   r   expTexpFs       r   test_indentClosingBracez'TestPreferences.test_indentClosingBrace  s{      !HI	 	&&({{}		)))05-{{}		)))r   c                     d}t        j                  |      }dt         j                  j                  _        d|j
                  k(  sJ dt         j                  j                  _        d|j
                  k(  sJ y)zPreferences.keepAllPropertieszwa {
            color: pink;
            color: red;
            c\olor: blue;
            c\olor: green;
            }FrK   TsN   a {
    color: pink;
    color: red;
    c\olor: blue;
    c\olor: green
    }N)r   r   r	   r
   r(   r   rN   s      r   test_keepAllPropertiesz&TestPreferences.test_keepAllProperties-  sl       %/4,.!));;;/3,%()		2	
2r   c                     t        j                  d      }dt         j                  j                  _        d|j
                  k(  sJ dt         j                  j                  _        d|j
                  k(  sJ y)zPreferences.keepCommentsz/*1*/ a { /*2*/ }Fr   Ts   a {}N)r   r   r	   r
   r)   r   r*   rH   s     r   test_keepCommentsz!TestPreferences.test_keepComments@  s[      !45*/'aii,0)!))###r   c                 :   d}t        j                  |      }t         j                  j                  j	                          dt         j                  j                  _        |j                         |j                  k(  sJ dt         j                  j                  _        d|j                  k(  sJ dt         j                  j                  _        d|j                  k(  sJ d}t        j                  |      }t         j                  j                  j	                          dt         j                  j                  _        dt         j                  j                  _        d|j                  k(  sJ dt         j                  j                  _        d|j                  k(  sJ y	)
zPreferences.keepEmptyRulesz1a {}
a {
    /*1*/
    }
a {
    color: red
    }TFs,   a {
    /*1*/
    }
a {
    color: red
    }s   a {
    color: red
    }z@media tv {
    }
@media all {
    /*1*/
    }
@media print {
    a {}
    }
@media print {
    a {
        /*1*/
        }
    }
@media all {
    a {
        color: red
        }
    }s   @media all {
    /*1*/
    }
@media print {
    a {
        /*1*/
        }
    }
@media all {
    a {
        color: red
        }
    }s7   @media all {
    a {
        color: red
        }
    }N)	r   r   r	   r
   r!   r*   r   r   r)   rN   s      r   test_keepEmptyRulesz#TestPreferences.test_keepEmptyRulesH  sD   	   %&&(,0)zz|qyy(((,1)CqyyPPP*/',		999	$   %&&(,0),1)	 yy	
 +0'	
 yy	
r   c                 L   ddi}|D ]  }t        j                  |      }||   \  }}dt         j                  j                  _        |j
                  |j                         k(  sJ dt         j                  j                  _        |j
                  |j                         k(  rJ  y)zPreferences.keepUnknownAtRulesz@three-dee {
              @background-lighting {
                azimuth: 30deg;
                elevation: 190deg;
              }
              h1 { color: red }
            }
            h1 { color: blue })z@three-dee {
    @background-lighting {
        azimuth: 30deg;
        elevation: 190deg;
        } h1 {
        color: red
        }
    }
h1 {
    color: blue
    }zh1 {
    color: blue
    }TFN)r   r   r	   r
   r+   r   r   r   r   r   r   expwith
expwithouts         r   test_keepUnknownAtRulesz'TestPreferences.test_keepUnknownAtRules  s    "$
2 D$$T*A"'+GZ48HLL199 000049HLL199
 1 1 3333 r   c                 V   ddddddd}|D ]  }t        j                  |      }||   \  }}dt         j                  j                  _        |j
                  |j                         k(  sJ d	t         j                  j                  _        |j
                  |j                         k(  rJ  y
)z&Preferences.keepUsedNamespaceRulesOnly)'@namespace "u";
a, a {
    top: 0
    }rj   )-@namespace p "u";
p|a, p|a {
    top: 0
    }rk   );@namespace p "u";
@namespace "d";
p|a, a {
    top: 0
    }rl   )z8@namespace p "u";
@namespace "d";
p|a {
    top: 0
    }(@namespace p "u";
p|a {
    top: 0
    })z6@namespace p "u";
@namespace "d";
a {
    top: 0
    }z$@namespace "d";
a {
    top: 0
    })z:@namespace p "u";
@namespace d "d";
p|a {
    top: 0
    }rm   )z1@namespace p "u"; @namespace "u"; p|a, a {top: 0}z1@namespace "u"; @namespace p "u"; p|a, a {top: 0}z1@namespace p "u"; @namespace "d"; p|a, a {top: 0}z.@namespace p "u"; @namespace "d"; p|a {top: 0}z,@namespace p "u"; @namespace "d"; a {top: 0}z0@namespace p "u"; @namespace d "d"; p|a {top: 0}FTN)r   r   r	   r
   r,   r   r   re   s         r   test_keepUsedNamespaceRulesOnlyz/TestPreferences.test_keepUsedNamespaceRulesOnly  s    BB
B
?
=
A5
> D$$T*A"'+GZ<AHLL999 0000<@HLL999
 1 1 3333 r   c                    t        j                  d      }d}d}t         j                  j                  j                  rJ |j                         |j                  k(  sJ dt         j                  j                  _        t         j                  j                  j                  sJ |j                         |j                  k(  sJ y)zPreferences.lineNumbersza {top: 1; left: 2}z!a {
    top: 1;
    left: 2
    }z-1: a {
2:     top: 1;
3:     left: 2
4:     }TN)r   r   r	   r
   r-   r   r   )r   r   exp0rX   s       r   test_lineNumbersz TestPreferences.test_lineNumbers  s       !67	 <<%%1111{{}		))))-&||!!----{{}		)))r   c                    t        j                  d      }d|j                  k(  sJ dt         j                  j                  _        d|j                  k(  sJ dt         j                  j                  _        d|j                  k(  sJ y)zPreferences.lineSeparatorza { x:1;y:2}   a {
    x: 1;
    y: 2
    }r=   s   a {x: 1;y: 2    }XXXs"   a {XXX    x: 1;XXX    y: 2XXX    }N)r   r   r   r	   r
   r.   rH   s     r   test_lineSeparatorz"TestPreferences.test_lineSeparator  sl      01QYY>>>+-(#qyy000+0(4		AAAr   c                     dt         j                  j                  _        d}t        j                  |      }d|j
                  k(  sJ dt         j                  j                  _        d|j
                  k(  sJ y)zPreferences.listItemSpacerTz'
        @import "x" print, tv;
a, b {}s   @import "x" print, tv;
a, b {}r=   s   @import "x" print,tv;
a,b {}N)r   r	   r
   r*   r   r   r/   rN   s      r   test_listItemSpacerz#TestPreferences.test_listItemSpacer  sc    ,0)   %1QYY>>>,.)/199<<<r   c                     d}t        j                  |      }d|j                  k(  sJ dt         j                  j                  _        d|j                  k(  sJ y)zPreferences.minimizeColorHashza { color: #ffffff }s   a {
    color: #fff
    }Fs   a {
    color: #ffffff
    }N)r   r   r   r	   r
   r0   rN   s      r   test_minimizeColorHashz&TestPreferences.test_minimizeColorHash  sM    $  %-:::/4,0AII===r   c                     d}t        j                  |      }d|j                  k(  sJ dt         j                  j                  _        d|j                  k(  sJ y)zPreferences.omitLastSemicolona { x: 1; y: 2 }rs   Fs   a {
    x: 1;
    y: 2;
    }N)r   r   r   r	   r
   r1   rN   s      r   test_omitLastSemicolonz&TestPreferences.test_omitLastSemicolon
  sM       %1QYY>>>/4,2aii???r   c                 0   dt         j                  j                  _        d}t        j                  |      }d|j
                  k(  sJ dt         j                  j                  _        d|j
                  k(  sJ dt         j                  j                  _        y)zPreferences.normalizedVarNamesFz@variables { A: 1 }s   @variables {
    a: 1
    }s   @variables {
    A: 1
    }TN)r   r	   r
   r   r   r   normalizedVarNamesrN   s      r   test_normalizedVarNamesz'TestPreferences.test_normalizedVarNames  sq    .3+#  %/199<<<05-/199<<<.2+r   c                     d}t        j                  |      }d|j                  k(  sJ dt         j                  j                  _        d|j                  k(  sJ y)zPreferences.paranthesisSpacerr{   rs   r=   s   a{
    x: 1;
    y: 2
    }N)r   r   r   r	   r
   r3   rN   s      r   test_paranthesisSpacerz&TestPreferences.test_paranthesisSpacer  sM       %1QYY>>>/1,0AII===r   c                     d}t        j                  |      }d|j                  k(  sJ dt         j                  j                  _        d|j                  k(  sJ y)zPreferences.propertyNameSpacerr{   rs   r=   s   a {
    x:1;
    y:2
    }N)r   r   r   r	   r
   r4   rN   s      r   test_propertyNameSpacerz'TestPreferences.test_propertyNameSpacer&  sM       %1QYY>>>02-/199<<<r   c                     t         j                  j                  d      }d|j                  k(  sJ dt         j                  j
                  _        d|j                  k(  sJ y)z$Preferences.selectorCombinatorSpacerz
a+b>c~d  e)selectorTextza + b > c ~ d er=   z	a+b>c~d eN)r   r8   Selectorr   r	   r
   r5   rH   s     r   test_selectorCombinatorSpacerz-TestPreferences.test_selectorCombinatorSpacer.  sO    LL!!|!< ANN222683ann,,,r   c           	          dt         j                  j                  _        dddddddd	d
}t	        |j                               D ]7  \  }}|j                         t        j                  |      j                  k(  r7J  y )Nr=   z@font-face {
    a: 1
    }z@import url(a);z7@media all {
    a {
        color: red
        }
    }z@namespace"a";z@namespace a"a";z@page :left {
    a: 1
    }z@x x;z@import"x"tv;)z@font-face {a:1}z@import  url( a );z@media  all{a{color:red}}z@namespace "a";z@namespace a  "a";z@page  :left {   a  :1  }z@x  x;z@import"x"tv)	r   r	   r
   r6   r   r   r   r   r   )r   r   r8   r   s       r   test_spacerzTestPreferences.test_spacer5  ss    $&! ?"3)f/"4)I+	
 U[[]+HC::<8#7#7#<#D#DDDD ,r   c                    t         j                  j                  dd      }|j                  dk(  sJ d|_        dt         j
                  j                  _        |j                  dk(  sJ dt         j
                  j                  _        |j                  dk(  sJ t         j                  j                         }d|_        |j                  dk(  sJ dt         j
                  j                  _        |j                  dk(  sJ t         j
                  j                  j                          dt         j
                  j                  _
        dt         j
                  j                  _        d	d
d}| j                  |d       y)zPreferences.validOnlycolor1pxz
color: 1pxTr=   Fzleft: x;top: xzleft: x;
top: xzh1 {
    color: red;
    }zimg {
    float: left
    })z&h1 { color: red; rotation: 70minutes }zimg { float: left }       /* correct CSS 2.1 */
img { float: left here }  /* "here" is not a value of 'float' */
img { background: "red" } /* keywords cannot be quoted */
img { border-width: 3 }   /* a unit must be specified for length values */)raisingN)r   r8   Propertyr   valuer	   r
   r7   CSSStyleDeclarationr!   r)   
do_equal_p)r   pr   r   s       r   test_validOnlyzTestPreferences.test_validOnlyD  s&    LL!!'51yyL((('+$yyB',$yyL((( LL,,.$	yy....'+$yyB&&(*/''+$6T Po
 	u-r   N)__name__
__module____qualname____doc__r   r:   rF   rI   rL   rO   rU   rY   r]   r_   ra   rc   rh   rn   rq   ru   rw   ry   r|   r   r   r   r   r   r    r   r   r   r      s     3DGIRR;h.<*).***0
&$C
J!4F'4R*$	B
=>@
3>=-E.r   r   c                   (    e Zd ZdZd Zd Zd Zd Zy)TestCSSSerializerz.
    testcases for cssutils.CSSSerializer
    c                 ,   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 }t        |j                               D ]5  \  }}t        j                  j	                  |      }||j
                  k(  r5J  y )!N1z+10z+0z-0z0.0z00.0z00.0pxz00.0pcz00.0emz00.0exz00.0cmz00.0mmz00.0inz00.0%z0%z00.0ms0msz00.0s0s0khz0hz0deg0rad0grad0xxza, "b\"", serifzurl("h)i") "\[\]"rgb(18, 52, 86)#123456r@   )z00.0khzz00.0hzz00.0degz00.0radz00.0gradz00.0xxza, 'b"', serifzurl('h)i') '\[\]'r   r   rD   )r   r   r   r8   PropertyValuer   )r   r   r   r   vs        r   test_canonicalz TestCSSSerializer.test_canonicali  s>   %
W%
 h%

 W%
 g%
 g%
 w%
 %
 '%
 '%
 '%
 '%
 '%
 '%
  '!%
$ %%
& )'%
( )%
* &#%%'#"8&>#8(%E%
L ekkm,ID#**40A!))### -r   c                    d}t        j                  |      }|t        |j                  d      k(  sJ d}t        j                  |      }|t        |j                  d      k(  sJ d|j                  d   _        d|j                  k(  sJ y)zCSSSerializer.do_CSSStyleSheetu   /* κουρος */zutf-8u$   @charset "utf-8";
/* κουρος */asciir   s6   @charset "ascii";
/* \3BA \3BF \3C5 \3C1 \3BF \3C2  */N)r   r   strr   cssRulesencoding)r   r8   sheets      r   test_CSSStyleSheetz$TestCSSSerializer.test_CSSStyleSheet  s    "$$S)c%--11115$$S)c%--1111%,q"L}}	
r   c                 N   d}d}d}t         j                  j                  j                  |||      }dt         j                  j                  |      k(  sJ t         j                  j                  j                  ||      }dt         j                  j                  |      k(  sJ y)	zCSSSerializer.do_Propertyr   redz
!important)namer   priorityzcolor: red !important)r   r   z
color: redN)r   r8   propertyr   r	   do_Property)r   r   r   r   r   s        r   test_PropertyzTestCSSSerializer.test_Property  s     LL!!**EH*U&(,,*B*B1*EEEELL!!**E*Bx||77::::r   c                 t    d}d}t        j                  |      }|j                  |j                         k(  sJ y)zCSSSerializer._escapestringz@import url("ABC\a");
@import "ABC\a";
@import 'ABC\a';
a[href='"\a\22\27"'] {
    a: "\a\d\c";
    b: "\a \d \c ";
    c: "\"";
    d: "\22";
    e: '\'';
    f: "\\";
    g: "2\\ 1\ 2\\";
    content: '\27';
    }z@import url("ABC\a ");
@import "ABC\a ";
@import "ABC\a ";
a[href="\"\a \"'\""] {
    a: "\a \d \c ";
    b: "\a \d \c ";
    c: "\"";
    d: "\"";
    e: "'";
    f: "\\";
    g: "2\\ 1\ 2\\";
    content: "'"
    }N)r   r   r   r   )r   r8   r   r   s       r   test_escapestringz#TestCSSSerializer.test_escapestring  s:    	4	 $$S)}}

,,,r   N)r   r   r   r   r   r   r   r   r   r   r   r   r   d  s    )$V
;+-r   r   )r   r   r=   r   BaseTestCaser   r   r   r   r   <module>r      s/    *  Y	.h++ Y	.xw- w-r   