| package com.android.tv.testing.uihelper; |
| |
| import static com.android.tv.testing.uihelper.UiDeviceAsserts.waitForCondition; |
| |
| import android.content.Context; |
| import android.content.Intent; |
| import android.content.res.Resources; |
| import android.support.test.uiautomator.By; |
| import android.support.test.uiautomator.BySelector; |
| import android.support.test.uiautomator.UiDevice; |
| import android.support.test.uiautomator.Until; |
| import android.util.Log; |
| |
| import junit.framework.Assert; |
| |
| /** |
| * Helper for testing the Live TV Application. |
| */ |
| public class LiveChannelsUiDeviceHelper extends BaseUiDeviceHelper { |
| private static final String TAG = "LiveChannelsUiDevice"; |
| private static final int APPLICATION_START_TIMEOUT_MSEC = 5000; |
| |
| private final Context mContext; |
| |
| public LiveChannelsUiDeviceHelper(UiDevice uiDevice, Resources targetResources, |
| Context context) { |
| super(uiDevice, targetResources); |
| mContext = context; |
| } |
| |
| public void assertAppStarted() { |
| Intent intent = mContext.getPackageManager() |
| .getLaunchIntentForPackage(Constants.TV_APP_PACKAGE); |
| intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); // Clear out any previous instances |
| mContext.startActivity(intent); |
| // Wait for idle state before checking the channel banner because waitForCondition() has |
| // timeout. |
| mUiDevice.waitForIdle(); |
| // Make sure that the activity is resumed. |
| waitForCondition(mUiDevice, Until.hasObject(Constants.TV_VIEW)); |
| |
| Assert.assertTrue(Constants.TV_APP_PACKAGE + " did not start", mUiDevice |
| .wait(Until.hasObject(By.pkg(Constants.TV_APP_PACKAGE).depth(0)), |
| APPLICATION_START_TIMEOUT_MSEC)); |
| BySelector welcome = ByResource.id(mTargetResources, com.android.tv.R.id.intro); |
| if (mUiDevice.hasObject(welcome)) { |
| Log.i(TAG, "Welcome screen shown. Clearing dialog by pressing back"); |
| mUiDevice.pressBack(); |
| } |
| } |
| } |