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);
}
}