1package com.android.testing.uiautomation.demo; 2 3import com.android.testing.uiautomation.AutomationProvider; 4import com.android.testing.uiautomation.InjectAutomationProvider; 5import com.android.testing.uiautomation.InjectParams; 6import com.android.testing.uiautomation.UiTestHelper; 7 8import android.os.Bundle; 9import android.os.Environment; 10import android.test.AndroidTestCase; 11 12import java.io.File; 13import java.io.FileWriter; 14import java.io.Writer; 15 16public class EmailTest extends AndroidTestCase { 17 18 @InjectParams 19 private Bundle mParams; 20 21 @InjectAutomationProvider 22 private AutomationProvider mProvider; 23 24 private Writer mWriter; 25 private String mUsername, mPassword; 26 27 @Override 28 protected void setUp() throws Exception { 29 super.setUp(); 30 assertNotNull(mParams); 31 assertNotNull(mProvider); 32 mWriter = new FileWriter(new File(Environment.getExternalStorageDirectory(), 33 "ui_trace_log.txt")); 34 mProvider.setTraceLoggerOutput(mWriter); 35 mUsername = mParams.getString("username"); 36 mPassword = mParams.getString("password"); 37 assertNotNull("need username from command line", mUsername); 38 assertNotNull("need password from command line", mPassword); 39 } 40 41 public void testEmail() throws Exception { 42 UiTestHelper helper = new UiTestHelper(getContext(), mProvider); 43 assertTrue("failed to launch Email", helper.launchApplication("Email")); 44 assertTrue("not in Account setup", 45 helper.waitForWindow("Account setup")); 46 assertTrue("failed to set username", 47 mProvider.setTextFieldByLabel("Email address", mUsername)); 48 assertTrue("failed to set password", mProvider.setTextFieldByLabel("Password", mPassword)); 49 assertTrue("Next button not enabled", mProvider.isEnabled("text:Next")); 50 assertTrue("failed to invoke next button", mProvider.click("text:Next")); 51 assertTrue("not in Account settings", 52 helper.waitForWindow("Account settings", 60000)); 53 assertTrue("Next button not enabled", mProvider.isEnabled("text:Next")); 54 assertTrue("failed to invoke next button", mProvider.click("text:Next")); 55 assertTrue("not in Account setup", 56 helper.waitForWindow("Account setup")); 57 assertTrue("failed to set display name", mProvider.setTextFieldByLabel( 58 "Your name", "AOL")); 59 assertTrue("Next button not enabled", mProvider.isEnabled("text:Next")); 60 assertTrue("failed to invoke next button", mProvider.click("text:Next")); 61 } 62 63 @Override 64 protected void tearDown() throws Exception { 65 mWriter.flush(); 66 mWriter.close(); 67 super.tearDown(); 68 } 69} 70