1 package com.xtremelabs.robolectric.shadows; 2 3 import static org.junit.Assert.assertEquals; 4 import static org.junit.Assert.assertSame; 5 import static org.mockito.Mockito.mock; 6 7 import com.xtremelabs.robolectric.Robolectric; 8 import com.xtremelabs.robolectric.WithTestDefaultsRunner; 9 10 import org.junit.Test; 11 import org.junit.runner.RunWith; 12 13 import android.content.Context; 14 import android.widget.AdapterView.OnItemClickListener; 15 import android.widget.ArrayAdapter; 16 import android.widget.AutoCompleteTextView; 17 18 @RunWith(WithTestDefaultsRunner.class) 19 public class ShadowAutoCompleteTextViewTest { 20 21 @Test 22 public void shouldStoreAdapter() { 23 AutoCompleteTextView autoCompleteTextView = 24 new AutoCompleteTextView(Robolectric.application); 25 ArrayAdapter<Object> adapter = new ArrayAdapter<Object>(Robolectric.application, 0); 26 27 autoCompleteTextView.setAdapter(adapter); 28 29 assertSame(adapter, autoCompleteTextView.getAdapter()); 30 } 31 32 @Test 33 public void shouldHaveDefaultThresholdOfTwo() { 34 AutoCompleteTextView autoCompleteTextView = 35 new AutoCompleteTextView(Robolectric.application); 36 37 assertEquals(2, autoCompleteTextView.getThreshold()); 38 } 39 40 @Test 41 public void shouldStoreThreshold() { 42 AutoCompleteTextView autoCompleteTextView = 43 new AutoCompleteTextView(Robolectric.application); 44 45 autoCompleteTextView.setThreshold(123); 46 47 assertEquals(123, autoCompleteTextView.getThreshold()); 48 } 49 50 @Test 51 public void shouldNotStoreThresholdLessThanOne() { 52 AutoCompleteTextView autoCompleteTextView = 53 new AutoCompleteTextView(Robolectric.application); 54 55 autoCompleteTextView.setThreshold(-1); 56 57 assertEquals(1, autoCompleteTextView.getThreshold()); 58 } 59 60 @Test 61 public void shouldStoreOnItemClickListener() { 62 AutoCompleteTextView autoCompleteTextView = 63 new AutoCompleteTextView(Robolectric.application); 64 OnItemClickListener listener = mock(OnItemClickListener.class); 65 66 autoCompleteTextView.setOnItemClickListener(listener); 67 68 assertSame(listener, autoCompleteTextView.getOnItemClickListener()); 69 } 70 71 @Test 72 public void shouldReplaceTextAndUpdateSelection() { 73 String text = "hello world"; 74 ReplaceableAutoCompleteTextView autoCompleteTextView = 75 new ReplaceableAutoCompleteTextView(Robolectric.application); 76 77 autoCompleteTextView.publicReplaceText(text); 78 79 assertEquals(text, autoCompleteTextView.getText().toString()); 80 assertEquals(text.length(), autoCompleteTextView.getSelectionStart()); 81 assertEquals(text.length(), autoCompleteTextView.getSelectionEnd()); 82 } 83 84 private static class ReplaceableAutoCompleteTextView extends AutoCompleteTextView { 85 86 public ReplaceableAutoCompleteTextView(Context context) { 87 super(context); 88 } 89 90 public void publicReplaceText(CharSequence text) { 91 replaceText(text); 92 } 93 } 94 } 95