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

Reply via email to