/* Ċ Ġ* ĠCopyright Ġ 2 0 2 2 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġandroidx . compose . material 3 Ċ Ċ import Ġandroid . os . Build Ċ import Ġandroidx . compose . foundation . layout . Box Ċ import Ġandroidx . compose . foundation . layout . required Size Ċ import Ġandroidx . compose . foundation . layout . wrap Content Size Ċ import Ġandroidx . compose . test utils . assert Again st Gold en Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . platform . test Tag Ċ import Ġandroidx . compose . ui . test . Experimental Test Api Ċ import Ġandroidx . compose . ui . test . capture To Image Ċ import Ġandroidx . compose . ui . test . has Click Action Ċ import Ġandroidx . compose . ui . test . junit 4 . create Compose Rule Ċ import Ġandroidx . compose . ui . test . on Node With Tag Ċ import Ġandroidx . compose . ui . test . on Node With Text Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġandroidx . test . ext . junit . runners . Android JUnit 4 Ċ import Ġandroidx . test . filters . Medium Test Ċ import Ġandroidx . test . filters . Sdk Suppress Ċ import Ġandroidx . test . screenshot . Android X Screenshot Test Rule Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ Ċ @ Medium Test Ċ @ RunWith ( Android JUnit 4 :: class ) Ċ @ Sdk Suppress ( min Sdk Version Ġ= ĠBuild . VERSION _ CODES . O ) Ċ @ Opt In ( Experimental Test Api :: class ) Ċ class ĠButton Screenshot Test Ġ{ ĊĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġval Ġrule Ġ= Ġcreate Compose Rule () ĊĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġval Ġscreenshot Rule Ġ= ĠAndroid X Screenshot Test Rule ( G OLD EN _ MAT ERIAL 3 ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdefault _ button _ light _ theme () Ġ{ ĊĠĠĠĠĠĠĠ Ġrule . set Material Content ( light Color Scheme ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠButton ( onClick Ġ= Ġ{ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText (" Button ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġrule . on Node ( has Click Action ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. capture To Image () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Again st Gold en ( screenshot Rule , Ġ" button _ light _ theme ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdefault _ button _ dark _ theme () Ġ{ ĊĠĠĠĠĠĠĠ Ġrule . set Material Content ( dark Color Scheme ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠButton ( onClick Ġ= Ġ{ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText (" Button ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġrule . on Node ( has Click Action ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. capture To Image () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Again st Gold en ( screenshot Rule , Ġ" button _ dark _ theme ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdisabled _ button _ light _ theme () Ġ{ ĊĠĠĠĠĠĠĠ Ġrule . set Material Content ( light Color Scheme ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠButton ( onClick Ġ= Ġ{ Ġ}, Ġenabled Ġ= Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText (" Button ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġrule . on Node With Text (" Button ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. capture To Image () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Again st Gold en ( screenshot Rule , Ġ" button _ disabled _ light _ theme ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdisabled _ button _ dark _ theme () Ġ{ ĊĠĠĠĠĠĠĠ Ġrule . set Material Content ( dark Color Scheme ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠButton ( onClick Ġ= Ġ{ Ġ}, Ġenabled Ġ= Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText (" Button ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġrule . on Node With Text (" Button ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. capture To Image () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Again st Gold en ( screenshot Rule , Ġ" button _ disabled _ dark _ theme ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġelev ated _ button _ light Theme () Ġ{ ĊĠĠĠĠĠĠĠ Ġrule . set Material Content ( light Color Scheme ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBox ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠModifier . required Size ( 2 0 0 . dp , Ġ 1 0 0 . dp ). wrap Content Size (). test Tag (" elev ated Ġbutton ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE lev ated Button ( onClick Ġ= Ġ{}) Ġ{ ĠText (" E lev ated ĠButton ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġrule . on Node With Tag (" elev ated Ġbutton ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. capture To Image () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Again st Gold en ( screenshot Rule , Ġ" elev ated _ button _ light _ theme ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdisabled _ elev ated _ button _ light Theme () Ġ{ ĊĠĠĠĠĠĠĠ Ġrule . set Material Content ( light Color Scheme ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBox ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠModifier . required Size ( 2 0 0 . dp , Ġ 1 0 0 . dp ). wrap Content Size (). test Tag (" elev ated Ġbutton ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE lev ated Button ( onClick Ġ= Ġ{}, Ġenabled Ġ= Ġfalse ) Ġ{ ĠText (" E lev ated ĠButton ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġrule ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Node With Tag (" elev ated Ġbutton ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. capture To Image () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Again st Gold en ( screenshot Rule , Ġ" elev ated _ button _ disabled _ light _ theme ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfilled _ ton al _ button _ light Theme () Ġ{ ĊĠĠĠĠĠĠĠ Ġrule . set Material Content ( light Color Scheme ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠF illed T onal Button ( onClick Ġ= Ġ{}) Ġ{ ĠText (" Filled Ġt onal ĠButton ") Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġrule . on Node ( has Click Action ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. capture To Image () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Again st Gold en ( screenshot Rule , Ġ" filled _ ton al _ button _ light _ theme ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdisabled _ filled _ ton al _ button _ light Theme () Ġ{ ĊĠĠĠĠĠĠĠ Ġrule . set Material Content ( light Color Scheme ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠF illed T onal Button ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenabled Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . test Tag (" button ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText (" Filled Ġt onal ĠButton ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġrule . on Node With Tag (" button ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. capture To Image () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Again st Gold en ( screenshot Rule , Ġ" filled _ ton al _ button _ disabled _ light _ theme ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġoutlined _ button _ light Theme () Ġ{ ĊĠĠĠĠĠĠĠ Ġrule . set Material Content ( light Color Scheme ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOut lined Button ( onClick Ġ= Ġ{}) Ġ{ ĠText (" Outlined ĠButton ") Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġrule . on Node ( has Click Action ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. capture To Image () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Again st Gold en ( screenshot Rule , Ġ" outlined _ button _ light _ theme ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdisabled _ outlined _ button _ light Theme () Ġ{ ĊĠĠĠĠĠĠĠ Ġrule . set Material Content ( light Color Scheme ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOut lined Button ( onClick Ġ= Ġ{}, Ġenabled Ġ= Ġfalse , Ġmodifier Ġ= ĠModifier . test Tag (" button ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText (" Outlined ĠButton ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġrule . on Node With Tag (" button ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. capture To Image () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Again st Gold en ( screenshot Rule , Ġ" outlined _ button _ disabled _ light _ theme ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtext _ button _ light Theme () Ġ{ ĊĠĠĠĠĠĠĠ Ġrule . set Material Content ( light Color Scheme ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText Button ( onClick Ġ= Ġ{}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText (" Text ĠButton ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġrule . on Node ( has Click Action ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. capture To Image () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Again st Gold en ( screenshot Rule , Ġ" text _ button _ light _ theme ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdisabled _ text _ button _ light Theme () Ġ{ ĊĠĠĠĠĠĠĠ Ġrule . set Material Content ( light Color Scheme ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText Button ( onClick Ġ= Ġ{}, Ġenabled Ġ= Ġfalse , Ġmodifier Ġ= ĠModifier . test Tag (" button ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText (" Text ĠButton ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġrule . on Node With Tag (" button ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. capture To Image () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Again st Gold en ( screenshot Rule , Ġ" text _ button _ disabled _ light _ theme ") ĊĠĠĠ Ġ} Ċ } Ċ