Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ private Connection getNewConnection() throws SQLException {
}

private Boolean matchesConnection(SQLiteConnection sqLiteConnection) {
return sqLiteConnection.getUrl().contains(dbPath.getDatabasePath());
return sqLiteConnection.getUrl().contains(dbPath.getDatabasePath().replace("/","\\"));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import org.commcare.data.xml.VirtualInstances;
import org.commcare.formplayer.beans.NewFormResponse;
import org.commcare.formplayer.beans.QuestionBean;
import org.commcare.formplayer.beans.SubmitResponseBean;
import org.commcare.formplayer.beans.menus.CommandListResponseBean;
import org.commcare.formplayer.beans.menus.EntityListResponse;
import org.commcare.formplayer.objects.QueryData;
Expand Down Expand Up @@ -212,6 +213,7 @@ public void testPostInEntryWithQuery_RelevantTrue() throws Exception {
);
}


/**
* This tests that the session volatiles are cleared after the sync. The 'post'
* and the 'assertion' share the same XPath case lookup expression so without clearing volatiles
Expand All @@ -238,6 +240,57 @@ public void testPostInEntryWithQuery_clearVolatiles() throws Exception {
});

selections.add("0156fa3e-093e-4136-b95c-01b13dae66c6");
NewFormResponse formResponse;
try (
MockRequestUtils.VerifiedMock ignoredPostMock = mockRequest.mockPost(true);
MockRequestUtils.VerifiedMock ignoredRestoreMock = mockRequest.mockRestore("restores/caseclaim3.xml");
) {
formResponse = sessionNavigateWithQuery(selections,
APP_PATH,
queryData,
NewFormResponse.class);
}

SubmitResponseBean submitResponse = submitForm(new HashMap<>(), formResponse.getSessionId());

CommandListResponseBean commandResponse = getNextScreenForEofNavigation(submitResponse,
CommandListResponseBean.class);
assert commandResponse.getCommands().length == 4;

if (formResponse.getNotification() != null && formResponse.getNotification().isError()) {
fail(formResponse.getNotification().getMessage());
}
}

/**
* Test that volatiles are cleared when a query session is completed
*/
@Test
public void testPostSearch_clearVolatiles() throws Exception {
ArrayList<String> selections = new ArrayList<>();
selections.add("3"); // m3
selections.add("1"); // form


QueryData queryData = new QueryData();

EntityListResponse entityListResponse;
try (MockRequestUtils.VerifiedMock ignored = mockRequest.mockQuery("query_responses/case_claim_before_form.xml")) {
entityListResponse = sessionNavigateWithQuery(selections,
APP_PATH,
queryData,
EntityListResponse.class);
}


assertThat(entityListResponse.getEntities()).anyMatch(e -> {
return e.getId().equals("0156fa3e-093e-4136-b95c-01b13dae66c6");
});

selections.add("0156fa3e-093e-4136-b95c-01b13dae66c6");



NewFormResponse formResponse;
try (
MockRequestUtils.VerifiedMock ignoredPostMock = mockRequest.mockPost(true);
Expand All @@ -253,6 +306,7 @@ public void testPostInEntryWithQuery_clearVolatiles() throws Exception {
}
}


@Test
public void testClearCachesAfterFormSubmission() throws Exception {
ArrayList<String> selections = new ArrayList<>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@
<instance id="commcaresession" src="jr://instance/session"/>
<instance id="casedb" src="jr://instance/casedb"/>
<instance id="search-input:results" src="jr://instance/search-input"/>
<bind nodeset="/data/welcome_message"
calculate="instance('search-input:results')/input/field[@name='name']"/>
<!--bind nodeset="/data/welcome_message"
calculate="instance('search-input:results')/input/field[@name='name']"/-->
<bind nodeset="/data/close_confirmation"/>
<bind nodeset="/data/close_reason" type="xsd:string" relevant="/data/close_confirmation = 'yes'"/>
<itext>
Expand Down
146 changes: 141 additions & 5 deletions src/test/resources/archives/case_claim_post_in_entry/suite.xml
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,130 @@
</template>
</field>
</detail>

<detail id="m3_case_short">
<title>
<text>
<locale id="m3.case_short.title"/>
</text>
</title>
<field>
<header>
<text>
Name
</text>
</header>
<template>
<text>
<xpath function="case_name"/>
</text>
</template>
<sort type="string" order="1" direction="ascending">
<text>
<xpath function="case_name"/>
</text>
</sort>
</field>
<action auto_launch="$next_input = '' or count(instance('casedb')/casedb/case[@case_id=$next_input]) = 0" redo_last="false">
<display>
<text>
Autofetch
</text>
</display>
<stack>
<push>
<mark/>
<command value="'search_command.m3'"/>
</push>
</stack>
</action>
</detail>

<detail id="m3_search_short">
<title>
<text>Title
</text>
</title>
<field>
<header><text>Name</text>
</header>
<template>
<text>
<xpath function="case_name"/>
</text>
</template>
<sort type="string" order="1" direction="ascending">
<text>
<xpath function="case_name"/>
</text>
</sort>
</field>
</detail>

<entry>
<form>http://openrosa.org/formdesigner/11FAC65A-F2CD-427F-A870-CF126336AAB5</form>
<post url="https://failed.commcarehq.org/a/co-carecoordination-test/phone/claim-case/">
<data key="case_id" ref="instance('commcaresession')/session/data/case_id"/>
</post>
<command id="m3-f0">
<text>post-claim form</text>
</command>
<instance id="casedb" src="jr://instance/casedb"/>
<instance id="commcaresession" src="jr://instance/session"/>
<session>
<datum id="case_id" nodeset="instance('casedb')/casedb/case[@case_type='case'][@status='open']" value="./@case_id" detail-select="m3_case_short"/>
</session>
<stack>
<create>
<command value="'m3'"/>
</create>
</stack>
</entry>

<remote-request>
<post url="https://fail.commcarehq.org/a/co-carecoordination-test/phone/claim-case/" relevant="count(instance('casedb')/casedb/case[@case_id=instance('commcaresession')/session/data/search_case_id]) = 0">
<data key="case_id" ref="instance('commcaresession')/session/data/search_case_id"/>
</post>
<command id="search_command.m1">
<display>
<text>
search cases
</text>
</display>
</command>
<instance id="casedb" src="jr://instance/casedb"/>
<instance id="commcaresession" src="jr://instance/session"/>
<instance id="results" src="jr://instance/remote/results"/>
<session>
<query url="http://www.example.com/a/domain/phone/get_case/" storage-instance="results" template="case" default_search="true" dynamic_search="false">
<title><text>
searches
</text></title>
<description>
<text>
search cases
</text>
</description>
<data key="case_type" ref="'case'"/>
<data key="_xpath_query" ref="&quot;on_list = 'yes'&quot;"/>
<prompt key="name">
<display><text>
Name
</text></display>
</prompt>
</query>
<datum id="search_case_id" nodeset="instance('results')/results/case[@case_type='case'][not(commcare_is_related_case=true())]" value="./@case_id" detail-select="m1_search_short"/>
</session>
<stack>
<push>
<rewind value="instance('commcaresession')/session/data/search_case_id"/>
</push>
</stack>
</remote-request>




<entry>
<form>http://openrosa.org/formdesigner/11FAC65A-F2CD-427F-A870-CF126336AAB5</form>
<command id="m0-f0">
Expand Down Expand Up @@ -262,7 +386,7 @@
<form>http://openrosa.org/formdesigner/5CCB1614-68B3-44C0-A166-D63AA7C1D4FB</form>
<command id="m2-f1">
<text>
<locale id="forms.m2f1"/>
m2f1
</text>
</command>
<post url="http://localhost:8000/a/test/phone/claim-case/" relevant="count(instance('casedb')/casedb/case[@case_id=instance('commcaresession')/session/data/case_id]) = 0">
Expand All @@ -278,10 +402,10 @@
</session>
</entry>
<entry>
<form>http://openrosa.org/formdesigner/5CCB1614-68B3-44C0-A166-D63AA7C1D4FB</form>
<form>http://openrosa.org/formdesigner/m2-f3</form>
<command id="m2-f2">
<text>
<locale id="forms.m2f1"/>
m2f2
</text>
</command>
<post url="http://localhost:8000/a/test/phone/claim-case/" relevant="count(instance('casedb')/casedb/case[@case_id=instance('commcaresession')/session/data/case_id]) = 0">
Expand All @@ -302,12 +426,17 @@
</text>
</assert>
</assertions>
<stack>
<create>
<command value="'m2'"/>
</create>
</stack>
</entry>
<entry>
<form>http://openrosa.org/formdesigner/m2-f3</form>
<command id="m2-f3">
<text>
<locale id="forms.m2f1"/>
m2f3
</text>
</command>
<post url="http://localhost:8000/a/test/phone/claim-case/" relevant="count(instance('casedb')/casedb/case[@case_id=instance('commcaresession')/session/data/case_id]) = 0">
Expand Down Expand Up @@ -351,6 +480,13 @@
<command id="m2-f2"/>
<command id="m2-f3"/>
</menu>


<menu id="m3">
<text>Remote Module
</text>
<command id="m3-f0"/>
</menu>
<remote-request>
<post url="http://localhost:8000/a/test/phone/claim-case/" relevant="count(instance('casedb')/casedb/case[@case_id=instance('commcaresession')/session/data/case_id]) = 0">
<data ref="instance('commcaresession')/session/data/case_id" key="case_id"/>
Expand Down Expand Up @@ -409,7 +545,7 @@
</itemset>
</prompt>
</query>
<datum id="case_id" nodeset="instance('results')/results/case[@case_type='case']" value="./@case_id" detail-select="m0_search_short" detail-confirm="m1_case_long"/>
<datum id="case_id" nodeset="instance('results')/results/case[@case_type='case']" value="./@case_id" detail-select="m0_search_short"/>
</session>
<stack>
<push>
Expand Down
13 changes: 13 additions & 0 deletions src/test/resources/query_responses/case_claim_after_form.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<results id="case">
<case case_id="0156fa3e-093e-4136-b95c-01b13dae66c7" case_type="parent" owner_id="84c246edf58bfa69e03bdecc39692e1f"
status="open">
<case_name>Kurt Maclin</case_name>
<last_modified>2017-04-21T14:25:39.125000Z</last_modified>
<date_opened>2017-04-21</date_opened>
<location_id>None</location_id>
<referrals>None</referrals>
<sample_choice_question>choice1</sample_choice_question>
<sample_number_question>123</sample_number_question>
<duplicate_id>dupe_case_id</duplicate_id>
</case>
</results>
27 changes: 27 additions & 0 deletions src/test/resources/query_responses/case_claim_before_form.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<results id="case">
<case case_id="0156fa3e-093e-4136-b95c-01b13dae66c6" case_type="case" owner_id="84c246edf58bfa69e03bdecc39692e1f"
status="open">
<case_name>Burt Maclin</case_name>
<last_modified>2017-04-21T14:25:39.125000Z</last_modified>
<date_opened>2017-04-21</date_opened>
<location_id>None</location_id>
<referrals>None</referrals>
<sample_choice_question>choice1</sample_choice_question>
<sample_number_question>123</sample_number_question>
<duplicate_id>dupe_case_id</duplicate_id>
<on_list>yes</on_list>
</case>

<case case_id="0156fa3e-093e-4136-b95c-01b13dae66c7" case_type="parent" owner_id="84c246edf58bfa69e03bdecc39692e1f"
status="open">
<case_name>Kurt Maclin</case_name>
<last_modified>2017-04-21T14:25:39.125000Z</last_modified>
<date_opened>2017-04-21</date_opened>
<location_id>None</location_id>
<referrals>None</referrals>
<sample_choice_question>choice1</sample_choice_question>
<sample_number_question>123</sample_number_question>
<duplicate_id>dupe_case_id</duplicate_id>
<on_list>yes</on_list>
</case>
</results>