Search in sources :

Example 1 with SubActivity

use of jp.mixi.sample.test.SubActivity in project AndroidTraining by mixi-inc.

the class SampleRobotiumTestCase method testCallSubActivityAndReturn.

public void testCallSubActivityAndReturn() throws Exception {
    Activity activity = getActivity();
    Solo solo = new Solo(getInstrumentation(), activity);
    // MainActivity が立ち上がってフォアグラウンドにいる
    solo.assertCurrentActivity("MainActivity now.", MainActivity.class);
    // カウンタの数字が 0 であることを確認する
    // 0 と書かれた TextView を画面上から探し出し、あればその TextView オブジェクトを返すメソッド
    assertTrue(solo.searchText("0"));
    // Count up と書かれたボタンをクリックする (View の id を知る必要はない)
    solo.clickOnButton("Count up");
    // 0 と書かれた TextView はなくなり、1 と書かれたTextView になるはず
    assertFalse(solo.searchText("0"));
    assertTrue(solo.searchText("1"));
    // Launch SubActivity ボタンを押す
    solo.clickOnButton("Launch SubActivity");
    // SubActivity が起動し、フォアグラウンドに居るはず
    solo.assertCurrentActivity("SubActivity now.", SubActivity.class);
    // メニューキーを押した
    solo.sendKey(KeyEvent.KEYCODE_MENU);
    // ActionBarを使っているなら、以下でも良い
    // solo.clickOnActionBarItem(0);
    // 戻る
    solo.getCurrentActivity().finish();
    // 状態復帰できているはず
    assertTrue(solo.searchText("1"));
}
Also used : Solo(com.jayway.android.robotium.solo.Solo) SubActivity(jp.mixi.sample.test.SubActivity) MainActivity(jp.mixi.sample.test.MainActivity) Activity(android.app.Activity)

Example 2 with SubActivity

use of jp.mixi.sample.test.SubActivity in project AndroidTraining by mixi-inc.

the class SampleActivityInstrumentationTestCase method testCallSubActivityAndReturn.

public void testCallSubActivityAndReturn() throws Exception {
    Activity activity = getActivity();
    // UI 操作による View の状態を見るために、View のインスタンスを取り出す
    TextView counter = (TextView) activity.findViewById(R.id.ClickCounter);
    Button button = (Button) activity.findViewById(R.id.CountEventTrigger);
    Button button2 = (Button) activity.findViewById(R.id.CallSubActivity);
    // 最初は 0
    assertEquals("0", counter.getText().toString());
    // ボタンのクリックをシミュレート
    TouchUtils.clickView(this, button);
    // クリックしたら、カウンタの値がインクリメントされる
    assertEquals("1", counter.getText().toString());
    // Activity の起動を監視する(厳密には Intent を監視する)オブジェクトを作る
    ActivityMonitor monitor = new ActivityMonitor(SubActivity.class.getCanonicalName(), null, true);
    // 監視オブジェクトを登録
    getInstrumentation().addMonitor(monitor);
    // Launch SubActivity をクリック
    TouchUtils.clickView(this, button2);
    // 起動を待つ
    Activity newActivity = getInstrumentation().waitForMonitorWithTimeout(monitor, 3000L);
    // 1 つの Activity が起動しているはず
    assertEquals(1, monitor.getHits());
    // 終わる
    if (newActivity != null)
        newActivity.finish();
    // 戻ってきても状態が復帰できるはず
    assertEquals("1", counter.getText().toString());
}
Also used : SubActivity(jp.mixi.sample.test.SubActivity) ActivityMonitor(android.app.Instrumentation.ActivityMonitor) Button(android.widget.Button) SubActivity(jp.mixi.sample.test.SubActivity) MainActivity(jp.mixi.sample.test.MainActivity) Activity(android.app.Activity) TextView(android.widget.TextView)

Aggregations

Activity (android.app.Activity)2 MainActivity (jp.mixi.sample.test.MainActivity)2 SubActivity (jp.mixi.sample.test.SubActivity)2 ActivityMonitor (android.app.Instrumentation.ActivityMonitor)1 Button (android.widget.Button)1 TextView (android.widget.TextView)1 Solo (com.jayway.android.robotium.solo.Solo)1