diff --git a/collect_app/src/androidTest/java/org/odk/collect/android/feature/formentry/EntityFormTest.kt b/collect_app/src/androidTest/java/org/odk/collect/android/feature/formentry/EntityFormTest.kt index 0c4fe141e66..fd7b1d07abb 100644 --- a/collect_app/src/androidTest/java/org/odk/collect/android/feature/formentry/EntityFormTest.kt +++ b/collect_app/src/androidTest/java/org/odk/collect/android/feature/formentry/EntityFormTest.kt @@ -23,6 +23,22 @@ class EntityFormTest { val ruleChain: RuleChain = TestRuleChain.chain(testDependencies) .around(rule) + @Test + fun fillingEntityRegistrationForm_createsEntityWithValuesTreatedAsOpaqueStrings() { + testDependencies.server.addForm("entities-with-dates-registration.xml") + testDependencies.server.addForm("entities-with-dates-follow-up.xml") + + rule.withMatchExactlyProject(testDependencies.server.url) + .startBlankForm("Entities With Dates Registration") + .swipeToEndScreen() + .clickFinalize() + + .startBlankForm("Entities With Dates Follow Up") + // .assertText("2024-11-15") + .swipeToNextQuestion("Select date") + .assertText("2024-11-15") + } + @Test fun fillingEntityRegistrationForm_createsEntityForFollowUpForms() { testDependencies.server.addForm("one-question-entity-registration.xml") diff --git a/entities/src/main/java/org/odk/collect/entities/javarosa/finalization/EntityFormFinalizationProcessor.java b/entities/src/main/java/org/odk/collect/entities/javarosa/finalization/EntityFormFinalizationProcessor.java index ab175e09438..e3ce7ad1c16 100644 --- a/entities/src/main/java/org/odk/collect/entities/javarosa/finalization/EntityFormFinalizationProcessor.java +++ b/entities/src/main/java/org/odk/collect/entities/javarosa/finalization/EntityFormFinalizationProcessor.java @@ -52,7 +52,7 @@ private FormEntity createEntity(TreeElement entityElement, String dataset, List< IAnswerData answerData = mainInstance.resolveReference(reference).getValue(); if (answerData != null) { - return new Pair<>(saveTo.getSecond(), answerData.getDisplayText()); + return new Pair<>(saveTo.getSecond(), answerData.uncast().getString()); } else { return new Pair<>(saveTo.getSecond(), ""); } diff --git a/entities/src/main/java/org/odk/collect/entities/javarosa/spec/EntityFormParser.java b/entities/src/main/java/org/odk/collect/entities/javarosa/spec/EntityFormParser.java index cc78b6ab620..07193cf1567 100644 --- a/entities/src/main/java/org/odk/collect/entities/javarosa/spec/EntityFormParser.java +++ b/entities/src/main/java/org/odk/collect/entities/javarosa/spec/EntityFormParser.java @@ -32,7 +32,7 @@ public static String parseLabel(TreeElement entity) { IAnswerData labelValue = labelElement.getValue(); if (labelValue != null) { - return String.valueOf(labelValue.getValue()); + return labelValue.uncast().getString(); } else { return null; } diff --git a/test-forms/src/main/resources/forms/entities-with-dates-follow-up.xml b/test-forms/src/main/resources/forms/entities-with-dates-follow-up.xml new file mode 100644 index 00000000000..7765cf3bbcc --- /dev/null +++ b/test-forms/src/main/resources/forms/entities-with-dates-follow-up.xml @@ -0,0 +1,39 @@ + + + + Entities With Dates Follow Up + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test-forms/src/main/resources/forms/entities-with-dates-registration.xml b/test-forms/src/main/resources/forms/entities-with-dates-registration.xml new file mode 100644 index 00000000000..9b8c8d7c524 --- /dev/null +++ b/test-forms/src/main/resources/forms/entities-with-dates-registration.xml @@ -0,0 +1,44 @@ + + + + Entities With Dates Registration + + + + + Select date + + + + + + 2024-11-15 + + + + + + + + + + + + + + + + + +