Android Open Source - helsinki-testbed2-android Main Activity Robotium Test






From Project

Back to project page helsinki-testbed2-android.

License

The source code is released under:

GNU General Public License

If you think the Android project helsinki-testbed2-android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package fi.testbed2.robotium;
//from   w w  w  . ja  v  a2 s .c o  m
import android.test.ActivityInstrumentationTestCase2;
import com.jayway.android.robotium.solo.Solo;
import fi.testbed2.R;
import fi.testbed2.android.activity.AnimationActivity_;
import fi.testbed2.android.activity.MainActivity_;
import fi.testbed2.android.activity.TestbedPreferenceActivity;

/**
 * Robotium test for the main activity.
 *
 * Prerequisite for the test are:
 *  - Number of map images to be shown: 10
 *
 * Note that these tests should be run on an emulator which has
 * fairly slow network speed (EDGE preferred) because the tests
 * try to cancel downloads and with too fast download speeds
 * the tests might not be able to cancel downloads before they have
 * downloaded.
 *
 */
public class MainActivityRobotiumTest extends ActivityInstrumentationTestCase2<MainActivity_> {

    private Solo solo;

    public MainActivityRobotiumTest() {
        super(MainActivity_.class);
    }

    @Override
    public void setUp() throws Exception {
        solo = new Solo(getInstrumentation(), getActivity());
    }

    @Override
    public void tearDown() throws Exception {
        solo.finishOpenedActivities();
    }

    public void testAboutBoxShouldBeShown() throws Exception {

        solo.assertCurrentActivity("Should be MainActivity", MainActivity_.class);
        solo.sendKey(Solo.MENU);
        solo.clickOnText(solo.getString(R.string.main_menu_about));
        assertTrue(solo.searchText(solo.getString(R.string.about_visit_website)));
        solo.assertCurrentActivity("Should be MainActivity", MainActivity_.class);
        solo.clickOnText(getActivity().getResources().getString(R.string.close_button));

    }

    public void testPreferencesShouldBeShown() throws Exception {

        solo.sendKey(Solo.MENU);
        solo.clickOnText(solo.getString(R.string.main_menu_preferences));

        solo.waitForText(solo.getString(R.string.preference_category_basic));
        solo.assertCurrentActivity("Should be TestbedPreferenceActivity", TestbedPreferenceActivity.class);

        solo.scrollDown();

        /*
         * Note, there is a bug in robotium when checking the status of checkboxes:
         * http://code.google.com/p/robotium/issues/detail?id=106
         * Therefore, the checkboxes is not tested here so thoroughly
         */

        solo.clickOnText(getActivity().getResources().getString(R.string.preference_category_location));
        solo.waitForText(solo.getString(R.string.preference_location_municipalities_title));
        solo.clickOnText(getActivity().getResources().getString(R.string.preference_location_municipalities_title));
        solo.clickOnText("Askola");
        solo.clickOnText("Espoo");
        solo.clickOnText("OK");

        solo.goBack();
        solo.goBack();
        solo.assertCurrentActivity("Should be MainActivity", MainActivity_.class);

    }

    public void testRefreshButtonSelected() throws Exception {

        solo.clickOnImageButton(0);

        solo.waitForText("@");
        solo.assertCurrentActivity("Should be AnimationActivity", AnimationActivity_.class);
        solo.waitForText("/10");
        assertTrue(solo.searchText("/10"));

    }

    public void testDownloadCancelledWhenRefreshFromMainActivity() throws Exception {

        setMapType(4);

        solo.sendKey(Solo.MENU);
        solo.clickOnText(solo.getString(R.string.main_menu_refresh));
        solo.goBack();

        solo.waitForText(solo.getString(R.string.notice_cancelled));
        solo.assertCurrentActivity("Should be MainActivity", MainActivity_.class);

    }

    public void testDownloadCancelledWhenBackPressedInAnimationActivity() throws Exception {

        setMapType(1);

        solo.clickOnImageButton(0);

        solo.waitForText("@");
        solo.assertCurrentActivity("Should be AnimationActivity", AnimationActivity_.class);
        solo.waitForText("/10");
        assertTrue(solo.searchText("/10"));

        // Change map type which clears the cache and we download images again
        setMapType(2);

        solo.sendKey(Solo.MENU);
        solo.clickOnText(solo.getString(R.string.main_menu_refresh));
        solo.waitForText("@");
        solo.goBack();

        solo.waitForText(solo.getString(R.string.notice_cancelled));
        solo.assertCurrentActivity("Should be MainActivity", MainActivity_.class);

    }

