[MediaWiki-commits] [Gerrit] apps...wikipedia[master]: Retrofit LoginTask

2016-10-03 Thread jenkins-bot (Code Review)
jenkins-bot has submitted this change and it was merged.

Change subject: Retrofit LoginTask
..


Retrofit LoginTask

It seems easier to chain request implemented using Retrofit than the traditional
java-mwapi requests. In the future we want to chain yet another request, in
addition to the two we have already. One to get the login token.
The 2nd one for the actual login request.

This patch replaces the LoginTask with a Retrofit2 LoginClient.
The test changes from LoginTaskTest to LoginClientTest.

Bug: T132834
Change-Id: I6d9818c92bfd834adf966a6c5808b7c0a236235d
---
R app/src/androidTest/java/org/wikipedia/test/LoginClientTest.java
M app/src/main/java/org/wikipedia/editing/EditSectionActivity.java
M app/src/main/java/org/wikipedia/login/LoginActivity.java
A app/src/main/java/org/wikipedia/login/LoginClient.java
D app/src/main/java/org/wikipedia/login/LoginTask.java
M app/src/main/java/org/wikipedia/util/ThrowableUtil.java
6 files changed, 316 insertions(+), 161 deletions(-)

Approvals:
  Mholloway: Looks good to me, but someone else must approve
  jenkins-bot: Verified
  Niedzielski: Looks good to me, approved



diff --git a/app/src/androidTest/java/org/wikipedia/test/LoginTaskTest.java 
b/app/src/androidTest/java/org/wikipedia/test/LoginClientTest.java
similarity index 62%
rename from app/src/androidTest/java/org/wikipedia/test/LoginTaskTest.java
rename to app/src/androidTest/java/org/wikipedia/test/LoginClientTest.java
index 32d3197..e5222fe 100644
--- a/app/src/androidTest/java/org/wikipedia/test/LoginTaskTest.java
+++ b/app/src/androidTest/java/org/wikipedia/test/LoginClientTest.java
@@ -1,47 +1,60 @@
 package org.wikipedia.test;
 
+import org.wikipedia.Site;
+import org.wikipedia.WikipediaApp;
+import org.wikipedia.editing.EditTokenStorage;
+import org.wikipedia.login.LoginClient;
+import org.wikipedia.login.LoginResult;
+import org.wikipedia.login.User;
+import org.wikipedia.testlib.TestLatch;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import android.support.annotation.NonNull;
 import android.support.annotation.StringRes;
 import android.support.test.InstrumentationRegistry;
 import android.support.test.filters.SmallTest;
 import android.support.test.runner.AndroidJUnit4;
 
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mediawiki.api.json.Api;
-import org.wikipedia.Site;
-import org.wikipedia.WikipediaApp;
-import org.wikipedia.editing.EditTokenStorage;
-import org.wikipedia.login.LoginResult;
-import org.wikipedia.login.LoginTask;
-import org.wikipedia.testlib.TestLatch;
-
+import static android.support.test.InstrumentationRegistry.getInstrumentation;
 import static org.hamcrest.CoreMatchers.equalTo;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
-import static android.support.test.InstrumentationRegistry.getInstrumentation;
 
 @SmallTest
 @RunWith(AndroidJUnit4.class)
