/** * The first walkthrough. Documented on the wiki. Starts on the login, ends up navigating to a * lesson after logging in. */ @Test public void testWalkthroughLoginToDashboardToCoursesToCourseToLesson() { // Login first EditText user = solo.getEditText(0); EditText pass = solo.getEditText(1); solo.typeText(user, "*****@*****.**"); solo.typeText(pass, "password"); solo.clickOnButton(solo.getString(com.huskysoft.eduki.R.string.login)); // Need to sleep to allow the activity to finish solo.sleep(8000); solo.assertCurrentActivity("Wrong activity", MainActivity.class); // Click on the all courses button solo.clickOnActionBarItem(com.huskysoft.eduki.R.id.action_courses); solo.sleep(1000); solo.assertCurrentActivity("Did not start the Course list Activity", CoursesListActivity.class); // Wait for the courses list to appear solo.waitForView(solo.getView(com.huskysoft.eduki.R.id.courseListView)); solo.sleep(1000); List<Course> courseList = ((CoursesListActivity) solo.getCurrentActivity()).getCourseList(); assertNotSame(courseList.size(), 0); solo.clickOnText("INTRODUCTION"); solo.assertCurrentActivity("Wrong activity", CourseActivity.class); // Wait for the course page to appear solo.waitForView(solo.getView(com.huskysoft.eduki.R.id.course_activity)); solo.sleep(1000); // Click a lesson, wait for it to appear List<Lesson> lessonList = ((CourseActivity) solo.getCurrentActivity()).getLessonList(); assertNotSame(lessonList.size(), 0); solo.clickOnText(lessonList.get(0).toString()); solo.waitForView(solo.getView(com.huskysoft.eduki.R.id.lessonViewLayoutText)); solo.sleep(1000); String content = ((TextView) solo.getCurrentActivity() .findViewById(com.huskysoft.eduki.R.id.lessonViewLayoutText)) .getText() .toString(); assertFalse(content.equals("")); }
public void testAddCourseScreenOriantationChange() { ListView listView; solo.clickOnView(getActivity().findViewById(R.id.add)); solo.enterText(0, "Course"); solo.clickOnEditText(0); solo.sendKey(Solo.ENTER); solo.waitForText("THE COURSE #2", 1, 5); listView = (ListView) solo.getView(android.R.id.list); assertEquals("List view should contain 2 items before doing anything", 2, listView.getCount()); solo.setActivityOrientation(Solo.LANDSCAPE); solo.sleep(500); listView = (ListView) solo.getView(android.R.id.list); solo.sleep(3000); assertEquals("List view should't change size after oriantation change", 2, listView.getCount()); assertEquals( "SearchView should not reset.", "Course", solo.getEditText(0).getText().toString()); solo.goBack(); solo.goBack(); }
@Smoke public void testNXTMotorActionBrick() { ScriptTabActivity activity = (ScriptTabActivity) solo.getCurrentActivity(); ScriptFragment fragment = (ScriptFragment) activity.getTabFragment(ScriptTabActivity.INDEX_TAB_SCRIPTS); BrickAdapter adapter = fragment.getAdapter(); int childrenCount = adapter.getChildCountFromLastGroup(); int groupCount = adapter.getScriptCount(); assertEquals( "Incorrect number of bricks.", 2 + 1, solo.getCurrentListViews().get(0).getChildCount()); // don't forget the footer assertEquals("Incorrect number of bricks.", 1, childrenCount); ArrayList<Brick> projectBrickList = project.getSpriteList().get(0).getScript(0).getBrickList(); assertEquals("Incorrect number of bricks.", 1, projectBrickList.size()); assertEquals( "Wrong Brick instance.", projectBrickList.get(0), adapter.getChild(groupCount - 1, 0)); assertNotNull( "TextView does not exist.", solo.getText(getActivity().getString(R.string.brick_motor_action))); assertNotNull( "TextView does not exist.", solo.getText(getActivity().getString(R.string.motor_speed))); String buttonOkText = solo.getString(R.string.ok); solo.clickOnEditText(0); solo.waitForText(buttonOkText); solo.clearEditText(0); solo.enterText(0, SET_SPEED + ""); solo.clickOnButton(buttonOkText); int speed = (Integer) UiTestUtils.getPrivateField("speed", motorBrick); assertEquals("Wrong text in field.", SET_SPEED, speed); assertEquals( "Value in Brick is not updated.", SET_SPEED + "", solo.getEditText(0).getText().toString()); assertEquals( "SeekBar is at wrong position", SET_SPEED + 100, solo.getCurrentProgressBars().get(0).getProgress()); solo.setProgressBar( 0, SET_SPEED_INITIALLY + 100); // robotium doesnt go through proper function onProgressChanged() to change // value on progress bar! solo.sleep(200); speed = (Integer) UiTestUtils.getPrivateField("speed", motorBrick); assertEquals("Wrong text in field.", SET_SPEED_INITIALLY, speed); assertEquals( "Value in Brick is not updated.", SET_SPEED_INITIALLY + "", solo.getEditText(0).getText().toString()); assertEquals( "SeekBar is at wrong position", SET_SPEED_INITIALLY + 100, solo.getCurrentProgressBars().get(0).getProgress()); solo.clickOnButton(0); int speedCounter = (Integer) UiTestUtils.getPrivateField("speed", motorBrick); assertEquals("Wrong text in field.", speedCounter, speed - 1); assertEquals( "Value in Brick is not updated.", speed - 1 + "", solo.getEditText(0).getText().toString()); assertEquals( "SeekBar is at wrong position", speed - 1 + 100, solo.getCurrentProgressBars().get(0).getProgress()); solo.clickOnButton(1); speedCounter = (Integer) UiTestUtils.getPrivateField("speed", motorBrick); assertEquals("Wrong text in field.", speedCounter, speed); assertEquals( "Value in Brick is not updated.", speed + "", solo.getEditText(0).getText().toString()); assertEquals( "SeekBar is at wrong position", speed + 100, solo.getCurrentProgressBars().get(0).getProgress()); solo.setProgressBar(0, 1); solo.clickOnButton(0); solo.clickOnButton(0); speed = (Integer) UiTestUtils.getPrivateField("speed", motorBrick); assertEquals("Wrong text in field.", speed, MIN_SPEED); assertEquals( "Value in Brick is not updated.", speed + "", solo.getEditText(0).getText().toString()); assertEquals( "SeekBar is at wrong position", speed + 100, solo.getCurrentProgressBars().get(0).getProgress()); solo.setProgressBar(0, MAX_SPEED + 100); solo.clickOnButton(1); solo.clickOnButton(1); speed = (Integer) UiTestUtils.getPrivateField("speed", motorBrick); assertEquals("Wrong text in field.", speed, MAX_SPEED); assertEquals( "Value in Brick is not updated.", speed + "", solo.getEditText(0).getText().toString()); assertEquals( "SeekBar is at wrong position", speed + 100, solo.getCurrentProgressBars().get(0).getProgress()); String[] motors = getActivity().getResources().getStringArray(R.array.nxt_motor_chooser); assertTrue("Spinner items list too short!", motors.length == 4); Spinner currentSpinner = solo.getCurrentSpinners().get(0); solo.pressSpinnerItem(0, 0); solo.waitForActivity(ScriptTabActivity.class.getSimpleName()); assertEquals("Wrong item in spinner!", motors[0], currentSpinner.getSelectedItem()); solo.pressSpinnerItem(0, 1); solo.waitForActivity(ScriptTabActivity.class.getSimpleName()); assertEquals("Wrong item in spinner!", motors[1], currentSpinner.getSelectedItem()); solo.pressSpinnerItem(0, 1); solo.waitForActivity(ScriptTabActivity.class.getSimpleName()); assertEquals("Wrong item in spinner!", motors[2], currentSpinner.getSelectedItem()); solo.pressSpinnerItem(0, 1); solo.waitForActivity(ScriptTabActivity.class.getSimpleName()); assertEquals("Wrong item in spinner!", motors[3], currentSpinner.getSelectedItem()); }