diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/endtoendtest/others/SensorTest.java b/MyTracksTest/src/com/google/android/apps/mytracks/endtoendtest/others/SensorTest.java index f14818bf5..c156d5cf4 100644 --- a/MyTracksTest/src/com/google/android/apps/mytracks/endtoendtest/others/SensorTest.java +++ b/MyTracksTest/src/com/google/android/apps/mytracks/endtoendtest/others/SensorTest.java @@ -19,7 +19,9 @@ import com.google.android.apps.mytracks.TrackListActivity; import com.google.android.apps.mytracks.endtoendtest.EndToEndTestUtils; import com.google.android.maps.mytracks.R; +import android.app.AlertDialog; import android.app.Instrumentation; +import android.content.DialogInterface; import android.test.ActivityInstrumentationTestCase2; import android.util.Log; import android.widget.ListView; @@ -50,6 +52,11 @@ public class SensorTest extends ActivityInstrumentationTestCase2 0 && EndToEndTestUtils.SOLO.waitForText(nameString, 1, EndToEndTestUtils.SHORT_WAIT_TIME)) { return; } - fail(); + + Log.i(EndToEndTestUtils.LOG_TAG, "No sensor is paried"); + try { + runTestOnUiThread(new Runnable() { + @Override + public void run() { + UIThreadDone = false; + new AlertDialog.Builder(EndToEndTestUtils.SOLO.getCurrentActivity()) + .setTitle("No paried sensor.") + .setMessage("No paried sensor, do you want to pair sensor now?") + .setPositiveButton("Yes", new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + UIThreadDone = true; + } + }).setNegativeButton("No", new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + fail(); + } + }).show(); + } + }); + // Waiting user click the dialog. + while (!UIThreadDone) { + EndToEndTestUtils.sleep(1000); + Log.i(EndToEndTestUtils.LOG_TAG, "Waiting UI thread done."); + } + + // Open OS setting page of Bluetooth. + EndToEndTestUtils.SOLO.goBack(); + EndToEndTestUtils.SOLO.clickOnText(trackListActivity + .getString(R.string.settings_sensor_bluetooth_pairing)); + + // Now the setting page is on the front. + while (!EndToEndTestUtils.SOLO.waitForText( + trackListActivity.getString(R.string.settings_sensor_bluetooth_pairing), 1, 500)) { + Log.i(EndToEndTestUtils.LOG_TAG, "Waiting back to MyTracks activity."); + EndToEndTestUtils.sleep(200); + } + checkPairedSensorsNumber(nameString); + } catch (Throwable e) { + e.printStackTrace(); + } } /**