package org.commcare.android.tests.activities;
import android.app.Activity;
import android.content.Intent;
import android.widget.ImageButton;
import org.commcare.CommCareTestApplication;
import org.commcare.activities.MultimediaInflaterActivity;
import org.commcare.android.CommCareTestRunner;
import org.commcare.android.util.TestAppInstaller;
import org.commcare.dalvik.R;
import org.javarosa.core.services.locale.Localization;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowActivity;
import org.robolectric.shadows.ShadowToast;
/**
* @author Phillip Mates (pmates@dimagi.com)
*/
@Config(application = CommCareTestApplication.class)
@RunWith(CommCareTestRunner.class)
public class MultimediaInflaterActivityTest {
@Before
public void setup() {
TestAppInstaller.installApp("jr://resource/commcare-apps/archive_form_tests/profile.ccpr");
}
/**
* Ensure user sees invalid path toast when the file browser doesn't return a path uri
*/
@Test
public void emptyFileSelectionTest() {
MultimediaInflaterActivity multimediaInflaterActivity =
Robolectric.buildActivity(MultimediaInflaterActivity.class)
.create().start().resume().get();
ImageButton selectFileButton =
(ImageButton)multimediaInflaterActivity.findViewById(
R.id.screen_multimedia_inflater_filefetch);
selectFileButton.performClick();
Intent fileSelectIntent = new Intent(Intent.ACTION_GET_CONTENT);
fileSelectIntent.setType("application/zip");
Intent emptyFileSelectResult = new Intent();
ShadowActivity shadowActivity =
Shadows.shadowOf(multimediaInflaterActivity);
shadowActivity.receiveResult(fileSelectIntent,
Activity.RESULT_OK,
emptyFileSelectResult);
Assert.assertEquals(Localization.get("mult.install.state.invalid.path"),
ShadowToast.getTextOfLatestToast());
}
}