package com.packt.madev; import android.content.Context; import android.content.Intent; import android.support.test.InstrumentationRegistry; import android.support.test.filters.LargeTest; import android.support.test.runner.AndroidJUnit4; import android.support.test.uiautomator.By; import android.support.test.uiautomator.UiDevice; import android.support.test.uiautomator.UiObject2; import android.support.test.uiautomator.UiObjectNotFoundException; import android.support.test.uiautomator.UiSelector; import android.support.test.uiautomator.Until; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.notNullValue; import static org.junit.Assert.assertThat; @RunWith(AndroidJUnit4.class) @LargeTest public class MainEndToEndTest { private static final int LAUNCH_TIMEOUT = 5000; private static final String TARGET_PACKAGE = InstrumentationRegistry.getTargetContext().getPackageName(); private UiDevice mDevice; @Before public void startMainActivityFromHomeScreen() { mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()); mDevice.pressHome(); final String launcherPackage = mDevice.getLauncherPackageName(); assertThat(launcherPackage, notNullValue()); mDevice.wait(Until.hasObject(By.pkg(launcherPackage).depth(0)), LAUNCH_TIMEOUT); Context context = InstrumentationRegistry.getContext(); final Intent intent = context.getPackageManager().getLaunchIntentForPackage(TARGET_PACKAGE); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); context.startActivity(intent); mDevice.wait(Until.hasObject(By.pkg(TARGET_PACKAGE).depth(0)), LAUNCH_TIMEOUT); } @Test public void it_should_be_possible_to_open_add_new_item_window() throws UiObjectNotFoundException { mDevice.findObject( new UiSelector() .descriptionContains("Add New Stock Button") ).click(); UiObject2 result = mDevice.findObject( By.res(TARGET_PACKAGE, "portfolio_addnew_symbol") ); assertThat(result.getText(), is("GOOG")); } }