1f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphreypackage com.xtremelabs.robolectric.shadows;
2f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphrey
3f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphreyimport org.junit.Before;
4f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphreyimport org.junit.Test;
5f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphreyimport org.junit.runner.RunWith;
6f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphrey
7f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphreyimport android.app.Activity;
8f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphreyimport android.view.inputmethod.InputMethodManager;
9f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphrey
10f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphreyimport com.xtremelabs.robolectric.Robolectric;
11f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphreyimport com.xtremelabs.robolectric.WithTestDefaultsRunner;
12f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphrey
13f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphreyimport static org.hamcrest.CoreMatchers.equalTo;
14f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphreyimport static org.junit.Assert.assertThat;
15f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphrey
16f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphrey@RunWith(WithTestDefaultsRunner.class)
17f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphreypublic class InputMethodManagerTest {
18f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphrey
19f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphrey	private InputMethodManager manager;
20f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphrey	private ShadowInputMethodManager shadow;
21f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphrey
22f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphrey    @Before
23f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphrey    public void setUp() throws Exception {
24f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphrey    	manager = (InputMethodManager) Robolectric.application.getSystemService(Activity.INPUT_METHOD_SERVICE);
25f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphrey    	shadow = Robolectric.shadowOf(manager);
26f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphrey    }
27f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphrey
28f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphrey    @Test
29f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphrey    public void shouldRecordSoftInputVisibility() {
30f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphrey    	assertThat(shadow.isSoftInputVisible(), equalTo(false));
31f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphrey
32f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphrey    	manager.showSoftInput(null, 0);
33f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphrey       	assertThat(shadow.isSoftInputVisible(), equalTo(true));
34f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphrey
35f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphrey    	manager.hideSoftInputFromWindow(null, 0);
36f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphrey       	assertThat(shadow.isSoftInputVisible(), equalTo(false));
37f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphrey    }
38f02412fe85c5ff4a011793b408fb33bafb122340Rich Humphrey}
39