Mholloway has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/355566 )
Change subject: Fix: Unbreak empty search results set handling
......................................................................
Fix: Unbreak empty search results set handling
Bug: T137116
Bug: T152402
Change-Id: Ib7d2266ad1bf858f05b5e83f915ba8e11fd529e8
---
M app/src/main/java/org/wikipedia/search/FullTextSearchClient.java
M app/src/test/java/org/wikipedia/search/FullTextSearchClientTest.java
A app/src/test/res/raw/full_text_search_results_empty.json
3 files changed, 31 insertions(+), 3 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia
refs/changes/66/355566/1
diff --git a/app/src/main/java/org/wikipedia/search/FullTextSearchClient.java
b/app/src/main/java/org/wikipedia/search/FullTextSearchClient.java
index 47b507c..d154977 100644
--- a/app/src/main/java/org/wikipedia/search/FullTextSearchClient.java
+++ b/app/src/main/java/org/wikipedia/search/FullTextSearchClient.java
@@ -11,8 +11,6 @@
import org.wikipedia.dataclient.retrofit.MwCachedService;
import org.wikipedia.dataclient.retrofit.WikiCachedService;
-import java.io.IOException;
-
import retrofit2.Call;
import retrofit2.Response;
import retrofit2.http.GET;
@@ -53,7 +51,19 @@
// noinspection ConstantConditions
cb.failure(call, new
MwException(response.body().getError()));
} else {
- cb.failure(call, new IOException("An unknown error
occurred."));
+ // A 'morelike' search query with no results will just
return an API warning:
+ //
+ // {
+ // "batchcomplete": true,
+ // "warnings": {
+ // "search": {
+ // "warnings": "No valid titles provided to
'morelike'."
+ // }
+ // }
+ // }
+ //
+ // Just return an empty SearchResults() in this case.
+ cb.success(call, new SearchResults());
}
}
diff --git
a/app/src/test/java/org/wikipedia/search/FullTextSearchClientTest.java
b/app/src/test/java/org/wikipedia/search/FullTextSearchClientTest.java
index 6bd3e59..e31d26b 100644
--- a/app/src/test/java/org/wikipedia/search/FullTextSearchClientTest.java
+++ b/app/src/test/java/org/wikipedia/search/FullTextSearchClientTest.java
@@ -59,6 +59,16 @@
assertCallbackSuccess(call, cb);
}
+ @Test public void testRequestSuccessNoResults() throws Throwable {
+ enqueueFromFile("full_text_search_results_empty.json");
+
+ FullTextSearchClient.Callback cb =
mock(FullTextSearchClient.Callback.class);
+ Call<MwQueryResponse<MwQueryResponse.Pages>> call = request(null, cb);
+
+ server().takeRequest();
+ assertCallbackSuccess(call, cb);
+ }
+
@Test public void testRequestResponseApiError() throws Throwable {
enqueueFromFile("api_error.json");
diff --git a/app/src/test/res/raw/full_text_search_results_empty.json
b/app/src/test/res/raw/full_text_search_results_empty.json
new file mode 100644
index 0000000..f6b209a
--- /dev/null
+++ b/app/src/test/res/raw/full_text_search_results_empty.json
@@ -0,0 +1,8 @@
+{
+ "batchcomplete": true,
+ "warnings": {
+ "search": {
+ "warnings": "No valid titles provided to 'morelike'."
+ }
+ }
+}
\ No newline at end of file
--
To view, visit https://gerrit.wikimedia.org/r/355566
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib7d2266ad1bf858f05b5e83f915ba8e11fd529e8
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Mholloway <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits