/* Ċ Ġ* ĠCopyright Ġ 2 0 1 4 - 2 0 2 2 ĠJetBrains Ġs . r . o Ġand Ġcontributors . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense . Ċ Ġ*/ Ċ Ċ package Ġio . ktor . server . http . spa Ċ Ċ import Ġio . ktor . client . request .* Ċ import Ġio . ktor . client . statement .* Ċ import Ġio . ktor . http .* Ċ import Ġio . ktor . server . http . content .* Ċ import Ġio . ktor . server . routing .* Ċ import Ġio . ktor . server . testing .* Ċ import Ġkotlin . test .* Ċ Ċ class ĠSingle Page Application Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfull With Files Test () Ġ= Ġtest Application Ġ{ ĊĠĠĠĠĠĠĠ Ġapplication Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrouting Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Page Application Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfiles Path Ġ= Ġ" jvm / test / io / ktor / server / http / spa " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Route Ġ= Ġ" selected " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdefault Page Ġ= Ġ" Empty 3 . kt " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġignore Files Ġ{ Ġit . contains (" Empty 2 . kt ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġclient . get ("/ selected "). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( it . status , ĠHttpStatusCode . OK ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( it . body As Text (). trim Indent (), Ġempty 3 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġclient . get ("/ selected / a "). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( it . status , ĠHttpStatusCode . OK ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( it . body As Text (). trim Indent (), Ġempty 3 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġclient . get ("/ selected / Empty 2 . kt "). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( it . status , ĠHttpStatusCode . OK ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( it . body As Text (). trim Indent (), Ġempty 3 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġclient . get ("/ selected / Empty 1 . kt "). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( it . status , ĠHttpStatusCode . OK ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( it . body As Text (). trim Indent (), Ġempty 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Page Get () Ġ= Ġtest Application Ġ{ ĊĠĠĠĠĠĠĠ Ġapplication Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrouting Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Page Application Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfiles Path Ġ= Ġ" jvm / test / io / ktor / server / http / spa " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Route Ġ= Ġ" selected " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdefault Page Ġ= Ġ" Empty 3 . kt " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġclient . get ("/ selected / Empty 1 . kt "). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( it . status , ĠHttpStatusCode . OK ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( it . body As Text (). trim Indent (), Ġempty 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġclient . get ("/ selected "). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( it . status , ĠHttpStatusCode . OK ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( it . body As Text (). trim Indent (), Ġempty 3 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Ignore All Routes () Ġ= Ġtest Application Ġ{ ĊĠĠĠĠĠĠĠ Ġapplication Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrouting Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Page Application Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfiles Path Ġ= Ġ" jvm / test / io / ktor / server / http / spa " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdefault Page Ġ= Ġ" Empty 3 . kt " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġignore Files Ġ{ Ġtrue Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġclient . get ("/ "). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( it . status , ĠHttpStatusCode . OK ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( it . body As Text (). trim Indent (), Ġempty 3 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġclient . get ("/ a "). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( it . status , ĠHttpStatusCode . OK ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( it . body As Text (). trim Indent (), Ġempty 3 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġclient . get ("/ Empty 1 . kt "). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( it . status , ĠHttpStatusCode . OK ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( it . body As Text (). trim Indent (), Ġempty 3 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfull With Resources Test () Ġ= Ġtest Application Ġ{ ĊĠĠĠĠĠĠĠ Ġapplication Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrouting Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Page Application Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuse Resources Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfiles Path Ġ= Ġ" io . ktor . server . http . spa " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Route Ġ= Ġ" selected " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdefault Page Ġ= Ġ" Empty 3 . class " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġignore Files Ġ{ Ġit . contains (" Empty 2 . class ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( client . get ("/ selected "). status , ĠHttpStatusCode . OK ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( client . get ("/ selected / a "). status , ĠHttpStatusCode . OK ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( client . get ("/ selected / Empty 2 . kt "). status , ĠHttpStatusCode . OK ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( client . get ("/ selected / Empty 1 . kt "). status , ĠHttpStatusCode . OK ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Resources () Ġ= Ġtest Application Ġ{ ĊĠĠĠĠĠĠĠ Ġapplication Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrouting Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Page Application Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuse Resources Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfiles Path Ġ= Ġ" io . ktor . server . http . spa " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdefault Page Ġ= Ġ" Single Page Application Test . class " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( HttpStatusCode . OK , Ġclient . get ("/ Empty 1 . class "). status ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( HttpStatusCode . OK , Ġclient . get ("/ Single Page Application Test . class "). status ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( HttpStatusCode . OK , Ġclient . get ("/ a "). status ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( HttpStatusCode . OK , Ġclient . get ("/ "). status ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Ignore Resource Routes () Ġ= Ġtest Application Ġ{ ĊĠĠĠĠĠĠĠ Ġapplication Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrouting Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Page Application Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuse Resources Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfiles Path Ġ= Ġ" io . ktor . server . http . spa " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdefault Page Ġ= Ġ" Single Page Application Test . class " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġignore Files Ġ{ Ġit . contains (" Empty 1 . class ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġignore Files Ġ{ Ġit . endsWith (" Empty 2 . class ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( HttpStatusCode . OK , Ġclient . get ("/ Empty 3 . class "). status ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( HttpStatusCode . OK , Ġclient . get ("/ "). status ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( HttpStatusCode . OK , Ġclient . get ("/ Empty 1 . class "). status ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( HttpStatusCode . OK , Ġclient . get ("/ Empty 2 . class "). status ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Ignore All Resource Routes () Ġ= Ġtest Application Ġ{ ĊĠĠĠĠĠĠĠ Ġapplication Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrouting Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Page Application Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuse Resources Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfiles Path Ġ= Ġ" io . ktor . server . http . spa " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdefault Page Ġ= Ġ" Single Page Application Test . class " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġignore Files Ġ{ Ġtrue Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( HttpStatusCode . OK , Ġclient . get ("/ Single Page Application Test . class "). status ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( HttpStatusCode . OK , Ġclient . get ("/ Empty 1 . class "). status ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( HttpStatusCode . OK , Ġclient . get ("/ a "). status ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( HttpStatusCode . OK , Ġclient . get ("/ "). status ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Shortcut () Ġ= Ġtest Application Ġ{ ĊĠĠĠĠĠĠĠ Ġapplication Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrouting Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Page Application Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġangular (" jvm / test / io / ktor / server / http / spa ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( HttpStatusCode . OK , Ġclient . get ("/ Empty 1 . kt "). status ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġempty 1 Ġ= Ġ""" ĊĠĠĠĠĠĠĠ Ġ/* ĊĠĠĠĠĠĠĠĠ Ġ* ĠCopyright Ġ 2 0 1 4 - 2 0 2 2 ĠJetBrains Ġs . r . o Ġand Ġcontributors . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĊĠĠĠĠĠĠĠ Ġpackage Ġio . ktor . server . http . spa ĊĊĠĠĠĠĠĠĠ Ġ// Ġrequired Ġfor Ġtests ĊĠĠĠĠĠĠĠ Ġclass ĠEmpty 1 ĊĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠ Ġprivate Ġval Ġempty 3 Ġ= Ġ""" ĊĠĠĠĠĠĠĠ Ġ/* ĊĠĠĠĠĠĠĠĠ Ġ* ĠCopyright Ġ 2 0 1 4 - 2 0 2 2 ĠJetBrains Ġs . r . o Ġand Ġcontributors . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĊĠĠĠĠĠĠĠ Ġpackage Ġio . ktor . server . http . spa ĊĊĠĠĠĠĠĠĠ Ġ// Ġrequired Ġfor Ġtests ĊĠĠĠĠĠĠĠ Ġclass ĠEmpty 3 ĊĠĠĠ Ġ""" . trim Indent () Ċ } Ċ