Commit 7ea09124 authored by Rohit Agarwal's avatar Rohit Agarwal Committed by Commit Bot

Add instrumentation tests for incognito interstitial.

This CL adds instrumentation tests to verify the UI elements are shown
and to check the callback associated with "LearnMore" and "Continue"
buttons are working fine.


Bug: 1125979
Change-Id: I8eba86c1d5fd10a34e5fe017ef1ac0338d9be54a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2404924
Commit-Queue: Rohit Agarwal <roagarwal@chromium.org>
Reviewed-by: default avatarBoris Sazonov <bsazonov@chromium.org>
Reviewed-by: default avatarRohit Agarwal <roagarwal@chromium.org>
Reviewed-by: default avatarAlice Wang <aliceywang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#806216}
parent 55b9f4b0
......@@ -232,6 +232,7 @@ chrome_test_java_sources = [
"javatests/src/org/chromium/chrome/browser/incognito/IncognitoProfileDestroyerIntegrationTest.java",
"javatests/src/org/chromium/chrome/browser/incognito/IncognitoStorageLeakageTest.java",
"javatests/src/org/chromium/chrome/browser/incognito/IncognitoTabLauncherTest.java",
"javatests/src/org/chromium/chrome/browser/incognito/interstitial/IncognitoInterstitialTest.java",
"javatests/src/org/chromium/chrome/browser/infobar/InfoBarAppearanceTest.java",
"javatests/src/org/chromium/chrome/browser/infobar/InfoBarContainerTest.java",
"javatests/src/org/chromium/chrome/browser/infobar/InfoBarTest.java",
......
// 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.incognito.interstitial;
import static androidx.test.espresso.Espresso.onView;
import static androidx.test.espresso.action.ViewActions.click;
import static androidx.test.espresso.assertion.ViewAssertions.matches;
import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
import static androidx.test.espresso.matcher.ViewMatchers.withId;
import static org.mockito.Mockito.verify;
import android.support.test.rule.ActivityTestRule;
import android.view.View;
import androidx.test.filters.MediumTest;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.chromium.base.test.util.CommandLineFlags;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.flags.ChromeSwitches;
import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
import org.chromium.content_public.browser.test.util.TestThreadUtils;
import org.chromium.ui.test.util.DummyUiActivity;
/**
* Instrumentation test class for the incognito interstitial.
*/
@RunWith(ChromeJUnit4ClassRunner.class)
@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE})
public class IncognitoInterstitialTest {
@Mock
private IncognitoInterstitialDelegate mIncognitoInterstitialDelegateMock;
@Rule
public final ActivityTestRule<DummyUiActivity> mActivityTestRule =
new ActivityTestRule<>(DummyUiActivity.class);
@BeforeClass
public static void setUpBeforeActivityLaunched() {
DummyUiActivity.setTestLayout(R.layout.incognito_interstitial_bottom_sheet_view);
}
@AfterClass
public static void tearDown() {
DummyUiActivity.setTestLayout(0);
}
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
TestThreadUtils.runOnUiThreadBlocking(() -> {
View contentView = mActivityTestRule.getActivity().findViewById(android.R.id.content);
IncognitoInterstitialCoordinator incognitoInterstitialCoordinator =
new IncognitoInterstitialCoordinator(
contentView, mIncognitoInterstitialDelegateMock);
});
}
@Test
@MediumTest
public void testIncognitoInterstitialElementsShownCorrectly() {
onView(withId(R.id.incognito_interstitial_learn_more)).check(matches(isDisplayed()));
onView(withId(R.id.incognito_interstitial_continue_button)).check(matches(isDisplayed()));
}
@Test
@MediumTest
public void testClickOnLearnMoreButton() {
onView(withId(R.id.incognito_interstitial_learn_more)).perform(click());
verify(mIncognitoInterstitialDelegateMock).openLearnMorePage();
}
@Test
@MediumTest
public void testClickOnContinueButton() {
onView(withId(R.id.incognito_interstitial_continue_button)).perform(click());
verify(mIncognitoInterstitialDelegateMock).openCurrentUrlInIncognitoTab();
}
}
\ No newline at end of file
file://chrome/android/java/src/org/chromium/chrome/browser/signin/OWNERS
roagarwal@chromium.org
# TEAM: chrome-privacy-core@google.com
# COMPONENT: Privacy>Incognito
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment