package org.commcare.android.tests.formnav; import android.content.Intent; import android.os.Environment; import android.widget.ImageButton; import android.widget.TextView; import org.commcare.CommCareTestApplication; import org.commcare.activities.FormEntryActivity; import org.commcare.activities.components.FormEntryConstants; import org.commcare.android.CommCareTestRunner; import org.commcare.android.util.ActivityLaunchUtils; import org.commcare.android.util.TestAppInstaller; import org.commcare.dalvik.R; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.Robolectric; import org.robolectric.annotation.Config; import org.robolectric.shadows.ShadowActivity; import org.robolectric.shadows.ShadowEnvironment; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertTrue; /** * @author Phillip Mates (pmates@dimagi.com). */ @Config(application = CommCareTestApplication.class) @RunWith(CommCareTestRunner.class) public class CalendarLocaleTest { @Before public void setup() { TestAppInstaller.installAppAndLogin( "jr://resource/commcare-apps/calendar_tests/profile.ccpr", "test", "123"); ShadowEnvironment.setExternalStorageState(Environment.MEDIA_MOUNTED); } /** * Test filling out and saving a form ending in a hidden repeat group. This * type of form exercises uncommon end-of-form code paths */ @Test public void testNepaliEthiopianCalendar() { ShadowActivity shadowActivity = ActivityLaunchUtils.buildHomeActivityForFormEntryLaunch("m0-f0"); Intent formEntryIntent = shadowActivity.getNextStartedActivity(); // make sure the form entry activity should be launched String intentActivityName = formEntryIntent.getComponent().getClassName(); assertTrue(intentActivityName.equals(FormEntryActivity.class.getName())); navigateCalendarForm(formEntryIntent); } private void navigateCalendarForm(Intent formEntryIntent) { // launch form entry FormEntryActivity formEntryActivity = Robolectric.buildActivity(FormEntryActivity.class).withIntent(formEntryIntent) .create().start().resume().get(); ImageButton nextButton = (ImageButton)formEntryActivity.findViewById(R.id.nav_btn_next); // enter an answer for the question TextView dayText = (TextView)formEntryActivity.findViewById(R.id.daytxt); TextView monthText = (TextView)formEntryActivity.findViewById(R.id.monthtxt); TextView yearText = (TextView)formEntryActivity.findViewById(R.id.yeartxt); assertEquals(monthText.getText(), "Ashadh"); assertEquals(dayText.getText(), "19"); assertEquals(yearText.getText(), "2073"); assertTrue(nextButton.getTag().equals(FormEntryConstants.NAV_STATE_NEXT)); nextButton.performClick(); TextView ethiopianDayText = (TextView)formEntryActivity.findViewById(R.id.daytxt); TextView ethiopianMonthText = (TextView)formEntryActivity.findViewById(R.id.monthtxt); TextView ethiopianYearText = (TextView)formEntryActivity.findViewById(R.id.yeartxt); assertEquals("Säne",ethiopianMonthText.getText()); assertEquals("26", ethiopianDayText.getText()); assertEquals("2008", ethiopianYearText.getText()); } }