[MediaWiki-commits] [Gerrit] apps...wikipedia[master]: Retrofit LoginTask
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
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