package at.tugraz.examreminder.ui; import android.test.ActivityInstrumentationTestCase2; import android.view.View; import android.view.ViewGroup; import android.widget.ListView; import android.widget.TextView; import at.tugraz.examreminder.R; import at.tugraz.examreminder.core.Course; import at.tugraz.examreminder.core.CourseContainer; import at.tugraz.examreminder.core.Exam; import at.tugraz.examreminder.crawler.SimpleMockCrawler; import at.tugraz.examreminder.service.DailyListener; import at.tugraz.examreminder.service.UpdateService; import com.jayway.android.robotium.solo.Solo; import java.util.*; public class ExamsTest extends ActivityInstrumentationTestCase2<MainActivity> { private Solo solo; public ExamsTest() { super(MainActivity.class); } @Override protected void setUp() throws Exception { super.setUp(); init(); UpdateService.setCrawlerToUse(SimpleMockCrawler.class); solo = new Solo(getInstrumentation(), getActivity()); DailyListener.setNewPendingIntentAndCancelOld(getActivity(), null); //Cancel schedule } @Override protected void tearDown() throws Exception { UpdateService.setCrawlerToUse(null); super.tearDown(); } public void testExamsList() { solo.clickOnText("Exams"); View exam_view; exam_view = solo.getView(R.id.exam_item, 0); assertEquals("Course #1", ((TextView)exam_view.findViewById(R.id.course_text)).getText()); assertEquals("0", ((TextView)exam_view.findViewById(R.id.days_text)).getText()); exam_view = solo.getView(R.id.exam_item, 1); assertEquals("Course #1", ((TextView)exam_view.findViewById(R.id.course_text)).getText()); assertEquals("2", ((TextView)exam_view.findViewById(R.id.days_text)).getText()); exam_view = solo.getView(R.id.exam_item, 2); assertEquals("Course #1", ((TextView)exam_view.findViewById(R.id.course_text)).getText()); assertEquals("12", ((TextView)exam_view.findViewById(R.id.days_text)).getText()); } public void testExamDetailList() { solo.clickInList(1); solo.goBack(); solo.clickOnText("Exams"); solo.sleep(100); //solo.clickInList(1); solo.clickOnText("Course #1", 2); solo.sleep(100); assertEquals("Mr. Professor", ((TextView)solo.getView(R.id.exam_lecturer)).getText()); assertEquals("Der Höhrsaal", ((TextView)solo.getView(R.id.exam_place)).getText()); solo.goBack(); } protected void init() { CourseContainer.instance().clear(); Course course = new Course(); course.name = "Course #1"; course.lecturer = "Our leader"; course.number = "course.101"; course.term = "SS"; course.type = "VO"; Course course2 = new Course(); course2.name = "Course #2"; course2.lecturer = "Our leader"; course2.number = "course.102"; course2.term = "SS"; course2.type = "VO"; Calendar now = Calendar.getInstance(); int year = now.get(Calendar.YEAR); int month = now.get(Calendar.MONTH); int day = now.get(Calendar.DAY_OF_MONTH); SortedSet<Exam> exams = new TreeSet<Exam>(); Calendar calender = new GregorianCalendar(); Exam exam = new Exam(course); exam.lecturer = "Mr. Professor"; exam.examinar = "Mr. Aufsicht"; exam.place = "Der Höhrsaal"; calender.set(year, month, day+2,12,0); exam.setFrom((GregorianCalendar)calender.clone()); calender.set(year, month, day+2,14,0); exam.setTo((GregorianCalendar)calender.clone()); exams.add(exam.clone()); calender.set(year, month, day+12,12,0); exam.setFrom((GregorianCalendar)calender.clone()); calender.set(year, month, day+12,14,0); exam.setTo((GregorianCalendar)calender.clone()); exams.add(exam.clone()); calender.set(year, month, day,10,0); exam.setFrom((GregorianCalendar)calender.clone()); calender.set(year, month, day,11,0); exam.setTo((GregorianCalendar)calender.clone()); exams.add(exam.clone()); course.exams = exams; course2.exams = new TreeSet<Exam>(); CourseContainer.instance().add(course); CourseContainer.instance().add(course2); } }