package Ġnl . h ann ah sten . tex ify idea . psi Ċ Ċ import Ġcom . intellij . openapi . paths . Web Reference Ċ import Ġcom . intellij . psi . Psi Document Manager Ċ import Ġcom . intellij . test Framework . Use ful TestCase Ċ import Ġcom . intellij . test Framework . fixtures . Base Platform TestCase Ċ import Ġnl . h ann ah sten . tex ify idea . file . Lat ex FileType Ċ import Ġnl . h ann ah sten . tex ify idea . util . firstChild OfType Ċ import Ġnl . h ann ah sten . tex ify idea . util . last Child OfType Ċ import Ġnl . h ann ah sten . tex ify idea . util . required Parameters Ċ import Ġorg . junit . Test Ċ Ċ class ĠLat ex Psi Impl Util Test Ġ: ĠBase Platform TestCase () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġurl Ġ= Ġ" https :// github . com / H ann ah - St en / TeX i Fy - IDE A " ĊĊĠĠĠ Ġoverride Ġfun Ġget TestData Path (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" test / resources / psi " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġoptional Parameters Ġ= Ġ""" \ usepackage [ backend = bi ber , style ={ alphabet ic Ġorder }, option without value ]{ bib latex } """ ĊĊĠĠĠ Ġprivate Ġval Ġrequired Parameters Ġ= Ġ""" \ bib liography { library 1 , library 2 } """ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Required Parameter Split ting () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠ Ġmy Fixture . configure By Text ( Lat ex FileType , Ġrequired Parameters ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġrequired Parameters Ġ= ĠPsi Document Manager . getInstance ( my Fixture . project ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get Psi File ( my Fixture . editor . document ) !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. children ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. first () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. firstChild OfType ( Lat ex Commands :: class ) !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. required Parameters ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ ĠassertEquals (" library 1 , library 2 ", Ġrequired Parameters [ 0 ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Optional Parameter Split ting () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠ Ġmy Fixture . configure By Text ( Lat ex FileType , Ġoptional Parameters ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġpsi File Ġ= ĠPsi Document Manager . getInstance ( my Fixture . project ). get Psi File ( my Fixture . editor . document ) !! ĊĠĠĠĠĠĠĠ Ġval Ġelement Ġ= Ġpsi File . children . first (). firstChild OfType ( Lat ex Commands :: class ) !! ĊĠĠĠĠĠĠĠ Ġval Ġoptional Parameters Ġ= Ġelement . optional Parameters ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ ĠassertEquals (" bi ber ", Ġoptional Parameters [" backend "]) ĊĠĠĠĠĠĠĠ ĠassertEquals (" alphabet ic Ġorder ", Ġoptional Parameters [" style "]) ĊĠĠĠĠĠĠĠ ĠassertEquals ("", Ġoptional Parameters [" option without value "]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Optional ParameterName Order () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠ Ġmy Fixture . configure By Text ( Lat ex FileType , Ġoptional Parameters ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġpsi File Ġ= ĠPsi Document Manager . getInstance ( my Fixture . project ). get Psi File ( my Fixture . editor . document ) !! ĊĠĠĠĠĠĠĠ Ġval Ġelement Ġ= Ġpsi File . children . first (). firstChild OfType ( Lat ex Commands :: class ) !! ĊĠĠĠĠĠĠĠ Ġval Ġoptional Parameters Ġ= Ġelement . optional Parameters . keys . toList () ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ ĠassertEquals (" backend ", Ġoptional Parameters [ 0 ]) ĊĠĠĠĠĠĠĠ ĠassertEquals (" style ", Ġoptional Parameters [ 1 ]) ĊĠĠĠĠĠĠĠ ĠassertEquals (" option without value ", Ġoptional Parameters [ 2 ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Empty Optional Parameters () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠ Ġmy Fixture . configure By Text ( Lat ex FileType , Ġ""" \ usepackage { bib tex } """) ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġpsi File Ġ= ĠPsi Document Manager . getInstance ( my Fixture . project ). get Psi File ( my Fixture . editor . document ) !! ĊĠĠĠĠĠĠĠ Ġval Ġelement Ġ= Ġpsi File . children . first (). firstChild OfType ( Lat ex Commands :: class ) !! ĊĠĠĠĠĠĠĠ Ġval Ġoptional Parameters Ġ= Ġelement . optional Parameters ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ Ġassert Empty ( optional Parameters . toList ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Extract Url References () Ġ{ ĊĠĠĠĠĠĠĠ Ġmy Fixture . configure By Text ( Lat ex FileType , Ġ"\\ url {$ url } Ġ\\ href {$ url }{ TeX i Fy }") ĊĊĠĠĠĠĠĠĠ Ġval Ġpsi File Ġ= ĠPsi Document Manager . getInstance ( my Fixture . project ). get Psi File ( my Fixture . editor . document ) !! ĊĠĠĠĠĠĠĠ Ġval Ġurl Element Ġ= Ġpsi File . firstChild OfType ( Lat ex Commands :: class ) !! ĊĠĠĠĠĠĠĠ Ġval Ġhref Element Ġ= Ġpsi File . last Child OfType ( Lat ex Commands :: class ) !! ĊĊĠĠĠĠĠĠĠ ĠUseful TestCase . assertContains Elements ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Element . extract Url References ( url Element . required Parameters (). first ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġ( it Ġas ĠWeb Reference ). url Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠUseful TestCase . assertContains Elements ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhref Element . extract Url References ( href Element . required Parameters (). first ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġ( it Ġas ĠWeb Reference ). url Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Begin Command Optional Parameter Split ting () Ġ{ ĊĠĠĠĠĠĠĠ Ġmy Fixture . configure By Text ( Lat ex FileType , Ġ""" \ begin { lstlisting }[ language = Python , Ġlabel ={ lst : listing }] \ end { lstlisting } """) ĊĊĠĠĠĠĠĠĠ Ġval Ġpsi File Ġ= ĠPsi Document Manager . getInstance ( my Fixture . project ). get Psi File ( my Fixture . editor . document ) !! ĊĠĠĠĠĠĠĠ Ġval Ġelement Ġ= Ġpsi File . children . first (). firstChild OfType ( Lat ex Begin Command :: class ) !! ĊĠĠĠĠĠĠĠ Ġval Ġoptional Parameters Ġ= Ġelement . optional Parameters ĊĊĠĠĠĠĠĠĠ ĠassertEquals (" Python ", Ġoptional Parameters [" language "]) ĊĠĠĠĠĠĠĠ ĠassertEquals (" lst : listing ", Ġoptional Parameters [" label "]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Label First Argument Environment () Ġ{ ĊĠĠĠĠĠĠĠ Ġmy Fixture . configure By Text ( Lat ex FileType , Ġ""" \ begin { lstlisting }[ label ={ lst : listing }, Ġlanguage = Python ]\ end { lstlisting } """) ĊĊĠĠĠĠĠĠĠ Ġval Ġpsi File Ġ= ĠPsi Document Manager . getInstance ( my Fixture . project ). get Psi File ( my Fixture . editor . document ) !! ĊĠĠĠĠĠĠĠ Ġval Ġelement Ġ= Ġpsi File . children . first (). firstChild OfType ( Lat ex Environment :: class ) !! ĊĊĠĠĠĠĠĠĠ ĠassertEquals (" lst : listing ", Ġelement . label ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Label Not First Parameter Environment () Ġ{ ĊĠĠĠĠĠĠĠ Ġmy Fixture . configure By Text ( Lat ex FileType , Ġ""" \ begin { lstlisting }[ language = Python , Ġlabel ={ lst : listing }] \ end { lstlisting } """) ĊĊĠĠĠĠĠĠĠ Ġval Ġpsi File Ġ= ĠPsi Document Manager . getInstance ( my Fixture . project ). get Psi File ( my Fixture . editor . document ) !! ĊĠĠĠĠĠĠĠ Ġval Ġelement Ġ= Ġpsi File . children . first (). firstChild OfType ( Lat ex Environment :: class ) !! ĊĊĠĠĠĠĠĠĠ ĠassertEquals (" lst : listing ", Ġelement . label ) ĊĠĠĠ Ġ} Ċ }