package com.android.testing.uiautomation.demo; import com.android.testing.uiautomation.AutomationProvider; import com.android.testing.uiautomation.InjectAutomationProvider; import com.android.testing.uiautomation.InjectParams; import com.android.testing.uiautomation.UiTestHelper; import android.os.Bundle; import android.os.Environment; import android.test.AndroidTestCase; import java.io.File; import java.io.FileWriter; import java.io.Writer; public class EmailTest extends AndroidTestCase { @InjectParams private Bundle mParams; @InjectAutomationProvider private AutomationProvider mProvider; private Writer mWriter; private String mUsername, mPassword; @Override protected void setUp() throws Exception { super.setUp(); assertNotNull(mParams); assertNotNull(mProvider); mWriter = new FileWriter(new File(Environment.getExternalStorageDirectory(), "ui_trace_log.txt")); mProvider.setTraceLoggerOutput(mWriter); mUsername = mParams.getString("username"); mPassword = mParams.getString("password"); assertNotNull("need username from command line", mUsername); assertNotNull("need password from command line", mPassword); } public void testEmail() throws Exception { UiTestHelper helper = new UiTestHelper(getContext(), mProvider); assertTrue("failed to launch Email", helper.launchApplication("Email")); assertTrue("not in Account setup", helper.waitForWindow("Account setup")); assertTrue("failed to set username", mProvider.setTextFieldByLabel("Email address", mUsername)); assertTrue("failed to set password", mProvider.setTextFieldByLabel("Password", mPassword)); assertTrue("Next button not enabled", mProvider.isEnabled("text:Next")); assertTrue("failed to invoke next button", mProvider.click("text:Next")); assertTrue("not in Account settings", helper.waitForWindow("Account settings", 60000)); assertTrue("Next button not enabled", mProvider.isEnabled("text:Next")); assertTrue("failed to invoke next button", mProvider.click("text:Next")); assertTrue("not in Account setup", helper.waitForWindow("Account setup")); assertTrue("failed to set display name", mProvider.setTextFieldByLabel( "Your name", "AOL")); assertTrue("Next button not enabled", mProvider.isEnabled("text:Next")); assertTrue("failed to invoke next button", mProvider.click("text:Next")); } @Override protected void tearDown() throws Exception { mWriter.flush(); mWriter.close(); super.tearDown(); } }