diff --git a/libs/commcare b/libs/commcare index b51bfe9a2..fbf814535 160000 --- a/libs/commcare +++ b/libs/commcare @@ -1 +1 @@ -Subproject commit b51bfe9a288cc9ec7816ecfd92cad1ec8589bb76 +Subproject commit fbf814535ce2717a6f1d4f3203268cfd023a47e8 diff --git a/src/main/java/org/commcare/formplayer/beans/menus/BaseResponseBean.java b/src/main/java/org/commcare/formplayer/beans/menus/BaseResponseBean.java index a802de584..dce0a3eab 100644 --- a/src/main/java/org/commcare/formplayer/beans/menus/BaseResponseBean.java +++ b/src/main/java/org/commcare/formplayer/beans/menus/BaseResponseBean.java @@ -23,6 +23,7 @@ public class BaseResponseBean extends LocationRelevantResponseBean { private String[] selections; private HashMap translations; private String smartLinkRedirect; + private boolean dynamicSearch; public BaseResponseBean() { } @@ -54,6 +55,14 @@ public void setSmartLinkRedirect(String smartLinkRedirect) { this.smartLinkRedirect = smartLinkRedirect; } + public boolean getDynamicSearch() { + return dynamicSearch; + } + + public void setDynamicSearch(boolean dynamicSearch) { + this.dynamicSearch = dynamicSearch; + } + public NotificationMessage getNotification() { return notification; } diff --git a/src/main/java/org/commcare/formplayer/beans/menus/QueryResponseBean.java b/src/main/java/org/commcare/formplayer/beans/menus/QueryResponseBean.java index c31292e8e..198fe05c4 100644 --- a/src/main/java/org/commcare/formplayer/beans/menus/QueryResponseBean.java +++ b/src/main/java/org/commcare/formplayer/beans/menus/QueryResponseBean.java @@ -86,6 +86,7 @@ public QueryResponseBean(QueryScreen queryScreen) { setTitle(queryScreen.getScreenTitle()); setDescription(queryScreen.getDescriptionText()); setQueryKey(querySession.getCommand()); + setDynamicSearch(queryScreen.getDynamicSearch()); } @Override diff --git a/src/test/java/org/commcare/formplayer/tests/CaseClaimTests.java b/src/test/java/org/commcare/formplayer/tests/CaseClaimTests.java index 5ac77a224..a950434e6 100644 --- a/src/test/java/org/commcare/formplayer/tests/CaseClaimTests.java +++ b/src/test/java/org/commcare/formplayer/tests/CaseClaimTests.java @@ -83,6 +83,23 @@ public void testCaseSearchCacheExists() { assertTrue(cache instanceof CaffeineCache); } + @Test + public void testDynamicSearch() throws Exception { + configureQueryMock(); + // Run query with an app with dynamic_search true and verify + QueryData queryData = new QueryData(); + queryData.setForceManualSearch("search_command.m1", true); + QueryResponseBean queryResponseBean = runQuery(queryData); + assertTrue(queryResponseBean.getDynamicSearch()); + + // Run query with an app with dynamic_search false and verify + queryResponseBean = sessionNavigateWithQuery(new String[]{"1"}, + "case_claim_eof_navigation", + null, + QueryResponseBean.class); + assertFalse(queryResponseBean.getDynamicSearch()); + } + @Test public void testEmptySearch() throws Exception { configureQueryMock(); @@ -191,6 +208,7 @@ public void testQueryScreen() throws Exception { // forceManualAction true when default Search on should result in query screen QueryResponseBean queryResponseBean = runQuery(queryData); assert queryResponseBean.getDisplays().length == 5; + assertTrue(queryResponseBean.getDynamicSearch()); // test default value assert queryResponseBean.getDisplays()[0].getValue().contentEquals("Formplayer"); diff --git a/src/test/resources/archives/caseclaim/suite.xml b/src/test/resources/archives/caseclaim/suite.xml index b427c67e2..972397bc2 100644 --- a/src/test/resources/archives/caseclaim/suite.xml +++ b/src/test/resources/archives/caseclaim/suite.xml @@ -366,7 +366,7 @@ - +