summaryrefslogtreecommitdiff
path: root/chromium/chrome/browser/signin/services/android/junit/src/org/chromium/chrome/browser/signin/services/WebSigninBridgeTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/chrome/browser/signin/services/android/junit/src/org/chromium/chrome/browser/signin/services/WebSigninBridgeTest.java')
-rw-r--r--chromium/chrome/browser/signin/services/android/junit/src/org/chromium/chrome/browser/signin/services/WebSigninBridgeTest.java89
1 files changed, 89 insertions, 0 deletions
diff --git a/chromium/chrome/browser/signin/services/android/junit/src/org/chromium/chrome/browser/signin/services/WebSigninBridgeTest.java b/chromium/chrome/browser/signin/services/android/junit/src/org/chromium/chrome/browser/signin/services/WebSigninBridgeTest.java
new file mode 100644
index 00000000000..8acec65e1e9
--- /dev/null
+++ b/chromium/chrome/browser/signin/services/android/junit/src/org/chromium/chrome/browser/signin/services/WebSigninBridgeTest.java
@@ -0,0 +1,89 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.signin.services;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+
+import org.chromium.base.test.BaseRobolectricTestRunner;
+import org.chromium.base.test.util.JniMocker;
+import org.chromium.chrome.browser.profiles.Profile;
+import org.chromium.components.signin.base.CoreAccountInfo;
+import org.chromium.components.signin.base.GoogleServiceAuthError;
+import org.chromium.components.signin.base.GoogleServiceAuthError.State;
+
+/**
+ * Unit tests for {@link WebSigninBridge}.
+ */
+@RunWith(BaseRobolectricTestRunner.class)
+public class WebSigninBridgeTest {
+ private static final CoreAccountInfo CORE_ACCOUNT_INFO =
+ CoreAccountInfo.createFromEmailAndGaiaId("user@domain.com", "gaia-id-user");
+ private static final long NATIVE_WEB_SIGNIN_BRIDGE = 1000L;
+
+ @Rule
+ public final JniMocker mocker = new JniMocker();
+
+ @Rule
+ public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+
+ @Mock
+ private WebSigninBridge.Natives mNativeMock;
+
+ @Mock
+ private Profile mProfileMock;
+
+ @Mock
+ private WebSigninBridge.Listener mListenerMock;
+
+ private final WebSigninBridge.Factory mFactory = new WebSigninBridge.Factory();
+
+ @Before
+ public void setUp() {
+ mocker.mock(WebSigninBridgeJni.TEST_HOOKS, mNativeMock);
+ when(mNativeMock.create(mProfileMock, CORE_ACCOUNT_INFO, mListenerMock))
+ .thenReturn(NATIVE_WEB_SIGNIN_BRIDGE);
+ }
+
+ @Test
+ public void testFactoryCreate() {
+ WebSigninBridge webSigninBridge =
+ mFactory.create(mProfileMock, CORE_ACCOUNT_INFO, mListenerMock);
+ Assert.assertNotNull("Factory#create should not return null!", webSigninBridge);
+ verify(mNativeMock).create(mProfileMock, CORE_ACCOUNT_INFO, mListenerMock);
+ }
+
+ @Test
+ public void testDestroy() {
+ mFactory.create(mProfileMock, CORE_ACCOUNT_INFO, mListenerMock).destroy();
+ verify(mNativeMock).destroy(NATIVE_WEB_SIGNIN_BRIDGE);
+ }
+
+ @Test
+ public void testOnSigninSucceed() {
+ WebSigninBridge.onSigninSucceeded(mListenerMock);
+ verify(mListenerMock).onSigninSucceeded();
+ verify(mListenerMock, never()).onSigninFailed(any());
+ }
+
+ @Test
+ public void testOnSigninFailed() {
+ final GoogleServiceAuthError error = new GoogleServiceAuthError(State.CONNECTION_FAILED);
+ WebSigninBridge.onSigninFailed(mListenerMock, error);
+ verify(mListenerMock).onSigninFailed(error);
+ verify(mListenerMock, never()).onSigninSucceeded();
+ }
+}