diff --git a/src/org/labkey/test/components/html/SiteNavBar.java b/src/org/labkey/test/components/html/SiteNavBar.java index 3456a7f64c..70a8391d7f 100644 --- a/src/org/labkey/test/components/html/SiteNavBar.java +++ b/src/org/labkey/test/components/html/SiteNavBar.java @@ -187,6 +187,11 @@ public WebElement expandSearchBar() return elementCache().searchInput; } + public boolean isSearchIconPresent() + { + return elementCache().searchToggle.isDisplayed(); + } + public AdminMenu adminMenu() { return elementCache().adminMenu; diff --git a/src/org/labkey/test/util/Maps.java b/src/org/labkey/test/util/Maps.java index 07c58e3042..558c5371e2 100644 --- a/src/org/labkey/test/util/Maps.java +++ b/src/org/labkey/test/util/Maps.java @@ -20,13 +20,9 @@ import java.util.LinkedHashMap; import java.util.Map; +@Deprecated // Use built-in Map.of() instead. Though note: Map.of() does not allow null values. public class Maps { - public static Map of() - { - return Collections.emptyMap(); - } - public static Map of(K k1, V v1) { return Collections.singletonMap(k1, v1); diff --git a/src/org/labkey/test/util/search/SearchAdminAPIHelper.java b/src/org/labkey/test/util/search/SearchAdminAPIHelper.java index 2c363094e6..51bac6c690 100644 --- a/src/org/labkey/test/util/search/SearchAdminAPIHelper.java +++ b/src/org/labkey/test/util/search/SearchAdminAPIHelper.java @@ -26,7 +26,6 @@ import org.labkey.test.WebTestHelper; import org.labkey.test.util.LogMethod; import org.labkey.test.util.LoggedParam; -import org.labkey.test.util.Maps; import org.labkey.test.util.SimpleHttpRequest; import org.labkey.test.util.SimpleHttpResponse; import org.labkey.test.util.Timer; @@ -128,71 +127,54 @@ private static void executeCommand(PostCommand cmd, String containerPath) @LogMethod(quiet = true) public static void startCrawler(WebDriver driver) { - SimpleHttpRequest request = new SimpleHttpRequest(WebTestHelper.buildURL("search", "admin", Maps.of("start", "true"))); - request.copySession(driver); - request.setRequestMethod("POST"); - try - { - SimpleHttpResponse response = request.getResponse(); - assertEquals("Failed to start search crawler", HttpStatus.SC_OK, response.getResponseCode()); - } - catch (IOException e) - { - throw new RuntimeException("Failed to start search crawler", e); - } + invokeAdminAction(driver, "start search crawler", Map.of("start", "true")); } @LogMethod(quiet = true) public static void pauseCrawler(WebDriver driver) { - SimpleHttpRequest request = new SimpleHttpRequest(WebTestHelper.buildURL("search", "admin", Maps.of("pause", "true"))); - request.copySession(driver); - request.setRequestMethod("POST"); - try - { - SimpleHttpResponse response = request.getResponse(); - assertEquals("Failed to pause search crawler", HttpStatus.SC_OK, response.getResponseCode()); - } - catch (IOException e) - { - throw new RuntimeException("Failed to pause search crawler", e); - } + invokeAdminAction(driver, "pause search crawler", Map.of("pause", "true")); + } + + @LogMethod(quiet = true) + public static void hideSearchIcon(WebDriver driver) + { + invokeAdminAction(driver, "hide search icon", Map.of("hideSearchIcon", "true")); + } + + @LogMethod(quiet = true) + public static void showSearchIcon(WebDriver driver) + { + invokeAdminAction(driver, "show search icon", Map.of("showSearchIcon", "true")); } @LogMethod(quiet = true) public static void setDirectoryType(@LoggedParam DirectoryType type, WebDriver driver) { pauseCrawler(driver); - SimpleHttpRequest request = new SimpleHttpRequest(WebTestHelper.buildURL("search", "admin", - Maps.of("directory", "true", "directoryType", type.toString()))); - request.copySession(driver); - request.setRequestMethod("POST"); - try - { - SimpleHttpResponse response = request.getResponse(); - assertEquals("Failed to set search directoryType", HttpStatus.SC_OK, response.getResponseCode()); - } - catch (IOException e) - { - throw new RuntimeException("Failed to set search directoryType", e); - } + invokeAdminAction(driver, "set search directoryType", Map.of("directory", "true", "directoryType", type.toString())); startCrawler(driver); } @LogMethod(quiet = true) public static void deleteIndex(WebDriver driver) { - SimpleHttpRequest request = new SimpleHttpRequest(WebTestHelper.buildURL("search", "admin", Maps.of("delete", "true"))); + invokeAdminAction(driver, "delete search index", Map.of("delete", "true")); + } + + private static void invokeAdminAction(WebDriver driver, String operation, Map map) + { + SimpleHttpRequest request = new SimpleHttpRequest(WebTestHelper.buildURL("search", "admin", map)); request.copySession(driver); request.setRequestMethod("POST"); try { SimpleHttpResponse response = request.getResponse(); - assertEquals("Failed to delete search index", HttpStatus.SC_OK, response.getResponseCode()); + assertEquals("Failed to " + operation, HttpStatus.SC_OK, response.getResponseCode()); } catch (IOException e) { - throw new RuntimeException("Failed to delete search index", e); + throw new RuntimeException("Failed to " + operation, e); } }