1 package com.hughes.android.dictionary;
\r
3 import android.test.ActivityInstrumentationTestCase2;
\r
5 public class DictionaryActivityTest extends ActivityInstrumentationTestCase2<DictionaryActivity> {
\r
7 public DictionaryActivityTest() {
\r
8 super(DictionaryActivity.class.getPackage().getName(), DictionaryActivity.class);
\r
11 public void testRunAndFinish() {
\r
12 final DictionaryActivity dict = getActivity();
\r
16 abstract class NotifyRunnable implements Runnable {
\r
17 boolean finished = false;
\r
18 public final void run() {
\r
19 assertEquals(false, finished);
\r
21 synchronized (this) {
\r
26 public void waitForFinish() throws InterruptedException {
\r
27 synchronized (this) {
\r
33 getActivity().waitForSearchEnd();
\r
35 protected abstract void run2();
\r
38 private void postAndWait(final NotifyRunnable notifyRunnable) throws Exception {
\r
39 getActivity().uiHandler.post(notifyRunnable);
\r
40 notifyRunnable.waitForFinish();
\r
43 public void resetDictionary() throws Exception {
\r
44 final DictionaryActivity dict = getActivity();
\r
46 if (dict.languageList.languageData.language == Language.EN) {
\r
47 postAndWait(switchLangRunnable());
\r
49 assertEquals(Language.DE, dict.languageList.languageData.language);
\r
51 postAndWait(new NotifyRunnable() {
\r
52 protected void run2() {
\r
53 dict.searchText.setText("");
\r
54 dict.onSearchTextChange("");
\r
59 public void testSwitchLanguage() throws Exception {
\r
60 final DictionaryActivity dict = getActivity();
\r
63 final NotifyRunnable switchLang = switchLangRunnable();
\r
65 postAndWait(switchLang);
\r
66 assertEquals(Language.EN, dict.languageList.languageData.language);
\r
67 assertEquals("EN", dict.langButton.getText().toString());
\r
69 postAndWait(switchLang);
\r
70 assertEquals(Language.DE, dict.languageList.languageData.language);
\r
71 assertEquals("DE", dict.langButton.getText().toString());
\r
76 public void testUpDownArrows() throws Exception {
\r
77 final DictionaryActivity dict = getActivity();
\r
79 assertEquals(0, dict.getSelectedItemPosition());
\r
81 final NotifyRunnable upButton = new NotifyRunnable() {
\r
82 protected void run2() {
\r
86 final NotifyRunnable downButton = new NotifyRunnable() {
\r
87 protected void run2() {
\r
88 dict.onDownButton();
\r
92 dict.getListView().requestFocus();
\r
93 assertTrue(dict.getListView().isFocused());
\r
95 String word1 = "-1";
\r
96 String word2 = "-14";
\r
97 String word3 = "-15";
\r
99 postAndWait(upButton);
\r
100 assertEquals(0, dict.getSelectedItemPosition());
\r
101 assertEquals(word1, dict.searchText.getText().toString());
\r
103 postAndWait(downButton);
\r
104 assertEquals(2, dict.getSelectedItemPosition());
\r
105 assertEquals(word2, dict.searchText.getText().toString());
\r
107 postAndWait(downButton);
\r
108 assertEquals(4, dict.getSelectedItemPosition());
\r
109 assertEquals(word3, dict.searchText.getText().toString());
\r
111 postAndWait(upButton);
\r
112 assertEquals(2, dict.getSelectedItemPosition());
\r
113 assertEquals(word2, dict.searchText.getText().toString());
\r
115 postAndWait(upButton);
\r
116 assertEquals(0, dict.getSelectedItemPosition());
\r
117 assertEquals(word1, dict.searchText.getText().toString());
\r
119 postAndWait(upButton);
\r
120 assertEquals(0, dict.getSelectedItemPosition());
\r
122 postAndWait(downButton);
\r
123 assertEquals(2, dict.getSelectedItemPosition());
\r
128 private NotifyRunnable switchLangRunnable() {
\r
129 final NotifyRunnable switchLang = new NotifyRunnable() {
\r
130 public void run2() {
\r
131 getActivity().onLanguageButton();
\r