From 21d05826f5b3557414a866923cd1275f3eb62d75 Mon Sep 17 00:00:00 2001 From: Minha Date: Mon, 7 Oct 2024 17:32:49 +0200 Subject: [PATCH 01/10] Make language slug available via session metadata --- .../formplayer/application/MenuController.java | 4 ++++ .../formplayer/beans/menus/EntityDetailResponse.java | 2 +- .../session/FormplayerInstanceInitializer.java | 11 +++++++++-- .../commcare/formplayer/utils/TestStorageUtils.java | 2 +- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/commcare/formplayer/application/MenuController.java b/src/main/java/org/commcare/formplayer/application/MenuController.java index 56f9fd7b1..e3b78b5e6 100644 --- a/src/main/java/org/commcare/formplayer/application/MenuController.java +++ b/src/main/java/org/commcare/formplayer/application/MenuController.java @@ -79,6 +79,7 @@ public EntityDetailListResponse getDetails(@RequestBody SessionNavigationBean se sessionNavigationBean.getCasesPerPage(), sessionNavigationBean.getSelectedValues(), null, + null, isFuzzySearch); BaseResponseBean baseResponseBean = runnerService.advanceSessionWithSelections(menuSession, sessionNavigationBean.getSelections(), @@ -110,6 +111,7 @@ public EntityDetailListResponse getDetails(@RequestBody SessionNavigationBean se sessionNavigationBean.getSortIndex(), sessionNavigationBean.getCasesPerPage(), sessionNavigationBean.getSelectedValues(), + null, detailSelection, isFuzzySearch); BaseResponseBean baseResponseBean = runnerService.advanceSessionWithSelections( @@ -165,6 +167,7 @@ public EntityDetailListResponse getDetails(@RequestBody SessionNavigationBean se public BaseResponseBean navigateSessionWithAuth(@RequestBody SessionNavigationBean sessionNavigationBean, @CookieValue(Constants.POSTGRES_DJANGO_SESSION_ID) String authToken, HttpServletRequest request) throws Exception { + String locale = sessionNavigationBean.getLocale(); String[] selections = sessionNavigationBean.getSelections(); if (selections == null) { selections = new String[0]; @@ -175,6 +178,7 @@ public BaseResponseBean navigateSessionWithAuth(@RequestBody SessionNavigationBe sessionNavigationBean.getSortIndex(), sessionNavigationBean.getCasesPerPage(), sessionNavigationBean.getSelectedValues(), + locale, null, storageFactory.getPropertyManager().isFuzzySearchEnabled()); BaseResponseBean response = runnerService.advanceSessionWithSelections( diff --git a/src/main/java/org/commcare/formplayer/beans/menus/EntityDetailResponse.java b/src/main/java/org/commcare/formplayer/beans/menus/EntityDetailResponse.java index e487266cb..9aca9a1fd 100644 --- a/src/main/java/org/commcare/formplayer/beans/menus/EntityDetailResponse.java +++ b/src/main/java/org/commcare/formplayer/beans/menus/EntityDetailResponse.java @@ -87,7 +87,7 @@ public EntityDetailResponse(Detail detail, String title, boolean isFuzzySearchEnabled) { EntityScreenContext entityScreenContext = new EntityScreenContext(0, null, 0, Integer.MAX_VALUE, null, - null, isFuzzySearchEnabled); + null, null, isFuzzySearchEnabled); TreeReference[] refs = references.toArray(new TreeReference[references.size()]); List> entityRefs = EntityScreenHelper.initEntities(ec, detail, entityScreenContext, refs); diff --git a/src/main/java/org/commcare/formplayer/session/FormplayerInstanceInitializer.java b/src/main/java/org/commcare/formplayer/session/FormplayerInstanceInitializer.java index efd137795..ae0356315 100644 --- a/src/main/java/org/commcare/formplayer/session/FormplayerInstanceInitializer.java +++ b/src/main/java/org/commcare/formplayer/session/FormplayerInstanceInitializer.java @@ -16,6 +16,7 @@ import org.javarosa.core.model.instance.ExternalDataInstance; import org.javarosa.core.model.instance.InstanceRoot; import org.javarosa.core.model.instance.TreeElement; +import org.javarosa.core.services.locale.Localization; import java.util.Hashtable; @@ -50,7 +51,7 @@ protected InstanceRoot setupCaseData(ExternalDataInstance instance) { } @Override - protected InstanceRoot setupSessionData(ExternalDataInstance instance) { + protected InstanceRoot setupSessionData(ExternalDataInstance instance, String locale) { if (this.mPlatform == null) { throw new RuntimeException("Cannot generate session instance with undeclared platform!"); } @@ -61,10 +62,16 @@ protected InstanceRoot setupSessionData(ExternalDataInstance instance) { Hashtable userProperties = u.getProperties(); + String appLang = locale; + if (locale == null) { + String[] locales = Localization.getGlobalLocalizerAdvanced().getAvailableLocales(); + appLang = locales[locales.length-1]; + } + TreeElement root = SessionInstanceBuilder.getSessionInstance(sessionWrapper.getFrame(), getDeviceId(), getVersionString(), getCurrentDrift(), u.getUsername(), u.getUniqueId(), - userProperties, getWindowWidth()); + userProperties, getWindowWidth(), appLang); root.setParent(instance.getBase()); return new ConcreteInstanceRoot(root); } diff --git a/src/test/java/org/commcare/formplayer/utils/TestStorageUtils.java b/src/test/java/org/commcare/formplayer/utils/TestStorageUtils.java index 71996826c..28a44897f 100644 --- a/src/test/java/org/commcare/formplayer/utils/TestStorageUtils.java +++ b/src/test/java/org/commcare/formplayer/utils/TestStorageUtils.java @@ -25,7 +25,7 @@ public static EvaluationContext getEvaluationContextWithoutSession(UserSqlSandbo private static EvaluationContext buildEvaluationContext(FormplayerInstanceInitializer iif) { ExternalDataInstance edi = new ExternalDataInstance(ExternalDataInstance.JR_CASE_DB_REFERENCE, "casedb"); - DataInstance specializedDataInstance = edi.initialize(iif, "casedb"); + DataInstance specializedDataInstance = edi.initialize(iif, "casedb", null); ExternalDataInstance ledgerDataInstanceRaw = new ExternalDataInstance( ExternalDataInstance.JR_LEDGER_DB_REFERENCE, From c52535c69b76d77798f29380474b937994b6516a Mon Sep 17 00:00:00 2001 From: Minha Date: Wed, 16 Oct 2024 17:38:22 -0400 Subject: [PATCH 02/10] Update references --- libs/commcare | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/commcare b/libs/commcare index 65233a6e3..8c519a2e2 160000 --- a/libs/commcare +++ b/libs/commcare @@ -1 +1 @@ -Subproject commit 65233a6e3b78099339271c19c2a4a53e3a4e8c93 +Subproject commit 8c519a2e232e1ee75f455f711164d19d0acacded From 848b7271e8ae05dd85a725873f8298ff59b51149 Mon Sep 17 00:00:00 2001 From: Minha Date: Wed, 16 Oct 2024 17:43:15 -0400 Subject: [PATCH 03/10] Update references (actually related to my changes) --- libs/commcare | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/commcare b/libs/commcare index 8c519a2e2..ed406173c 160000 --- a/libs/commcare +++ b/libs/commcare @@ -1 +1 @@ -Subproject commit 8c519a2e232e1ee75f455f711164d19d0acacded +Subproject commit ed406173c30cc94b72908e794260cb6154d6a4ac From fdac8828338571513e159447f2d145677d4198d3 Mon Sep 17 00:00:00 2001 From: Minha Date: Fri, 18 Oct 2024 15:01:38 -0400 Subject: [PATCH 04/10] Make sure default slug is always correct + remove unnecessary null arg --- .../formplayer/session/FormplayerInstanceInitializer.java | 8 +++++--- .../org/commcare/formplayer/utils/TestStorageUtils.java | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/commcare/formplayer/session/FormplayerInstanceInitializer.java b/src/main/java/org/commcare/formplayer/session/FormplayerInstanceInitializer.java index ae0356315..73f29bcf7 100644 --- a/src/main/java/org/commcare/formplayer/session/FormplayerInstanceInitializer.java +++ b/src/main/java/org/commcare/formplayer/session/FormplayerInstanceInitializer.java @@ -18,6 +18,7 @@ import org.javarosa.core.model.instance.TreeElement; import org.javarosa.core.services.locale.Localization; +import java.util.Arrays; import java.util.Hashtable; /** @@ -63,9 +64,10 @@ protected InstanceRoot setupSessionData(ExternalDataInstance instance, String lo Hashtable userProperties = u.getProperties(); String appLang = locale; - if (locale == null) { - String[] locales = Localization.getGlobalLocalizerAdvanced().getAvailableLocales(); - appLang = locales[locales.length-1]; + String[] locales = Localization.getGlobalLocalizerAdvanced().getAvailableLocales(); + if (appLang == null || !Arrays.asList(locales).contains(appLang)) { + // the ordering is always ['default', , ] + appLang = locales[1]; } TreeElement root = diff --git a/src/test/java/org/commcare/formplayer/utils/TestStorageUtils.java b/src/test/java/org/commcare/formplayer/utils/TestStorageUtils.java index 28a44897f..71996826c 100644 --- a/src/test/java/org/commcare/formplayer/utils/TestStorageUtils.java +++ b/src/test/java/org/commcare/formplayer/utils/TestStorageUtils.java @@ -25,7 +25,7 @@ public static EvaluationContext getEvaluationContextWithoutSession(UserSqlSandbo private static EvaluationContext buildEvaluationContext(FormplayerInstanceInitializer iif) { ExternalDataInstance edi = new ExternalDataInstance(ExternalDataInstance.JR_CASE_DB_REFERENCE, "casedb"); - DataInstance specializedDataInstance = edi.initialize(iif, "casedb", null); + DataInstance specializedDataInstance = edi.initialize(iif, "casedb"); ExternalDataInstance ledgerDataInstanceRaw = new ExternalDataInstance( ExternalDataInstance.JR_LEDGER_DB_REFERENCE, From 3bd861188daeac33102046e5287e621ae16b7117 Mon Sep 17 00:00:00 2001 From: Minha Date: Fri, 18 Oct 2024 15:12:08 -0400 Subject: [PATCH 05/10] Fix tests --- .../formplayer/session/FormplayerInstanceInitializer.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/commcare/formplayer/session/FormplayerInstanceInitializer.java b/src/main/java/org/commcare/formplayer/session/FormplayerInstanceInitializer.java index 73f29bcf7..3dc06c372 100644 --- a/src/main/java/org/commcare/formplayer/session/FormplayerInstanceInitializer.java +++ b/src/main/java/org/commcare/formplayer/session/FormplayerInstanceInitializer.java @@ -67,7 +67,12 @@ protected InstanceRoot setupSessionData(ExternalDataInstance instance, String lo String[] locales = Localization.getGlobalLocalizerAdvanced().getAvailableLocales(); if (appLang == null || !Arrays.asList(locales).contains(appLang)) { // the ordering is always ['default', , ] - appLang = locales[1]; + if (locales.length >= 2) { + appLang = locales[1]; + } else { + // to pass tests + appLang = locales[0]; + } } TreeElement root = From d6be27e5e3ea407181a7584afb6a30f6aa75de25 Mon Sep 17 00:00:00 2001 From: Minha Date: Tue, 22 Oct 2024 20:24:09 -0400 Subject: [PATCH 06/10] Partially reverse previous attempts to find locale in favor of using the simpler Localization.getCurrentLocale() --- .../formplayer/application/MenuController.java | 4 ---- .../beans/menus/EntityDetailResponse.java | 2 +- .../session/FormplayerInstanceInitializer.java | 18 ++---------------- 3 files changed, 3 insertions(+), 21 deletions(-) diff --git a/src/main/java/org/commcare/formplayer/application/MenuController.java b/src/main/java/org/commcare/formplayer/application/MenuController.java index e3b78b5e6..56f9fd7b1 100644 --- a/src/main/java/org/commcare/formplayer/application/MenuController.java +++ b/src/main/java/org/commcare/formplayer/application/MenuController.java @@ -79,7 +79,6 @@ public EntityDetailListResponse getDetails(@RequestBody SessionNavigationBean se sessionNavigationBean.getCasesPerPage(), sessionNavigationBean.getSelectedValues(), null, - null, isFuzzySearch); BaseResponseBean baseResponseBean = runnerService.advanceSessionWithSelections(menuSession, sessionNavigationBean.getSelections(), @@ -111,7 +110,6 @@ public EntityDetailListResponse getDetails(@RequestBody SessionNavigationBean se sessionNavigationBean.getSortIndex(), sessionNavigationBean.getCasesPerPage(), sessionNavigationBean.getSelectedValues(), - null, detailSelection, isFuzzySearch); BaseResponseBean baseResponseBean = runnerService.advanceSessionWithSelections( @@ -167,7 +165,6 @@ public EntityDetailListResponse getDetails(@RequestBody SessionNavigationBean se public BaseResponseBean navigateSessionWithAuth(@RequestBody SessionNavigationBean sessionNavigationBean, @CookieValue(Constants.POSTGRES_DJANGO_SESSION_ID) String authToken, HttpServletRequest request) throws Exception { - String locale = sessionNavigationBean.getLocale(); String[] selections = sessionNavigationBean.getSelections(); if (selections == null) { selections = new String[0]; @@ -178,7 +175,6 @@ public BaseResponseBean navigateSessionWithAuth(@RequestBody SessionNavigationBe sessionNavigationBean.getSortIndex(), sessionNavigationBean.getCasesPerPage(), sessionNavigationBean.getSelectedValues(), - locale, null, storageFactory.getPropertyManager().isFuzzySearchEnabled()); BaseResponseBean response = runnerService.advanceSessionWithSelections( diff --git a/src/main/java/org/commcare/formplayer/beans/menus/EntityDetailResponse.java b/src/main/java/org/commcare/formplayer/beans/menus/EntityDetailResponse.java index 9aca9a1fd..e487266cb 100644 --- a/src/main/java/org/commcare/formplayer/beans/menus/EntityDetailResponse.java +++ b/src/main/java/org/commcare/formplayer/beans/menus/EntityDetailResponse.java @@ -87,7 +87,7 @@ public EntityDetailResponse(Detail detail, String title, boolean isFuzzySearchEnabled) { EntityScreenContext entityScreenContext = new EntityScreenContext(0, null, 0, Integer.MAX_VALUE, null, - null, null, isFuzzySearchEnabled); + null, isFuzzySearchEnabled); TreeReference[] refs = references.toArray(new TreeReference[references.size()]); List> entityRefs = EntityScreenHelper.initEntities(ec, detail, entityScreenContext, refs); diff --git a/src/main/java/org/commcare/formplayer/session/FormplayerInstanceInitializer.java b/src/main/java/org/commcare/formplayer/session/FormplayerInstanceInitializer.java index 3dc06c372..e0c052c1c 100644 --- a/src/main/java/org/commcare/formplayer/session/FormplayerInstanceInitializer.java +++ b/src/main/java/org/commcare/formplayer/session/FormplayerInstanceInitializer.java @@ -16,9 +16,7 @@ import org.javarosa.core.model.instance.ExternalDataInstance; import org.javarosa.core.model.instance.InstanceRoot; import org.javarosa.core.model.instance.TreeElement; -import org.javarosa.core.services.locale.Localization; -import java.util.Arrays; import java.util.Hashtable; /** @@ -52,7 +50,7 @@ protected InstanceRoot setupCaseData(ExternalDataInstance instance) { } @Override - protected InstanceRoot setupSessionData(ExternalDataInstance instance, String locale) { + protected InstanceRoot setupSessionData(ExternalDataInstance instance) { if (this.mPlatform == null) { throw new RuntimeException("Cannot generate session instance with undeclared platform!"); } @@ -63,22 +61,10 @@ protected InstanceRoot setupSessionData(ExternalDataInstance instance, String lo Hashtable userProperties = u.getProperties(); - String appLang = locale; - String[] locales = Localization.getGlobalLocalizerAdvanced().getAvailableLocales(); - if (appLang == null || !Arrays.asList(locales).contains(appLang)) { - // the ordering is always ['default', , ] - if (locales.length >= 2) { - appLang = locales[1]; - } else { - // to pass tests - appLang = locales[0]; - } - } - TreeElement root = SessionInstanceBuilder.getSessionInstance(sessionWrapper.getFrame(), getDeviceId(), getVersionString(), getCurrentDrift(), u.getUsername(), u.getUniqueId(), - userProperties, getWindowWidth(), appLang); + userProperties, getWindowWidth(), getLocale()); root.setParent(instance.getBase()); return new ConcreteInstanceRoot(root); } From 82681c3a7d24cde0d351728474bb5f1d8df6a7c6 Mon Sep 17 00:00:00 2001 From: Minha Date: Tue, 22 Oct 2024 22:36:37 -0400 Subject: [PATCH 07/10] Add test --- .../beans/AuthenticatedRequestBean.java | 11 ++++++++++ .../junit/request/EvaluateXpathRequest.kt | 4 +++- .../formplayer/tests/BaseTestClass.java | 9 ++++---- .../tests/MultiSelectCaseListTest.java | 22 +++++++++++++++++-- 4 files changed, 39 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/commcare/formplayer/beans/AuthenticatedRequestBean.java b/src/main/java/org/commcare/formplayer/beans/AuthenticatedRequestBean.java index 4a641747b..fb34fe4ea 100644 --- a/src/main/java/org/commcare/formplayer/beans/AuthenticatedRequestBean.java +++ b/src/main/java/org/commcare/formplayer/beans/AuthenticatedRequestBean.java @@ -22,6 +22,7 @@ public class AuthenticatedRequestBean { private int timezoneOffsetMillis = -1; private String timezoneFromBrowser = null; private String windowWidth; + private String locale; public String getUsername() { return username; @@ -111,4 +112,14 @@ public String getWindowWidth() { public void setWindowWidth(String windowWidth) { this.windowWidth = windowWidth; } + + @JsonGetter(value = "locale") + public String getLocale() { + return locale; + } + + @JsonSetter(value = "locale") + public void setLocale(String locale) { + this.locale = locale; + } } diff --git a/src/test/java/org/commcare/formplayer/junit/request/EvaluateXpathRequest.kt b/src/test/java/org/commcare/formplayer/junit/request/EvaluateXpathRequest.kt index c157aee21..1b03316e5 100644 --- a/src/test/java/org/commcare/formplayer/junit/request/EvaluateXpathRequest.kt +++ b/src/test/java/org/commcare/formplayer/junit/request/EvaluateXpathRequest.kt @@ -16,7 +16,8 @@ class EvaluateXpathRequest( private val sessionId: String, private val xpath: String, private val formSessionService: FormSessionService, - private val windowWidth: String? + private val windowWidth: String?, + private val locale: String? ) : MockRequest( mockMvc, Constants.URL_EVALUATE_XPATH, EvaluateXPathResponseBean::class.java ) { @@ -30,6 +31,7 @@ class EvaluateXpathRequest( bean.xpath = xpath bean.debugOutputLevel = Constants.BASIC_NO_TRACE bean.windowWidth = windowWidth + bean.locale = locale populateFromSession(bean) return requestWithBean(bean) diff --git a/src/test/java/org/commcare/formplayer/tests/BaseTestClass.java b/src/test/java/org/commcare/formplayer/tests/BaseTestClass.java index ac5855238..74cfd719f 100644 --- a/src/test/java/org/commcare/formplayer/tests/BaseTestClass.java +++ b/src/test/java/org/commcare/formplayer/tests/BaseTestClass.java @@ -636,7 +636,7 @@ FormEntryResponseBean deleteRepeatRequest(String sessionId, String repeatIndex) } EvaluateXPathResponseBean evaluateXPath(String sessionId, String xPath) throws Exception { - return new EvaluateXpathRequest(mockDebuggerController, sessionId, xPath, formSessionService, null) + return new EvaluateXpathRequest(mockDebuggerController, sessionId, xPath, formSessionService, null, null) .request() .bean(); } @@ -676,7 +676,7 @@ EvaluateXPathResponseBean evaluateMenuXpath(String menuSessionId, String xpath) */ protected void checkXpath(String sessionId, String xpath, String expectedValue) throws Exception { - new EvaluateXpathRequest(mockDebuggerController, sessionId, xpath, formSessionService, null) + new EvaluateXpathRequest(mockDebuggerController, sessionId, xpath, formSessionService, null, null) .request() .andExpectAll( jsonPath("status", equalTo(Constants.ANSWER_RESPONSE_STATUS_POSITIVE)), @@ -815,10 +815,10 @@ SyncDbResponseBean intervalSyncDB(String testName, String restoreAs) throws Exce T sessionNavigateWithSelectedValues(String[] selections, String testName, String[] selectedValues, Class clazz) throws Exception { - return sessionNavigateWithSelectedValues(selections, testName, selectedValues, null, clazz); + return sessionNavigateWithSelectedValues(selections, testName, selectedValues, null, null, clazz); } - T sessionNavigateWithSelectedValues(String[] selections, String testName, String[] selectedValues, String windowWidth, + T sessionNavigateWithSelectedValues(String[] selections, String testName, String[] selectedValues, String windowWidth, String locale, Class clazz) throws Exception { SessionNavigationBean sessionNavigationBean = new SessionNavigationBean(); @@ -828,6 +828,7 @@ T sessionNavigateWithSelectedValues(String[] selections, String testName, St sessionNavigationBean.setSelections(selections); sessionNavigationBean.setSelectedValues(selectedValues); sessionNavigationBean.setWindowWidth(windowWidth); + sessionNavigationBean.setLocale(locale); return generateMockQueryWithInstallReference(Installer.getInstallReference(testName), ControllerType.MENU, RequestType.POST, diff --git a/src/test/java/org/commcare/formplayer/tests/MultiSelectCaseListTest.java b/src/test/java/org/commcare/formplayer/tests/MultiSelectCaseListTest.java index 41973d059..a81de6f56 100644 --- a/src/test/java/org/commcare/formplayer/tests/MultiSelectCaseListTest.java +++ b/src/test/java/org/commcare/formplayer/tests/MultiSelectCaseListTest.java @@ -87,11 +87,11 @@ public void testWindowWidthParam() throws Exception { String[] selectedValues = new String[]{"5e421eb8bf414e03b4871195b869d894", "3512eb7c-7a58-4a95-beda-205eb0d7f163"}; NewFormResponse formResp = sessionNavigateWithSelectedValues(selections, APP, selectedValues, - "test-window-width", + "test-window-width", null, NewFormResponse.class); EvaluateXPathResponseBean evaluateXpathResponseBean = new EvaluateXpathRequest(mockDebuggerController, formResp.getSessionId(), "instance('commcaresession')/session/context/window_width", - formSessionService, "test-window-width") + formSessionService, "test-window-width", null) .request() .bean(); @@ -99,6 +99,24 @@ public void testWindowWidthParam() throws Exception { assertThat(evaluateXpathResponseBean.getOutput(), hasXpath("/result", equalTo("test-window-width"))); } + @Test + public void testLocaleParam() throws Exception { + String[] selections = new String[]{"0", "1", "use_selected_values"}; + String[] selectedValues = + new String[]{"5e421eb8bf414e03b4871195b869d894", "3512eb7c-7a58-4a95-beda-205eb0d7f163"}; + NewFormResponse formResp = sessionNavigateWithSelectedValues(selections, APP, selectedValues, + null, "en", + NewFormResponse.class); + EvaluateXPathResponseBean evaluateXpathResponseBean = new EvaluateXpathRequest(mockDebuggerController, + formResp.getSessionId(), "instance('commcaresession')/session/context/applanguage", + formSessionService, null, "en") + .request() + .bean(); + + assertEquals(evaluateXpathResponseBean.getStatus(), Constants.ANSWER_RESPONSE_STATUS_POSITIVE); + assertThat(evaluateXpathResponseBean.getOutput(), hasXpath("/result", equalTo("en"))); + } + @Test public void testConfirmedSelectionsForMultiSelectCaseList() { String[] selections = new String[]{"0", "1", "use_selected_values"}; From abc2cfa9533c09c8ebf5332890e28b7fb8d4a7cf Mon Sep 17 00:00:00 2001 From: Minha Date: Wed, 23 Oct 2024 09:29:58 -0400 Subject: [PATCH 08/10] Update references --- libs/commcare | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/commcare b/libs/commcare index ed406173c..67bcb5a19 160000 --- a/libs/commcare +++ b/libs/commcare @@ -1 +1 @@ -Subproject commit ed406173c30cc94b72908e794260cb6154d6a4ac +Subproject commit 67bcb5a1937b489fcf6e026ac5909facc7f686ab From 37eab50271254e6763f6838dc6a9e994f6af57b8 Mon Sep 17 00:00:00 2001 From: Minha Date: Wed, 23 Oct 2024 14:07:54 -0400 Subject: [PATCH 09/10] Remove unncessary locale use for test --- .../formplayer/beans/AuthenticatedRequestBean.java | 11 ----------- .../formplayer/junit/request/EvaluateXpathRequest.kt | 4 +--- .../org/commcare/formplayer/tests/BaseTestClass.java | 4 ++-- .../formplayer/tests/MultiSelectCaseListTest.java | 4 ++-- 4 files changed, 5 insertions(+), 18 deletions(-) diff --git a/src/main/java/org/commcare/formplayer/beans/AuthenticatedRequestBean.java b/src/main/java/org/commcare/formplayer/beans/AuthenticatedRequestBean.java index fb34fe4ea..4a641747b 100644 --- a/src/main/java/org/commcare/formplayer/beans/AuthenticatedRequestBean.java +++ b/src/main/java/org/commcare/formplayer/beans/AuthenticatedRequestBean.java @@ -22,7 +22,6 @@ public class AuthenticatedRequestBean { private int timezoneOffsetMillis = -1; private String timezoneFromBrowser = null; private String windowWidth; - private String locale; public String getUsername() { return username; @@ -112,14 +111,4 @@ public String getWindowWidth() { public void setWindowWidth(String windowWidth) { this.windowWidth = windowWidth; } - - @JsonGetter(value = "locale") - public String getLocale() { - return locale; - } - - @JsonSetter(value = "locale") - public void setLocale(String locale) { - this.locale = locale; - } } diff --git a/src/test/java/org/commcare/formplayer/junit/request/EvaluateXpathRequest.kt b/src/test/java/org/commcare/formplayer/junit/request/EvaluateXpathRequest.kt index 1b03316e5..c157aee21 100644 --- a/src/test/java/org/commcare/formplayer/junit/request/EvaluateXpathRequest.kt +++ b/src/test/java/org/commcare/formplayer/junit/request/EvaluateXpathRequest.kt @@ -16,8 +16,7 @@ class EvaluateXpathRequest( private val sessionId: String, private val xpath: String, private val formSessionService: FormSessionService, - private val windowWidth: String?, - private val locale: String? + private val windowWidth: String? ) : MockRequest( mockMvc, Constants.URL_EVALUATE_XPATH, EvaluateXPathResponseBean::class.java ) { @@ -31,7 +30,6 @@ class EvaluateXpathRequest( bean.xpath = xpath bean.debugOutputLevel = Constants.BASIC_NO_TRACE bean.windowWidth = windowWidth - bean.locale = locale populateFromSession(bean) return requestWithBean(bean) diff --git a/src/test/java/org/commcare/formplayer/tests/BaseTestClass.java b/src/test/java/org/commcare/formplayer/tests/BaseTestClass.java index 74cfd719f..3fe275748 100644 --- a/src/test/java/org/commcare/formplayer/tests/BaseTestClass.java +++ b/src/test/java/org/commcare/formplayer/tests/BaseTestClass.java @@ -636,7 +636,7 @@ FormEntryResponseBean deleteRepeatRequest(String sessionId, String repeatIndex) } EvaluateXPathResponseBean evaluateXPath(String sessionId, String xPath) throws Exception { - return new EvaluateXpathRequest(mockDebuggerController, sessionId, xPath, formSessionService, null, null) + return new EvaluateXpathRequest(mockDebuggerController, sessionId, xPath, formSessionService, null) .request() .bean(); } @@ -676,7 +676,7 @@ EvaluateXPathResponseBean evaluateMenuXpath(String menuSessionId, String xpath) */ protected void checkXpath(String sessionId, String xpath, String expectedValue) throws Exception { - new EvaluateXpathRequest(mockDebuggerController, sessionId, xpath, formSessionService, null, null) + new EvaluateXpathRequest(mockDebuggerController, sessionId, xpath, formSessionService, null) .request() .andExpectAll( jsonPath("status", equalTo(Constants.ANSWER_RESPONSE_STATUS_POSITIVE)), diff --git a/src/test/java/org/commcare/formplayer/tests/MultiSelectCaseListTest.java b/src/test/java/org/commcare/formplayer/tests/MultiSelectCaseListTest.java index a81de6f56..ed40a8354 100644 --- a/src/test/java/org/commcare/formplayer/tests/MultiSelectCaseListTest.java +++ b/src/test/java/org/commcare/formplayer/tests/MultiSelectCaseListTest.java @@ -91,7 +91,7 @@ public void testWindowWidthParam() throws Exception { NewFormResponse.class); EvaluateXPathResponseBean evaluateXpathResponseBean = new EvaluateXpathRequest(mockDebuggerController, formResp.getSessionId(), "instance('commcaresession')/session/context/window_width", - formSessionService, "test-window-width", null) + formSessionService, "test-window-width") .request() .bean(); @@ -109,7 +109,7 @@ public void testLocaleParam() throws Exception { NewFormResponse.class); EvaluateXPathResponseBean evaluateXpathResponseBean = new EvaluateXpathRequest(mockDebuggerController, formResp.getSessionId(), "instance('commcaresession')/session/context/applanguage", - formSessionService, null, "en") + formSessionService, null) .request() .bean(); From 6b0ad02625b8ea0a01db88facb76fcab2b0df93d Mon Sep 17 00:00:00 2001 From: Minha Date: Wed, 23 Oct 2024 14:52:23 -0400 Subject: [PATCH 10/10] Remove test temporarily --- .../formplayer/tests/BaseTestClass.java | 5 ++--- .../tests/MultiSelectCaseListTest.java | 20 +------------------ 2 files changed, 3 insertions(+), 22 deletions(-) diff --git a/src/test/java/org/commcare/formplayer/tests/BaseTestClass.java b/src/test/java/org/commcare/formplayer/tests/BaseTestClass.java index 3fe275748..ac5855238 100644 --- a/src/test/java/org/commcare/formplayer/tests/BaseTestClass.java +++ b/src/test/java/org/commcare/formplayer/tests/BaseTestClass.java @@ -815,10 +815,10 @@ SyncDbResponseBean intervalSyncDB(String testName, String restoreAs) throws Exce T sessionNavigateWithSelectedValues(String[] selections, String testName, String[] selectedValues, Class clazz) throws Exception { - return sessionNavigateWithSelectedValues(selections, testName, selectedValues, null, null, clazz); + return sessionNavigateWithSelectedValues(selections, testName, selectedValues, null, clazz); } - T sessionNavigateWithSelectedValues(String[] selections, String testName, String[] selectedValues, String windowWidth, String locale, + T sessionNavigateWithSelectedValues(String[] selections, String testName, String[] selectedValues, String windowWidth, Class clazz) throws Exception { SessionNavigationBean sessionNavigationBean = new SessionNavigationBean(); @@ -828,7 +828,6 @@ T sessionNavigateWithSelectedValues(String[] selections, String testName, St sessionNavigationBean.setSelections(selections); sessionNavigationBean.setSelectedValues(selectedValues); sessionNavigationBean.setWindowWidth(windowWidth); - sessionNavigationBean.setLocale(locale); return generateMockQueryWithInstallReference(Installer.getInstallReference(testName), ControllerType.MENU, RequestType.POST, diff --git a/src/test/java/org/commcare/formplayer/tests/MultiSelectCaseListTest.java b/src/test/java/org/commcare/formplayer/tests/MultiSelectCaseListTest.java index ed40a8354..41973d059 100644 --- a/src/test/java/org/commcare/formplayer/tests/MultiSelectCaseListTest.java +++ b/src/test/java/org/commcare/formplayer/tests/MultiSelectCaseListTest.java @@ -87,7 +87,7 @@ public void testWindowWidthParam() throws Exception { String[] selectedValues = new String[]{"5e421eb8bf414e03b4871195b869d894", "3512eb7c-7a58-4a95-beda-205eb0d7f163"}; NewFormResponse formResp = sessionNavigateWithSelectedValues(selections, APP, selectedValues, - "test-window-width", null, + "test-window-width", NewFormResponse.class); EvaluateXPathResponseBean evaluateXpathResponseBean = new EvaluateXpathRequest(mockDebuggerController, formResp.getSessionId(), "instance('commcaresession')/session/context/window_width", @@ -99,24 +99,6 @@ public void testWindowWidthParam() throws Exception { assertThat(evaluateXpathResponseBean.getOutput(), hasXpath("/result", equalTo("test-window-width"))); } - @Test - public void testLocaleParam() throws Exception { - String[] selections = new String[]{"0", "1", "use_selected_values"}; - String[] selectedValues = - new String[]{"5e421eb8bf414e03b4871195b869d894", "3512eb7c-7a58-4a95-beda-205eb0d7f163"}; - NewFormResponse formResp = sessionNavigateWithSelectedValues(selections, APP, selectedValues, - null, "en", - NewFormResponse.class); - EvaluateXPathResponseBean evaluateXpathResponseBean = new EvaluateXpathRequest(mockDebuggerController, - formResp.getSessionId(), "instance('commcaresession')/session/context/applanguage", - formSessionService, null) - .request() - .bean(); - - assertEquals(evaluateXpathResponseBean.getStatus(), Constants.ANSWER_RESPONSE_STATUS_POSITIVE); - assertThat(evaluateXpathResponseBean.getOutput(), hasXpath("/result", equalTo("en"))); - } - @Test public void testConfirmedSelectionsForMultiSelectCaseList() { String[] selections = new String[]{"0", "1", "use_selected_values"};