/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ package org.mozilla.mozstumbler.client.subactivities; import android.os.Environment; import android.widget.Button; import android.widget.EditText; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mozilla.mozstumbler.R; import org.mozilla.mozstumbler.service.Prefs; import org.mozilla.mozstumbler.svclocator.services.log.LoggerUtil; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import org.robolectric.annotation.Config; import org.robolectric.shadows.ShadowEnvironment; import static junit.framework.Assert.assertEquals; @Config(emulateSdk = 18) @RunWith(RobolectricTestRunner.class) public class FileBugActivityTest { private static final String LOG_TAG = LoggerUtil.makeLogTag(FileBugActivityTest.class); @Before public void setup() { // This is really dumb. robolectric doesn't automatically reset the state // of preferences. Prefs.getInstanceWithoutContext().setSaveStumbleLogs(false); ShadowEnvironment.setExternalStorageState(Environment.MEDIA_MOUNTED); } @Test public void testEmailFieldIsRequired() { FileBugActivity activity = Robolectric.buildActivity(FileBugActivity.class).create().start().visible().get(); Button pressMeButton = (Button) activity.findViewById(R.id.bug_report_button); Robolectric.clickOn(pressMeButton); EditText emailField = (EditText) activity.findViewById(R.id.bug_report_sender_email); CharSequence err = emailField.getError(); String missing_field_text = Robolectric.application.getString(R.string.file_bug_missing_field); assertEquals(missing_field_text, err.toString()); } }