Home | History | Annotate | Download | only in shadows
      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