-public class LoginTaskTest {
+public class LoginClientTest {
 private static final String TEST_WIKI = "test.wikipedia.org";
 private static final String USERNAME = getString(R.string.test_username);
 private static final String PASSWORD = getString(R.string.test_password);
 private final TestLatch completionLatch = new TestLatch();
+
+@Before
+public void setUp() {
+User.disableStorage(); // don't change the app login from this test
+}
 
 @Test
 public void testLogin() {
 InstrumentationRegistry.getInstrumentation().runOnMainSync(new 
Runnable() {
 @Override
 public void run() {
-new LoginTask(new Api(TEST_WIKI), USERNAME, PASSWORD) {
-@Override
-public void onFinish(LoginResult result) {
-super.onFinish(result);
-completionLatch.countDown();
-assertThat(result.getStatus(), equalTo("PASS"));
-
WikipediaApp.getInstance().getEditTokenStorage().get(new Site(TEST_WIKI), 
callback);
-}
-}.execute();
+new LoginClient().request(new Site(TEST_WIKI), USERNAME, 
PASSWORD,
+new LoginClient.LoginCallback() {
+@Override
+public void success(@NonNull LoginResult result) {
+completionLatch.countDown();
+assertThat(result.getStatus(), 
equalTo("PASS"));
+
WikipediaApp.getInstance().getEditTokenStorage().get(new Site(TEST_WIKI), 
callback);
+}
+
+@Override
+public void error(@NonNull Throwable caught) {
+assertThat("login failed!", false);
+}
+});
  

[MediaWiki-commits] [Gerrit] apps...wikipedia[master]: Retrofit LoginTask

2016-09-16 Thread BearND (Code Review)
BearND has uploaded a new change for review.

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

Change subject: Retrofit LoginTask
..

Retrofit LoginTask

It seems easier to chain request implemented using Retrofit than the traditional
java-mwapi requests. In the future we want to chain yet another request, in
addition to the two we have already. One to get the login token.
The 2nd one for the actual login request.

This patch replaces the LoginTask with a Retrofit2 LoginClient.
The test changes from LoginTaskTest to LoginClientTest.

Change-Id: I6d9818c92bfd834adf966a6c5808b7c0a236235d
---
R app/src/androidTest/java/org/wikipedia/test/LoginClientTest.java
M app/src/main/java/org/wikipedia/editing/EditSectionActivity.java
M app/src/main/java/org/wikipedia/login/LoginActivity.java
A app/src/main/java/org/wikipedia/login/LoginClient.java
M app/src/main/java/org/wikipedia/util/ThrowableUtil.java
5 files changed, 316 insertions(+), 77 deletions(-)


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

diff --git a/app/src/androidTest/java/org/wikipedia/test/LoginTaskTest.java 
b/app/src/androidTest/java/org/wikipedia/test/LoginClientTest.java
similarity index 62%
rename from app/src/androidTest/java/org/wikipedia/test/LoginTaskTest.java
rename to app/src/androidTest/java/org/wikipedia/test/LoginClientTest.java
index 32d3197..f130b2b 100644
--- a/app/src/androidTest/java/org/wikipedia/test/LoginTaskTest.java
+++ b/app/src/androidTest/java/org/wikipedia/test/LoginClientTest.java
@@ -1,47 +1,60 @@
 package org.wikipedia.test;
 
+import org.wikipedia.Site;
+import org.wikipedia.WikipediaApp;
+import org.wikipedia.editing.EditTokenStorage;
+import org.wikipedia.login.LoginClient;
+import org.wikipedia.login.LoginResult;
+import org.wikipedia.login.User;
+import org.wikipedia.testlib.TestLatch;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import android.support.annotation.NonNull;
 import android.support.annotation.StringRes;
 import android.support.test.InstrumentationRegistry;
 import android.support.test.filters.SmallTest;
 import android.support.test.runner.AndroidJUnit4;
 
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mediawiki.api.json.Api;
-import org.wikipedia.Site;
-import org.wikipedia.WikipediaApp;
-import org.wikipedia.editing.EditTokenStorage;
-import org.wikipedia.login.LoginResult;
-import org.wikipedia.login.LoginTask;
-import org.wikipedia.testlib.TestLatch;
-
+import static android.support.test.InstrumentationRegistry.getInstrumentation;
 import static org.hamcrest.CoreMatchers.equalTo;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
-import static android.support.test.InstrumentationRegistry.getInstrumentation;
 
 @SmallTest
 @RunWith(AndroidJUnit4.class)
-public class LoginTaskTest {
+public class LoginClientTest {
 private static final String TEST_WIKI = "test.wikipedia.org";
 private static final String USERNAME = getString(R.string.test_username);
 private static final String PASSWORD = getString(R.string.test_password);
 private final TestLatch completionLatch = new TestLatch();
+
+@Before
+public void setUp() throws Exception {
+User.disableStorage(); // don't change the app login from this test
+}
 
 @Test
 public void testLogin() {
 InstrumentationRegistry.getInstrumentation().runOnMainSync(new 
Runnable() {
 @Override
 public void run() {
-new LoginTask(new Api(TEST_WIKI), USERNAME, PASSWORD) {
-@Override
-public void onFinish(LoginResult result) {
-super.onFinish(result);
-completionLatch.countDown();
-assertThat(result.getStatus(), equalTo("PASS"));
-
WikipediaApp.getInstance().getEditTokenStorage().get(new Site(TEST_WIKI), 
callback);
-}
-}.execute();
+new LoginClient().request(new Site(TEST_WIKI), USERNAME, 
PASSWORD,
+new LoginClient.LoginCallback() {
+@Override
+public void success(@NonNull LoginResult result) {
+completionLatch.countDown();
+assertThat(result.getStatus(), 
equalTo("PASS"));
+
WikipediaApp.getInstance().getEditTokenStorage().get(new Site(TEST_WIKI), 
callback);
+}
+
+@Override
+public void error(@NonNull Throwable caught) {
+assertThat("login failed!", false);
+}
+});
 }
 });
 completionLatch.await();
diff