/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 - 2 0 2 1 ĠJetBrains Ġs . r . o . Ġand Ġrespective Ġauthors Ġand Ġdevelopers . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE . txt Ġfile . Ċ Ġ*/ Ċ package Ġorg . jetbrains . compose . web . core . tests . css Ċ Ċ import Ġorg . jetbrains . compose . web . Experimental Compose WebApi Ċ import Ġorg . jetbrains . compose . web . test utils .* Ċ import Ġorg . jetbrains . compose . web . css .* Ċ import Ġorg . jetbrains . compose . web . dom . string Presentation Ċ import Ġorg . w 3 c . dom . HTMLElement Ċ import Ġorg . w 3 c . dom . HTML Style Element Ċ import Ġorg . w 3 c . dom . css . CSS StyleSheet Ċ import Ġorg . w 3 c . dom . get Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertContains Ċ Ċ object ĠAnim ations StyleSheet Ġ: ĠStyleSheet () Ġ{ ĊĠĠĠ Ġval Ġbo unce Ġby Ġkey frames Ġ{ ĊĠĠĠĠĠĠĠ Ġfrom Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperty (" transform ", Ġ" translate X ( 5 0 % )") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġto Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperty (" transform ", Ġ" translate X (- 5 0 % )") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġanimation Class Ġby Ġstyle Ġ{ ĊĠĠĠĠĠĠĠ Ġanimation ( bounce ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġduration ( 2 . s ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtiming Function ( Animation Timing Function . E ase In ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdirection ( Animation Direction . Alternate ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Experimental Compose WebApi Ċ class ĠAnimation Tests Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġanimation Class Generated () Ġ= Ġrun Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgenerated Rules Ġ= ĠAnim ations StyleSheet . css Rules . map Ġ{ Ġit . string Presentation () Ġ} ĊĊĠĠĠĠĠĠĠ Ġassert Contains ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgenerated Rules , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ keyframes ĠAnim ations StyleSheet - bounce Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransform : ĠtranslateX ( 5 0 %); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransform : ĠtranslateX (- 5 0 %); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Animation Ġkey frames Ġwasn 't Ġgenerated Ġcorrectly " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert Contains ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgenerated Rules , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. Animations StyleSheet - animation Class Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanimation : ĠAnim ations StyleSheet - bounce Ġ 2 s Ġease - in Ġalternate ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Animation Ġclass Ġwasn 't Ġgenerated Ġcorrectly " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġanimation Class Inject ed () Ġ= Ġrun Test Ġ{ ĊĠĠĠĠĠĠĠ Ġcomposition Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStyle ( Animations StyleSheet ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġel Ġ= Ġroot . children [ 0 ] Ġas ĠHTML Style Element ĊĠĠĠĠĠĠĠ Ġval Ġcss Rules Ġ= Ġ( el . sheet Ġas ? ĠCSS StyleSheet )?. css Rules ĊĠĠĠĠĠĠĠ Ġval Ġrules Ġ= Ġ( 0 Ġuntil Ġ( css Rules ?. length Ġ?: Ġ 0 )). map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcss Rules ?. item ( it )?. css Text Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġassert Contains ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrules , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ keyframes ĠAnim ations StyleSheet - bounce Ġ{ ĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 % Ġ{ Ġtransform : ĠtranslateX ( 5 0 %); Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 0 0 % Ġ{ Ġtransform : ĠtranslateX (- 5 0 %); Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Animation Ġkey frames Ġwasn 't Ġinjected Ġcorrectly " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert Contains ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrules , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. Animations StyleSheet - animation Class Ġ{ Ġanimation : Ġ 2 s Ġease - in Ġ 0 s Ġ 1 Ġalternate Ġnone Ġrunning ĠAnim ations StyleSheet - bounce ; Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Animation Ġclass Ġwasn 't Ġinjected Ġcorrectly " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