    private void setMapType(int index) {

        solo.sendKey(Solo.MENU);
        solo.clickOnText(solo.getString(R.string.main_menu_preferences));
        solo.waitForText(solo.getString(R.string.preference_category_basic));
        solo.assertCurrentActivity("Should be TestbedPreferenceActivity", TestbedPreferenceActivity.class);
        solo.clickOnText(solo.getString(R.string.preference_map_type_title));
        solo.clickInList(index);
        solo.goBack();

    }


}




Java Source Code List

com.larvalabs.svgandroid.ParserHelper.java
com.larvalabs.svgandroid.SVGParseException.java
com.larvalabs.svgandroid.SVGParser.java
com.larvalabs.svgandroid.SVG.java
com.robobunny.SeekBarPreference.java
com.threefiftynice.android.preference.ListPreferenceMultiSelect.java
fi.testbed2.MainModule.java
fi.testbed2.android.activity.AbstractActivity.java
fi.testbed2.android.activity.AnimationActivity.java
fi.testbed2.android.activity.MainActivity.java
fi.testbed2.android.activity.ParsingActivity.java
fi.testbed2.android.activity.TestbedPreferenceActivity.java
fi.testbed2.android.app.Logger.java
fi.testbed2.android.app.MainApplication.java
fi.testbed2.android.task.AbstractTask.java
fi.testbed2.android.task.DownloadImagesTask.java
fi.testbed2.android.task.ParseAndInitTask.java
fi.testbed2.android.task.Task.java
fi.testbed2.android.task.exception.DownloadTaskException.java
fi.testbed2.android.task.exception.TaskCancelledException.java
fi.testbed2.android.ui.dialog.AlertDialogBuilder.java
fi.testbed2.android.ui.dialog.DialogBuilder.java
fi.testbed2.android.ui.svg.LocationMarkerSVG.java
fi.testbed2.android.ui.svg.MunicipalityMarkerSVG.java
fi.testbed2.android.ui.view.AnimationViewPlayer.java
fi.testbed2.android.ui.view.AnimationView.java
fi.testbed2.android.ui.view.MapScaleInfo.java
fi.testbed2.android.ui.view.util.AnimationViewBoundsUtil.java
fi.testbed2.android.ui.view.util.AnimationViewCanvasUtil.java
fi.testbed2.android.ui.view.util.AnimationViewScaleAndGestureUtil.java
fi.testbed2.domain.MapLocationGPS.java
fi.testbed2.domain.MapLocationXY.java
fi.testbed2.domain.Municipality.java
fi.testbed2.domain.TestbedMapImage.java
fi.testbed2.domain.TestbedParsedPage.java
fi.testbed2.robotium.MainActivityRobotiumTest.java
fi.testbed2.service.BitmapService.java
fi.testbed2.service.CoordinateService.java
fi.testbed2.service.HttpUrlService.java
fi.testbed2.service.LocationService.java
fi.testbed2.service.MunicipalityService.java
fi.testbed2.service.PageService.java
fi.testbed2.service.SettingsService.java
fi.testbed2.service.impl.ApacheHttpUrlService.java
fi.testbed2.service.impl.InlineMunicipalityService.java
fi.testbed2.service.impl.LruCacheBitmapService.java
fi.testbed2.service.impl.LruCachePageService.java
fi.testbed2.service.impl.MercatorCoordinateService.java
fi.testbed2.service.impl.PreferenceBasedLocationService.java
fi.testbed2.service.impl.SharedPreferenceSettingsService.java
fi.testbed2.util.ColorUtil.java
fi.testbed2.util.MathUtil.java
fi.testbed2.util.SeekBarUtil.java
fi.testbed2.util.TimeUtil.java
net.margaritov.preference.colorpicker.AlphaPatternDrawable.java
net.margaritov.preference.colorpicker.ColorPickerDialog.java
net.margaritov.preference.colorpicker.ColorPickerPanelView.java
net.margaritov.preference.colorpicker.ColorPickerPreference.java
net.margaritov.preference.colorpicker.ColorPickerView.java