package org.bookdash.android.presentation.splash; import android.support.test.espresso.Espresso; import android.support.test.espresso.IdlingResource; import android.support.test.espresso.intent.Intents; import android.support.test.rule.ActivityTestRule; import android.support.test.runner.AndroidJUnit4; import org.bookdash.android.data.settings.FakeSettingsApiImpl; import org.bookdash.android.presentation.main.MainActivity; import org.bookdash.android.presentation.splash.util.ElapsedTimeIdlingResource; import org.junit.After; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import za.co.riggaroo.materialhelptutorial.tutorial.MaterialTutorialActivity; import static android.support.test.espresso.intent.Intents.intended; import static android.support.test.espresso.intent.matcher.IntentMatchers.hasComponent; /** * @author rebeccafranks * @since 15/11/05. */ @RunWith(AndroidJUnit4.class) public class SplashScreenTest { @Rule public ActivityTestRule<SplashActivity> activityTestRule = new ActivityTestRule<>(SplashActivity.class, true, false); private int splashScreenWaitingTime = 1100; @Before public void setUp() { Intents.init(); } @After public void tearDown() { Intents.release(); } @Test public void viewSplashFirstTime_NavigateToTutorialAfter1000ms() throws InterruptedException { FakeSettingsApiImpl.setFirstTime(true); activityTestRule.launchActivity(null); IdlingResource idlingResource = new ElapsedTimeIdlingResource(splashScreenWaitingTime); Espresso.registerIdlingResources(idlingResource); intended(hasComponent(MaterialTutorialActivity.class.getName())); Espresso.unregisterIdlingResources(idlingResource); } @Test public void viewSplashScreenSecondTime_NavigateToListBooksAfter1000ms() throws InterruptedException { FakeSettingsApiImpl.setFirstTime(false); activityTestRule.launchActivity(null); IdlingResource idlingResource = new ElapsedTimeIdlingResource(splashScreenWaitingTime); Espresso.registerIdlingResources(idlingResource); intended(hasComponent(MainActivity.class.getName())); Espresso.unregisterIdlingResources(idlingResource); } }