package Ġorg . ke b ish . core . browser . management Ċ Ċ import Ġkotlinx . html . AT arget Ċ import Ġkotlinx . html . a Ċ import Ġkotlinx . html . body Ċ import Ġkotlinx . html . id Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . junit . jupiter . api . Method Order er Ċ import Ġorg . junit . jupiter . api . Order Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . TestMethod Order Ċ import Ġorg . ke b ish . core . browser . provider . Static Browser Provider Ċ import Ġorg . ke b ish . junit 5 . K eb Test Ċ import Ġorg . ke b ish . test . config . common Test K eb Config Ċ import Ġorg . ke b ish . usage . test . util . Html Content Ċ import Ġorg . ke b ish . usage . test . util . Http Builder Server Extension Ċ import Ġorg . ke b ish . usage . test . util . extend able . Extend able Ċ import Ġorg . ke b ish . usage . test . util . extend able . Extend able Impl Ċ Ċ @ TestMethod Order ( Method Order er . Order Annotation :: class ) Ċ class ĠClosing Windows And Tabs After Each Test Basic Test Ġ: ĠK eb Test ( ĊĠĠĠ Ġcommon Test K eb Config (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġbrowser Provider Ġ= ĠStatic Browser Provider ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen New Empty Window And Close Other After Each Test Ġ= Ġtrue Ġ// ĠThis Ġis Ġdefault , Ġbut Ġthis Ġoption Ġis Ġbeing Ġtested Ġhere ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ ), ĠExtend able Ġby ĠExtend able Impl () Ġ{ ĊĊĠĠĠ Ġ@ Suppress (" unused ") ĊĠĠĠ Ġprivate Ġval Ġserver Extension Ġ= Ġregister ( ĊĠĠĠĠĠĠĠ ĠHttp Builder Server Extension ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbrowser , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHtml Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbody Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa ("") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ" New Tab Link " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Ġ= ĠA Target . blank ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+" New Ġtab Ġlink " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ)) ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Order ( 1 ) ĊĠĠĠ Ġfun Ġ`' given ', Ġ' when ' Ġpart Ġof Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġbrowser . driver . get ( browser . baseUrl ) ĊĠĠĠĠĠĠĠ ĠwaitFor Ġ{ Ġcss ("# New Tab Link ") Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠWhen Ġ- Ġtest Ġopen Ġmultiple Ġwindows ĊĠĠĠĠĠĠĠ Ġcss ("# New Tab Link "). click () ĊĠĠĠĠĠĠĠ Ġcss ("# New Tab Link "). click () ĊĠĠĠĠĠĠĠ Ġcss ("# New Tab Link "). click () ĊĠĠĠĠĠĠĠ Ġcss ("# New Tab Link "). click () ĊĊĠĠĠĠĠĠĠ ĠwaitFor Ġ{ ĠassertThat ( browser . driver . window Handles ). has Size ( 5 ) Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Order ( 2 ) ĊĠĠĠ Ġfun Ġ`' then ' Ġpart Ġof Ġthe Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠThen Ġ- Ġall Ġtabs Ġfrom Ġprevious Ġtest Ġwere Ġclosed Ġ- Ġonly Ġone Ġis Ġopened ĊĠĠĠĠĠĠĠ ĠassertThat ( browser . driver . window Handles ). has Size ( 1 ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠAnd Ġ- Ġopened Ġwindow Ġis Ġempty ĊĠĠĠĠĠĠĠ ĠassertThat ( browser . page Source ). contains ("< body ></ body >") ĊĠĠĠ Ġ} ĊĊ Ċ }