ProgressDialogTest.java revision 5117035453920f3d4d0f3969bdab0305dcdb94ba
1package com.xtremelabs.robolectric.shadows; 2 3import android.app.Activity; 4import android.app.ProgressDialog; 5import android.content.Context; 6import android.content.DialogInterface; 7import com.xtremelabs.robolectric.Robolectric; 8import com.xtremelabs.robolectric.WithTestDefaultsRunner; 9import org.junit.Before; 10import org.junit.Test; 11import org.junit.runner.RunWith; 12 13import static com.xtremelabs.robolectric.Robolectric.shadowOf; 14import static org.hamcrest.CoreMatchers.instanceOf; 15import static org.hamcrest.CoreMatchers.nullValue; 16import static org.hamcrest.core.Is.is; 17import static org.hamcrest.core.IsEqual.equalTo; 18import static org.junit.Assert.assertThat; 19import static org.junit.Assert.assertTrue; 20 21@RunWith(WithTestDefaultsRunner.class) 22public class ProgressDialogTest { 23 24 private ProgressDialog dialog; 25 private ShadowProgressDialog shadow; 26 27 @Before 28 public void setUp() { 29 dialog = new ProgressDialog(null); 30 shadow = Robolectric.shadowOf(dialog); 31 } 32 33 @Test 34 public void shouldExtendAlertDialog() { 35 assertThat(shadow, instanceOf(ShadowAlertDialog.class)); 36 } 37 38 @Test 39 public void shouldSetMessage() { 40 CharSequence message = "This is only a test"; 41 42 assertThat(shadow.getMessage(), nullValue()); 43 dialog.setMessage(message); 44 assertThat((CharSequence) shadow.getMessage(), equalTo(message)); 45 } 46 47 @Test 48 public void shouldSetIndeterminate() { 49 assertThat(dialog.isIndeterminate(), equalTo(false)); 50 51 dialog.setIndeterminate(true); 52 assertThat(dialog.isIndeterminate(), equalTo(true)); 53 54 dialog.setIndeterminate(false); 55 assertThat(dialog.isIndeterminate(), equalTo(false)); 56 } 57 58 @Test 59 public void show_shouldCreateAProgressDialog() { 60 Context context = new Activity(); 61 TestOnCancelListener cancelListener = new TestOnCancelListener(); 62 ProgressDialog progressDialog = ProgressDialog.show(context, "Title", "Message", true, true, cancelListener); 63 ShadowProgressDialog shadowProgressDialog = shadowOf(progressDialog); 64 assertThat(shadowProgressDialog.getContext(), is(context)); 65 assertThat(shadowProgressDialog.getMessage(), equalTo("Message")); 66 assertTrue(shadowProgressDialog.isIndeterminate()); 67 assertTrue(shadowProgressDialog.isCancelable()); 68 69 progressDialog.cancel(); 70 assertThat((DialogInterface) cancelListener.onCancelDialogInterface, is((DialogInterface) progressDialog)); 71 } 72 73 private static class TestOnCancelListener implements DialogInterface.OnCancelListener { 74 public DialogInterface onCancelDialogInterface; 75 76 @Override 77 public void onCancel(DialogInterface dialogInterface) { 78 onCancelDialogInterface = dialogInterface; 79 80 } 81 } 82} 83