[MediaWiki-commits] [Gerrit] Add SuggestionsTask - change (apps...wikipedia)

2014-11-19 Thread Dbrant (Code Review)
Dbrant has submitted this change and it was merged.

Change subject: Add SuggestionsTask
..


Add SuggestionsTask

and refactor the getter for wikidataDescriptions
Also only ask for descriptions we don't already have.

(Setting primary language to English for the test. Long
term we should pass in the language and site.)

Change-Id: I3a05e9d66519a8da4d7b677282fea15b0f96573b
---
A wikipedia-it/src/main/java/org/wikipedia/test/SuggestionsTaskTests.java
A 
wikipedia-it/src/main/java/org/wikipedia/test/WikidataDescriptionFeederTests.java
A wikipedia/src/main/java/org/wikipedia/page/SuggestionsTask.java
M wikipedia/src/main/java/org/wikipedia/search/FullSearchArticlesTask.java
M wikipedia/src/main/java/org/wikipedia/search/FullSearchFragment.java
M wikipedia/src/main/java/org/wikipedia/wikidata/WikidataCache.java
A wikipedia/src/main/java/org/wikipedia/wikidata/WikidataDescriptionFeeder.java
7 files changed, 238 insertions(+), 44 deletions(-)

Approvals:
  Dbrant: Looks good to me, approved



diff --git 
a/wikipedia-it/src/main/java/org/wikipedia/test/SuggestionsTaskTests.java 
b/wikipedia-it/src/main/java/org/wikipedia/test/SuggestionsTaskTests.java
new file mode 100644
index 000..d4ac13b
--- /dev/null
+++ b/wikipedia-it/src/main/java/org/wikipedia/test/SuggestionsTaskTests.java
@@ -0,0 +1,52 @@
+package org.wikipedia.test;
+
+import org.wikipedia.Site;
+import org.wikipedia.WikipediaApp;
+import org.wikipedia.page.SuggestionsTask;
+import org.wikipedia.search.FullSearchResult;
+import android.content.Intent;
+import android.test.ActivityUnitTestCase;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Tests for getting suggestions for further reading.
+ */
+public class SuggestionsTaskTests extends 
ActivityUnitTestCaseTestDummyActivity {
+private static final int TASK_COMPLETION_TIMEOUT = 20;
+private static final int BATCH_SIZE = 3;
+private static final Site SITE = new Site(test.wikipedia.org);
+
+public SuggestionsTaskTests() {
+super(TestDummyActivity.class);
+}
+
+public void testFullTextSearchWithResults() throws Throwable {
+startActivity(new Intent(), null, null);
+final CountDownLatch completionLatch = new CountDownLatch(1);
+runTestOnUiThread(new Runnable() {
+@Override
+public void run() {
+final WikipediaApp app = (WikipediaApp) 
getInstrumentation().getTargetContext().getApplicationContext();
+new SuggestionsTask(app.getAPIForSite(SITE), SITE, test) {
+@Override
+public void onCatch(Throwable caught) {
+super.onCatch(caught);
+}
+
+@Override
+public void onFinish(FullSearchResults results) {
+assertNotNull(results);
+assertEquals(results.getResults().size(), BATCH_SIZE);
+
+for (FullSearchResult result : results.getResults()) {
+
assertFalse(result.getTitle().getPrefixedText().equals(Test));
+}
+completionLatch.countDown();
+}
+}.execute();
+}
+});
+assertTrue(completionLatch.await(TASK_COMPLETION_TIMEOUT, 
TimeUnit.MILLISECONDS));
+}
+}
diff --git 
a/wikipedia-it/src/main/java/org/wikipedia/test/WikidataDescriptionFeederTests.java
 
