mirror of
https://github.com/CatimaLoyalty/Android.git
synced 2026-01-23 14:28:17 -05:00
Test button state
This commit is contained in:
@@ -0,0 +1,100 @@
|
||||
package protect.card_locker;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.TextView;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.robolectric.Robolectric;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.android.controller.ActivityController;
|
||||
import org.robolectric.annotation.Config;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.robolectric.Shadows.shadowOf;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(constants = BuildConfig.class, sdk = 23)
|
||||
public class BarcodeSelectorActivityTest {
|
||||
@Test
|
||||
public void emptyStateTest()
|
||||
{
|
||||
ActivityController activityController = Robolectric.buildActivity(BarcodeSelectorActivity.class).create();
|
||||
activityController.start();
|
||||
activityController.resume();
|
||||
|
||||
Activity activity = (Activity) activityController.get();
|
||||
|
||||
final TextView cardId = activity.findViewById(R.id.cardId);
|
||||
final Button noBarcodeButton = activity.findViewById(R.id.noBarcode);
|
||||
|
||||
// No card ID by default
|
||||
assertEquals(cardId.getText().toString(), "");
|
||||
|
||||
// Button should be visible but disabled
|
||||
assertEquals(View.VISIBLE, noBarcodeButton.getVisibility());
|
||||
assertEquals(false, noBarcodeButton.isEnabled());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void nonEmptyStateTest() throws InterruptedException
|
||||
{
|
||||
ActivityController activityController = Robolectric.buildActivity(BarcodeSelectorActivity.class).create();
|
||||
activityController.start();
|
||||
activityController.resume();
|
||||
|
||||
Activity activity = (Activity) activityController.get();
|
||||
|
||||
final TextView cardId = activity.findViewById(R.id.cardId);
|
||||
final Button noBarcodeButton = activity.findViewById(R.id.noBarcode);
|
||||
|
||||
cardId.setText("abcdefg");
|
||||
|
||||
activityController.pause();
|
||||
activityController.resume();
|
||||
|
||||
// Button should be visible and enabled
|
||||
assertEquals(View.VISIBLE, noBarcodeButton.getVisibility());
|
||||
assertEquals(true, noBarcodeButton.isEnabled());
|
||||
|
||||
// Clicking button should create "empty" barcode
|
||||
activity.findViewById(R.id.noBarcode).performClick();
|
||||
Intent resultIntent = shadowOf(activity).getResultIntent();
|
||||
assertEquals("", resultIntent.getStringExtra(BarcodeSelectorActivity.BARCODE_FORMAT));
|
||||
assertEquals("abcdefg", resultIntent.getStringExtra(BarcodeSelectorActivity.BARCODE_CONTENTS));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void nonEmptyToEmptyStateTest() throws InterruptedException
|
||||
{
|
||||
ActivityController activityController = Robolectric.buildActivity(BarcodeSelectorActivity.class).create();
|
||||
activityController.start();
|
||||
activityController.resume();
|
||||
|
||||
Activity activity = (Activity) activityController.get();
|
||||
|
||||
final TextView cardId = activity.findViewById(R.id.cardId);
|
||||
final Button noBarcodeButton = activity.findViewById(R.id.noBarcode);
|
||||
|
||||
cardId.setText("abcdefg");
|
||||
|
||||
activityController.pause();
|
||||
activityController.resume();
|
||||
|
||||
// Button should be visible and enabled
|
||||
assertEquals(View.VISIBLE, noBarcodeButton.getVisibility());
|
||||
assertEquals(true, noBarcodeButton.isEnabled());
|
||||
|
||||
cardId.setText("");
|
||||
|
||||
activityController.pause();
|
||||
activityController.resume();
|
||||
|
||||
// Button should be visible but disabled
|
||||
assertEquals(View.VISIBLE, noBarcodeButton.getVisibility());
|
||||
assertEquals(false, noBarcodeButton.isEnabled());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user