1 package com.hughes.android.dictionary;
\r
3 import com.hughes.android.dictionary.engine.Language;
\r
5 import android.test.ActivityInstrumentationTestCase2;
\r
7 public class DictionaryActivityTest extends ActivityInstrumentationTestCase2<DictionaryActivity> {
\r
9 public DictionaryActivityTest() {
\r
10 super(DictionaryActivity.class.getPackage().getName(), DictionaryActivity.class);
\r
13 public void testRunAndFinish() {
\r
14 final DictionaryActivity dict = getActivity();
\r
18 abstract class NotifyRunnable implements Runnable {
\r
19 boolean finished = false;
\r
20 public final void run() {
\r
21 assertEquals(false, finished);
\r
23 synchronized (this) {
\r
28 public void waitForFinish() throws InterruptedException {
\r
29 synchronized (this) {
\r
35 getActivity().waitForSearchEnd();
\r
37 protected abstract void run2();
\r
40 private void postAndWait(final NotifyRunnable notifyRunnable) throws Exception {
\r
41 getActivity().uiHandler.post(notifyRunnable);
\r
42 notifyRunnable.waitForFinish();
\r
45 public void resetDictionary() throws Exception {
\r
46 final DictionaryActivity dict = getActivity();
\r
48 if (dict.languageList.languageData.language == Language.en) {
\r
49 postAndWait(switchLangRunnable());
\r
51 assertEquals(Language.de, dict.languageList.languageData.language);
\r
53 postAndWait(new NotifyRunnable() {
\r
54 protected void run2() {
\r
55 dict.searchText.setText("");
\r
56 dict.onSearchTextChange("");
\r
61 public void testSwitchLanguage() throws Exception {
\r
62 final DictionaryActivity dict = getActivity();
\r
65 final NotifyRunnable switchLang = switchLangRunnable();
\r
67 postAndWait(switchLang);
\r
68 assertEquals(Language.en, dict.languageList.languageData.language);
\r
69 assertEquals("EN", dict.langButton.getText().toString());
\r
71 postAndWait(switchLang);
\r
72 assertEquals(Language.de, dict.languageList.languageData.language);
\r
73 assertEquals("DE", dict.langButton.getText().toString());
\r
78 public void testUpDownArrows() throws Exception {
\r
79 final DictionaryActivity dict = getActivity();
\r
81 assertEquals(0, dict.getSelectedItemPosition());
\r
83 final NotifyRunnable upButton = new NotifyRunnable() {
\r
84 protected void run2() {
\r
88 final NotifyRunnable downButton = new NotifyRunnable() {
\r
89 protected void run2() {
\r
90 dict.onDownButton();
\r
94 dict.getListView().requestFocus();
\r
95 assertTrue(dict.getListView().isFocused());
\r
97 String word1 = "-1";
\r
98 String word2 = "-14";
\r
99 String word3 = "-15";
\r
101 postAndWait(upButton);
\r
102 assertEquals(0, dict.getSelectedItemPosition());
\r
103 assertEquals(word1, dict.searchText.getText().toString());
\r
105 postAndWait(downButton);
\r
106 assertEquals(2, dict.getSelectedItemPosition());
\r
107 assertEquals(word2, dict.searchText.getText().toString());
\r
109 postAndWait(downButton);
\r
110 assertEquals(4, dict.getSelectedItemPosition());
\r
111 assertEquals(word3, dict.searchText.getText().toString());
\r
113 postAndWait(upButton);
\r
114 assertEquals(2, dict.getSelectedItemPosition());
\r
115 assertEquals(word2, dict.searchText.getText().toString());
\r
117 postAndWait(upButton);
\r
118 assertEquals(0, dict.getSelectedItemPosition());
\r
119 assertEquals(word1, dict.searchText.getText().toString());
\r
121 postAndWait(upButton);
\r
122 assertEquals(0, dict.getSelectedItemPosition());
\r
124 postAndWait(downButton);
\r
125 assertEquals(2, dict.getSelectedItemPosition());
\r
130 private NotifyRunnable switchLangRunnable() {
\r
131 final NotifyRunnable switchLang = new NotifyRunnable() {
\r
132 public void run2() {
\r
133 getActivity().onLanguageButton();
\r