jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/356292 )
Change subject: Hygiene: FullSearchArticlesTask retrofit follow-up
......................................................................
Hygiene: FullSearchArticlesTask retrofit follow-up
* Delete FullSearchArticlesTask[Test]
* Update a comment
Change-Id: I87e10c71278c4a16e7b6262ca7b2e75e5cbd495d
---
D app/src/androidTest/java/org/wikipedia/search/FullSearchArticlesTaskTest.java
D app/src/main/java/org/wikipedia/search/FullSearchArticlesTask.java
M app/src/main/java/org/wikipedia/search/SearchResults.java
3 files changed, 1 insertion(+), 243 deletions(-)
Approvals:
Dbrant: Looks good to me, approved
jenkins-bot: Verified
diff --git
a/app/src/androidTest/java/org/wikipedia/search/FullSearchArticlesTaskTest.java
b/app/src/androidTest/java/org/wikipedia/search/FullSearchArticlesTaskTest.java
deleted file mode 100644
index 4712f27..0000000
---
a/app/src/androidTest/java/org/wikipedia/search/FullSearchArticlesTaskTest.java
+++ /dev/null
@@ -1,94 +0,0 @@
-package org.wikipedia.search;
-
-
-import org.junit.Test;
-import org.wikipedia.WikipediaApp;
-import org.wikipedia.dataclient.WikiSite;
-import org.wikipedia.testlib.TestLatch;
-
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.is;
-import static org.hamcrest.Matchers.notNullValue;
-import static org.hamcrest.Matchers.nullValue;
-import static org.wikipedia.test.TestUtil.runOnMainSync;
-
-/**
- * Tests for full text search.
- * TODO: Remove.
- */
-public class FullSearchArticlesTaskTest {
- private static final int BATCH_SIZE = 12;
- private static final WikiSite WIKI = WikiSite.forLanguageCode("en");
-
- /** Have to use enwiki since I don't think there are any Wikidata
descriptions for testwiki. */
- @Test public void testFullTextSearchWithResults() throws Throwable {
- final TestLatch latch = new TestLatch();
- runOnMainSync(new Runnable() {
- @Override
- public void run() {
- WikipediaApp app = WikipediaApp.getInstance();
- new FullSearchArticlesTask(app.getAPIForSite(WIKI), WIKI,
"test", BATCH_SIZE, null, false) {
- @Override
- public void onFinish(SearchResults results) {
- assertThat(results, notNullValue());
- assertThat(results.getResults().size(),
is(BATCH_SIZE));
- assertThat(results.getSuggestion(), is(""));
- assertThat(results.getContinuation(), notNullValue());
-
- for (SearchResult result : results.getResults()) {
- if
(result.getPageTitle().getPrefixedText().equals("Test")) {
-
assertThat(result.getPageTitle().getDescription(), is("Wikipedia disambiguation
page"));
- }
- }
- latch.countDown();
- }
- }.execute();
- }
- });
- latch.await();
- }
-
- // TODO: move to TitleSearchTest once we have it
-
-// @Test public void testFullTextSearchWithSuggestion() throws Throwable {
-// startActivity(new Intent(), null, null);
-// final CountDownLatch completionLatch = new CountDownLatch(1);
-// runTestOnUiThread(new Runnable() {
-// @Override
-// public void run() {
-// WikipediaApp app = WikipediaApp.getInstance();
-// new FullSearchArticlesTask(app.getAPIForSite(WIKI), WIKI,
"teest", BATCH_SIZE, null) { // small typo should produce a suggestion
-// @Override
-// public void onFinish(SearchResults results) {
-// assertNotNull(results);
-// assertEquals(results.getSuggestion(), "test");
-// completionLatch.countDown();
-// }
-// }.execute();
-// }
-// });
-// assertTrue(completionLatch.await(TASK_COMPLETION_TIMEOUT,
TimeUnit.MILLISECONDS));
-// }
-
- @Test public void testEmptyResults() throws Throwable {
- final TestLatch latch = new TestLatch();
- runOnMainSync(new Runnable() {
- @Override
- public void run() {
- WikipediaApp app = WikipediaApp.getInstance();
- new FullSearchArticlesTask(app.getAPIForSite(WIKI), WIKI,
"jkfsdfpefdsfwoirpoik", BATCH_SIZE, null, false) { // total gibberish, should
not exist on enwiki
- @Override
- public void onFinish(SearchResults results) {
- assertThat(results, notNullValue());
- assertThat(results.getResults().size(), is(0));
- assertThat(results.getSuggestion(), is(""));
- assertThat(results.getContinuation(), nullValue());
- latch.countDown();
- }
- }.execute();
- }
- });
- latch.await();
- }
-}
-
diff --git a/app/src/main/java/org/wikipedia/search/FullSearchArticlesTask.java
b/app/src/main/java/org/wikipedia/search/FullSearchArticlesTask.java
deleted file mode 100644
index 27c394d..0000000
--- a/app/src/main/java/org/wikipedia/search/FullSearchArticlesTask.java
+++ /dev/null
@@ -1,148 +0,0 @@
-package org.wikipedia.search;
-
-import com.google.gson.reflect.TypeToken;
-
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-import org.mediawiki.api.json.Api;
-import org.mediawiki.api.json.ApiException;
-import org.mediawiki.api.json.ApiResult;
-import org.mediawiki.api.json.RequestBuilder;
-import org.wikipedia.Constants;
-import org.wikipedia.dataclient.ApiTask;
-import org.wikipedia.dataclient.WikiSite;
-import org.wikipedia.json.GsonUnmarshaller;
-import org.wikipedia.page.PageProperties;
-import org.wikipedia.page.PageTitle;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-// TODO: Delete this and its tests after SuggestionsTask is converted to a
Retrofit client
-@Deprecated public class FullSearchArticlesTask extends ApiTask<SearchResults>
{
- private final WikiSite wiki;
- private final String searchTerm;
- private final int maxResults;
- private final Map<String, String> continuation;
- private final boolean getMoreLike;
-
- public FullSearchArticlesTask(Api api, WikiSite wiki, String searchTerm,
int maxResults,
- Map<String, String> continuation,
- boolean getMoreLike) {
- super(api);
- this.wiki = wiki;
- this.searchTerm = searchTerm;
- this.maxResults = maxResults;
- this.continuation = continuation;
- this.getMoreLike = getMoreLike;
- }
-
- @Override
- public RequestBuilder buildRequest(Api api) {
- final String maxResultsString = Integer.toString(maxResults);
- final RequestBuilder req = api.action("query")
- .param("prop", "pageterms|pageimages|pageprops")
- .param("ppprop", "mainpage|disambiguation")
- .param("wbptterms", "description") // only interested in
Wikidata description
- .param("generator", "search")
- .param("gsrsearch", getMoreLike ? ("morelike:" + searchTerm) :
searchTerm)
- .param("gsrnamespace", "0")
- .param("gsrwhat", "text")
- .param("gsrinfo", "")
- .param("gsrprop", "redirecttitle")
- .param("gsrlimit", maxResultsString)
- .param("piprop", "thumbnail") // for thumbnail URLs
- .param("pilicense", "any")
- .param("pithumbsize",
Integer.toString(Constants.PREFERRED_THUMB_SIZE))
- .param("pilimit", maxResultsString);
- if (continuation != null) {
- req.param("continue", continuation.get("continue"));
- String gsrOffset = continuation.get("gsroffset");
- if (Integer.parseInt(gsrOffset) > 0) {
- req.param("gsroffset", gsrOffset);
- }
- }
- return req;
- }
-
- @Override
- public SearchResults processResult(final ApiResult result) throws
Throwable {
- JSONObject data;
- try {
- data = result.asObject();
- } catch (ApiException e) {
- if (e.getCause() instanceof JSONException) {
- // the only reason for a JSONException is if the response is
an empty array.
- return new SearchResults();
- } else {
- throw e;
- }
- }
-
- Map<String, String> nextContinueOffset = null;
- final JSONObject continueData = data.optJSONObject("continue");
- if (continueData != null) {
- nextContinueOffset = GsonUnmarshaller.unmarshal(new
TypeToken<Map<String, String>>(){},
- continueData.toString());
- }
-
- JSONObject queryResult = data.optJSONObject("query");
- if (queryResult == null) {
- return new SearchResults();
- }
-
- JSONObject pages = queryResult.optJSONObject("pages");
- if (pages == null) {
- return new SearchResults();
- }
-
- // The search results arrive unordered, but they do have an "index"
property, which we'll
- // use to sort the results ourselves.
- // First, put all the page objects into an array
- JSONObject[] pageArray = new JSONObject[pages.length()];
- int pageIndex = 0;
- Iterator<String> pageIter = pages.keys();
- while (pageIter.hasNext()) {
- pageArray[pageIndex++] = (JSONObject)pages.get(pageIter.next());
- }
- // now sort the array based on the "index" property
- Arrays.sort(pageArray, new Comparator<JSONObject>() {
- @Override
- public int compare(JSONObject lhs, JSONObject rhs) {
- int ret = 0;
- try {
- ret = ((Integer)
lhs.getInt("index")).compareTo(rhs.getInt("index"));
- } catch (JSONException e) {
- //doesn't matter
- }
- return ret;
- }
- });
- // and create our list of results from the now-sorted array
- List<SearchResult> resultList = new ArrayList<>();
- for (JSONObject item : pageArray) {
- String thumbUrl = null;
- if (item.has("thumbnail")) {
- thumbUrl = item.getJSONObject("thumbnail").optString("source",
null);
- }
- String description = null;
- if (item.has("terms")) {
- JSONArray arr =
item.getJSONObject("terms").optJSONArray("description");
- if (arr != null && arr.length() > 0) {
- description = arr.getString(0);
- }
- }
- PageProperties properties = null;
- if (item.has("pageprops")) {
- properties = new
PageProperties(item.getJSONObject("pageprops"));
- }
- resultList.add(new SearchResult(new
PageTitle(item.getString("title"), wiki, thumbUrl, description, properties)));
- }
- return new SearchResults(resultList, nextContinueOffset, null);
- }
-}
diff --git a/app/src/main/java/org/wikipedia/search/SearchResults.java
b/app/src/main/java/org/wikipedia/search/SearchResults.java
index 8cee887..5c8c8be 100644
--- a/app/src/main/java/org/wikipedia/search/SearchResults.java
+++ b/app/src/main/java/org/wikipedia/search/SearchResults.java
@@ -33,7 +33,7 @@
}
/**
- * Constructor for a list of Retrofit results from BecauseYouReadTask.
+ * Constructor for a list of Retrofit results from FullTextSearchClient.
*/
public SearchResults(@NonNull List<MwQueryPage> pages, @NonNull WikiSite
wiki,
@Nullable Map<String, String> continuation, @Nullable
String suggestion) {
--
To view, visit https://gerrit.wikimedia.org/r/356292
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I87e10c71278c4a16e7b6262ca7b2e75e5cbd495d
Gerrit-PatchSet: 2
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Mholloway <[email protected]>
Gerrit-Reviewer: Dbrant <[email protected]>
Gerrit-Reviewer: Niedzielski <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits