package rabbitescape.ui.android; import android.test.ActivityInstrumentationTestCase2; import rabbitescape.engine.Token; import rabbitescape.engine.menu.MenuItem; public class SmokeTest extends ActivityInstrumentationTestCase2<AndroidMenuActivity> { public SmokeTest() { super( AndroidMenuActivity.class ); } /** * Appears to work on old Android versions, and has trouble on newer ones. * I suspect the hack I used to do "back" is to blame. * * To run, ensure the device is unlocked, and run as an Android Test. */ public void test_Smoke() { AndroidUiDriver driver = new AndroidUiDriver( this ); // Click some menu items driver.clickMenuItem( 0, "Start Game" ); driver.clickMenuItem( 1, "Medium" ); // Navigate around menus, including using back driver.back( AndroidMenuActivity.class ); driver.clickMenuItem( 1, "Medium" ); // Open a level MenuItem levelItem = driver.clickMenuItem( 0, "${number} Easy for some" ); assertEquals( "1", levelItem.nameParams.get( "number" ) ); driver.clickPositive( "Start" ); // Lose a level by exploding all driver.explodeAllRabbits(); driver.clickPositive( "OK", true ); // Back to beginning driver.back( AndroidMenuActivity.class ); driver.back( AndroidMenuActivity.class ); // Click About driver.clickMenuItem( 1, "About" ); driver.back( AndroidAboutActivity.class ); // Open an easy level driver.clickMenuItem( 0, "Start Game" ); driver.clickMenuItem( 0, "Easy" ); driver.clickMenuItem( 0, "${number} Digging practice" ); driver.clickPositive( "Start" ); // Solve it driver.chooseAbility( Token.Type.dig ); driver.placeToken( 5, 2 ); // Wait for congratulations driver.longWaitForDialog(); driver.clickPositive( "Great!", true ); // Open next MenuItem level1Item = driver.clickMenuItem( 1, "${number} Bashing practice" ); assertEquals( "2", level1Item.nameParams.get( "number" ) ); } }