From 8d6fab6ead5a8d69456a0494e2df6fd90f54e1d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerardo=20V=C3=A1zquez?= Date: Fri, 26 Jun 2020 10:59:02 -0500 Subject: [PATCH] adding episode dialog tests --- .../de/test/antennapod/ui/DialogsTest.java | 93 +++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 app/src/androidTest/java/de/test/antennapod/ui/DialogsTest.java diff --git a/app/src/androidTest/java/de/test/antennapod/ui/DialogsTest.java b/app/src/androidTest/java/de/test/antennapod/ui/DialogsTest.java new file mode 100644 index 000000000..c6133c59c --- /dev/null +++ b/app/src/androidTest/java/de/test/antennapod/ui/DialogsTest.java @@ -0,0 +1,93 @@ +package de.test.antennapod.ui; + +import android.content.Intent; +import android.view.View; +import androidx.test.espresso.Espresso; +import androidx.test.espresso.contrib.RecyclerViewActions; +import androidx.test.espresso.intent.rule.IntentsTestRule; +import androidx.test.runner.AndroidJUnit4; +import de.danoeh.antennapod.R; +import de.danoeh.antennapod.activity.MainActivity; +import de.danoeh.antennapod.fragment.AddFeedFragment; +import de.danoeh.antennapod.fragment.DownloadsFragment; +import de.danoeh.antennapod.fragment.QueueFragment; +import de.danoeh.antennapod.fragment.SubscriptionFragment; +import de.test.antennapod.EspressoTestUtils; +import org.hamcrest.Matcher; +import org.hamcrest.Matchers; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +import static androidx.test.espresso.Espresso.onView; +import static androidx.test.espresso.action.ViewActions.clearText; +import static androidx.test.espresso.action.ViewActions.click; +import static androidx.test.espresso.action.ViewActions.typeText; +import static androidx.test.espresso.assertion.ViewAssertions.matches; +import static androidx.test.espresso.matcher.RootMatchers.isDialog; +import static androidx.test.espresso.matcher.ViewMatchers.isDescendantOfA; +import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed; +import static androidx.test.espresso.matcher.ViewMatchers.isRoot; +import static androidx.test.espresso.matcher.ViewMatchers.withClassName; +import static androidx.test.espresso.matcher.ViewMatchers.withContentDescription; +import static androidx.test.espresso.matcher.ViewMatchers.withId; +import static androidx.test.espresso.matcher.ViewMatchers.withText; +import static de.test.antennapod.EspressoTestUtils.waitForView; +import static de.test.antennapod.NthMatcher.first; +import static org.hamcrest.CoreMatchers.allOf; +import static org.hamcrest.CoreMatchers.endsWith; + +/** + * User interface tests for queue fragment. + */ +@RunWith(AndroidJUnit4.class) +public class DialogsTest { + + @Rule + public IntentsTestRule activityRule = new IntentsTestRule<>(MainActivity.class, false, false); + + @Before + public void setUp() throws InterruptedException { + EspressoTestUtils.clearPreferences(); + EspressoTestUtils.clearDatabase(); + EspressoTestUtils.setLastNavFragment(AddFeedFragment.TAG); + activityRule.launchActivity(new Intent()); + + String url = "https://omny.fm/shows/silence-is-not-an-option/why-not-being-racist-is-not-enough"; + + onView(withId(R.id.btn_add_via_url)).perform(click()); + onView(withId(R.id.text)).perform(clearText(), typeText(url)); + onView(withText(R.string.confirm_label)).inRoot(isDialog()) + .check(matches(isDisplayed())) + .perform(click()); + Thread.sleep(5000); + onView(withId(R.id.butSubscribe)).perform(click()); + Thread.sleep(5000); + onView(withId(R.id.recyclerView)) + .perform(RecyclerViewActions.actionOnItemAtPosition(0, click())); + Thread.sleep(3000); + onView(first(EspressoTestUtils.actionBarOverflow())).perform(click()); + } + + @Test + public void testShareDialogDisplayed() { + onView(withText(R.string.share_label)).perform(click()); + onView(withText(R.string.share_episode_label)).check(matches(isDisplayed())); + } + + @Test + public void testShareDialogShareButton() throws InterruptedException { + onView(withText(R.string.share_label)).perform(click()); + onView(withText(R.string.share_label)).check(matches(isDisplayed())); + onView(withText(R.string.share_label)).perform(click()); + Thread.sleep(3000); + } + + @Test + public void testShareDialogCancelButton() { + onView(withText(R.string.share_label)).perform(click()); + onView(withText(R.string.cancel_label)).check(matches(isDisplayed())); + } + +}