b/wikipedia-it/src/main/java/org/wikipedia/test/WikidataDescriptionFeederTests.java
new file mode 100644
index 000..c58c7a9
--- /dev/null
+++ 
b/wikipedia-it/src/main/java/org/wikipedia/test/WikidataDescriptionFeederTests.java
@@ -0,0 +1,95 @@
+package org.wikipedia.test;
+
+import org.wikipedia.PageTitle;
+import org.wikipedia.Site;
+import org.wikipedia.WikipediaApp;
+import org.wikipedia.search.FullSearchResult;
+import org.wikipedia.wikidata.WikidataCache;
+import org.wikipedia.wikidata.WikidataDescriptionFeeder;
+import android.content.Intent;
+import android.test.ActivityUnitTestCase;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Map;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Tests retrieval of Wikidata descriptions. Talks to wikidata.org.
+ */
+public final class WikidataDescriptionFeederTests extends 
ActivityUnitTestCaseTestDummyActivity {
+private static final int TASK_COMPLETION_TIMEOUT = 20;
+private static final Site SITE = new Site(test.wikipedia.org);
+private String originalLanguage;
+
+public WikidataDescriptionFeederTests() {
+super(TestDummyActivity.class);
+}
+
+@Override
+public void setUp() throws Exception {
+super.setUp();
+startActivity(new Intent(), null, null);
+}
+
+@Override
+public void tearDown() throws Exception {
+

[MediaWiki-commits] [Gerrit] Add SuggestionsTask - change (apps...wikipedia)

2014-11-18 Thread BearND (Code Review)
BearND has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/174365

Change subject: Add SuggestionsTask
..

Add SuggestionsTask

and refactor the getter for wikidataDescriptions

Change-Id: I3a05e9d66519a8da4d7b677282fea15b0f96573b
---
A wikipedia-it/src/main/java/org/wikipedia/test/SuggestionsTaskTests.java
A 
wikipedia-it/src/main/java/org/wikipedia/test/WikidataDescriptionFeederTests.java
A wikipedia/src/main/java/org/wikipedia/page/SuggestionsTask.java
M wikipedia/src/main/java/org/wikipedia/search/FullSearchFragment.java
A wikipedia/src/main/java/org/wikipedia/wikidata/WikidataDescriptionFeeder.java
5 files changed, 207 insertions(+), 41 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia 
refs/changes/65/174365/1

diff --git 
a/wikipedia-it/src/main/java/org/wikipedia/test/SuggestionsTaskTests.java 
b/wikipedia-it/src/main/java/org/wikipedia/test/SuggestionsTaskTests.java
new file mode 100644
index 000..d4ac13b
--- /dev/null
+++ b/wikipedia-it/src/main/java/org/wikipedia/test/SuggestionsTaskTests.java
@@ -0,0 +1,52 @@
+package org.wikipedia.test;
+
+import org.wikipedia.Site;
+import org.wikipedia.WikipediaApp;
+import org.wikipedia.page.SuggestionsTask;
+import org.wikipedia.search.FullSearchResult;
+import android.content.Intent;
+import android.test.ActivityUnitTestCase;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Tests for getting suggestions for further reading.
+ */
+public class SuggestionsTaskTests extends 
ActivityUnitTestCaseTestDummyActivity {
+private static final int TASK_COMPLETION_TIMEOUT = 20;
+private static final int BATCH_SIZE = 3;
+private static final Site SITE = new Site(test.wikipedia.org);
+
+public SuggestionsTaskTests() {
+super(TestDummyActivity.class);
+}
+
+public void testFullTextSearchWithResults() throws Throwable {
+startActivity(new Intent(), null, null);
+final CountDownLatch completionLatch = new CountDownLatch(1);
+runTestOnUiThread(new Runnable() {
+@Override
+public void run() {
+final WikipediaApp app = (WikipediaApp) 
getInstrumentation().getTargetContext().getApplicationContext();
+new SuggestionsTask(app.getAPIForSite(SITE), SITE, test) {
+@Override
+public void onCatch(Throwable caught) {
+super.onCatch(caught);
+}
+
+@Override
+public void onFinish(FullSearchResults results) {
+assertNotNull(results);
+assertEquals(results.getResults().size(), BATCH_SIZE);
+
+for (FullSearchResult result : results.getResults()) {
+
assertFalse(result.getTitle().getPrefixedText().equals(Test));
+}
+completionLatch.countDown();
+}
+}.execute();
+}
+});
+assertTrue(completionLatch.await(TASK_COMPLETION_TIMEOUT, 
TimeUnit.MILLISECONDS));
+}
+}
diff --git 
a/wikipedia-it/src/main/java/org/wikipedia/test/WikidataDescriptionFeederTests.java
 
b/wikipedia-it/src/main/java/org/wikipedia/test/WikidataDescriptionFeederTests.java
new file mode 100644
index 000..fdf8033
--- /dev/null
+++ 
b/wikipedia-it/src/main/java/org/wikipedia/test/WikidataDescriptionFeederTests.java
@@ -0,0 +1,55 @@
+package org.wikipedia.test;
+
+import org.wikipedia.Site;
+import org.wikipedia.WikipediaApp;
+import org.wikipedia.wikidata.WikidataDescriptionsTask;
+import org.wikipedia.wikidata.WikidataSite;
+import android.content.Intent;
+import android.test.ActivityUnitTestCase;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Map;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Tests retrieval of Wikidata descriptions. Talks to wikidata.org.
+ */
+public class WikidataDescriptionFeederTests extends 
ActivityUnitTestCaseTestDummyActivity {
+private static final int TASK_COMPLETION_TIMEOUT = 20;
+private static final Site SITE = new WikidataSite();
+
+public WikidataDescriptionFeederTests() {
+super(TestDummyActivity.class);
+}
+
+public void testOneID() throws Throwable {
+getWikidataDescriptions(new String[] {Q42});
+}
+
+public void testThreeIDs() throws Throwable {
+getWikidataDescriptions(new String[] {Q1, Q2, Q3});
+}
+
+public void getWikidataDescriptions(final String[] ids) throws Throwable {
+final ArrayListString idList = new 
ArrayListString(Arrays.asList(ids));
+startActivity(new Intent(), null, null);
+final CountDownLatch completionLatch = new CountDownLatch(1);
+runTestOnUiThread(new Runnable() {
+