1515 */
1616package org .labkey .test .pages ;
1717
18- import org .apache .commons .lang3 . StringUtils ;
18+ import org .apache .commons .text . WordUtils ;
1919import org .jetbrains .annotations .Nullable ;
2020import org .labkey .test .Locator ;
2121import org .labkey .test .WebDriverWrapper ;
@@ -74,7 +74,7 @@ public boolean isEnginePresent(String engineName)
7474 public void setSiteDefault (String engineName )
7575 {
7676 log ("Ensure " + engineName + " is the site default engine" );
77- editEngine (engineName );
77+ EditEngineWindow editEngineWindow = editEngine (engineName );
7878 Locator .XPathLocator defaultCheckbox = Locator .id ("editEngine_default-inputEl" );
7979 if (_ext4Helper .isChecked (defaultCheckbox ))
8080 {
@@ -85,8 +85,9 @@ public void setSiteDefault(String engineName)
8585 }
8686 log ("Change site default engine to " + engineName );
8787 _ext4Helper .checkCheckbox (defaultCheckbox );
88- click ( Locator . linkWithText ("Submit" ) );
88+ editEngineWindow . clickButton ("Submit" , 0 );
8989 acceptAlert ();
90+ editEngineWindow .waitForClose ();
9091 _ext4Helper .waitForMaskToDisappear ();
9192 }
9293
@@ -107,13 +108,12 @@ public void addEngine(@LoggedParam EngineType type, EngineConfig engineConfig)
107108 mouseOver (menuItem );
108109 menuItem .click (); // Retry for unresponsive button
109110 }
110- Window window = Window ( getDriver ()). withTitle ( EDIT_WINDOW_TITLE ). waitFor ();
111- engineConfig .configureEngine (type , window , this );
111+ EditEngineWindow configWindow = new EditEngineWindow ();
112+ engineConfig .configureEngine (configWindow );
112113
113114 String language = getFormElement (Locator .id ("editEngine_languageName-inputEl" ));
114115
115- clickButton ("Submit" , 0 );
116- waitForElementToDisappear (ConfigureReportsAndScriptsPage .Locators .editEngineWindow );
116+ configWindow .submit ();
117117 waitForElement (Locators .enginesGridRowForLanguage (language ));
118118 }
119119
@@ -218,13 +218,21 @@ public void deleteAllREngines()
218218 }
219219
220220 @ LogMethod (quiet = true )
221- public void editEngine (@ LoggedParam String engineName )
221+ public EditEngineWindow editEngine (@ LoggedParam String engineName )
222222 {
223223 selectEngineNamed (engineName );
224224
225225 clickButton ("Edit" , 0 );
226226
227- Window (getDriver ()).withTitle (EDIT_WINDOW_TITLE ).waitFor ();
227+ return new EditEngineWindow ();
228+ }
229+
230+ @ LogMethod (quiet = true )
231+ public void updateEngine (@ LoggedParam EngineConfig engineConfig )
232+ {
233+ EditEngineWindow editEngineWindow = editEngine (engineConfig .getName ());
234+ engineConfig .configureEngine (editEngineWindow );
235+ editEngineWindow .submit ();
228236 }
229237
230238 private void deleteSelectedEngine (WebElement selectedEngineRow )
@@ -363,33 +371,26 @@ public void setOutputFileName(String outputFileName)
363371 {
364372 _outputFileNameInput .set (outputFileName );
365373 }
374+
375+ public void submit ()
376+ {
377+ clickButton ("Submit" , true );
378+ }
366379 }
367380
368381 public enum EngineType
369382 {
370383 PERL ,
371- REMOTE_R
372- {
373- @ Override
374- public String toString ()
375- {
376- return "Remote R" ;
377- }
378- },
384+ DOCKER_REPORT , // IPYNB
385+ REMOTE_R ,
379386 R ,
380387 EXTERNAL ,
381- R_DOCKER
382- {
383- @ Override
384- public String toString ()
385- {
386- return "R Docker" ;
387- }
388- };
388+ R_DOCKER ,
389+ ;
389390
390391 public String toString ()
391392 {
392- return StringUtils .capitalize (name ().toLowerCase ());
393+ return WordUtils .capitalize (name ().toLowerCase (). replace ( "_" , " " ));
393394 }
394395 }
395396
@@ -502,16 +503,22 @@ public EngineConfig setOutputFileName(String outputFileName)
502503 return this ;
503504 }
504505
505- public void configureEngine (EngineType type , Window configWindow , WebDriverWrapper wrapper )
506+ public void configureEngine (EditEngineWindow configWindow )
506507 {
507508 for (Map .Entry <Locator , String > entry : getConfigMap ().entrySet ())
508509 {
509510 if (entry .getValue () != null )
510511 {
511- wrapper .setFormElement (entry .getKey (), entry .getValue ());
512+ configWindow . getWrapper () .setFormElement (entry .getKey (), entry .getValue ());
512513 }
513514 }
514515 }
516+
517+ @ Override
518+ public String toString ()
519+ {
520+ return getName () != null ? getName () : getClass ().getSimpleName ();
521+ }
515522 }
516523
517524 public static class RServeEngineConfig extends EngineConfig
@@ -635,18 +642,18 @@ public Map<Locator, String> getConfigMap()
635642 }
636643
637644 @ Override
638- public void configureEngine (EngineType type , Window configWindow , WebDriverWrapper wrapper )
645+ public void configureEngine (EditEngineWindow configWindow )
639646 {
640647 // need to set the change password checkbox
641- wrapper ._ext4Helper .checkCheckbox (Locator .id ("editEngine_changePassword-inputEl" ));
642- super .configureEngine (type , configWindow , wrapper );
648+ configWindow . getWrapper () ._ext4Helper .checkCheckbox (Locator .id ("editEngine_changePassword-inputEl" ));
649+ super .configureEngine (configWindow );
643650
644- wrapper . log ("Configuring the path mapping" );
645- wrapper .click (Locator .tagWithClassContaining ("td" , "remoteURI" ).index (0 ));
646- Locator .name ("remoteURI" ).findElement (wrapper .getDriver ()).sendKeys (_remoteReportsTemp );
651+ TestLogger . debug ("Configuring the path mapping" );
652+ configWindow . getWrapper () .click (Locator .tagWithClassContaining ("td" , "remoteURI" ).index (0 ));
653+ Locator .name ("remoteURI" ).findElement (configWindow . getWrapper () .getDriver ()).sendKeys (_remoteReportsTemp );
647654
648- wrapper .click (Locator .tagWithClassContaining ("td" , "remoteURI" ).index (1 ));
649- Locator .name ("remoteURI" ).findElement (wrapper .getDriver ()).sendKeys (_remoteDate );
655+ configWindow . getWrapper () .click (Locator .tagWithClassContaining ("td" , "remoteURI" ).index (1 ));
656+ Locator .name ("remoteURI" ).findElement (configWindow . getWrapper () .getDriver ()).sendKeys (_remoteDate );
650657 }
651658 }
652659
0 commit comments