@Test @RequiresDevice public void testConstruct () throws Exception { final ConditionVariable cv = new ConditionVariable(); Handler handler = new Handler(Looper.getMainLooper()); handler.post(new Runnable() { @Override public void run() { VideoPlayerView vp = new VideoPlayerView(getInstrumentation().getTargetContext()); assertNotNull("VideoPlayerView should not be null after constructing", vp); cv.open(); } }); boolean success = cv.block(30000); assertTrue("Condition variable was not opened properly: VideoPlayer was not created", success); }
/** * Verify that the "Silence during presentation" setting is correctly stored and restored * on activity loading. * * @throws InterruptedException If sleep times fail */ @Test @LargeTest @RequiresDevice public void verifySilenceDuringPresentationStoring() throws InterruptedException { onView(withId(R.id.silenceDuringPresentation)) .perform(click()); Thread.sleep(1000); onView(withId(R.id.silenceDuringPresentation)) .check(matches(isChecked())); settingsActivityRule.getActivity().onStop(); settingsActivityRule.getActivity().finish(); Thread.sleep(1000); assertThat(settingsActivityRule.getActivity().isDestroyed(), is(true)); settingsActivityRule.launchActivity(null); onView(withId(R.id.silenceDuringPresentation)) .check(matches(isChecked())) .perform(click()); Thread.sleep(1000); onView(withId(R.id.silenceDuringPresentation)) .check(matches(isNotChecked())); settingsActivityRule.getActivity().onStop(); settingsActivityRule.getActivity().finish(); Thread.sleep(1000); assertThat(settingsActivityRule.getActivity().isDestroyed(), is(true)); settingsActivityRule.launchActivity(null); onView(withId(R.id.silenceDuringPresentation)).check(matches(isNotChecked())); }
/** * Verify that the "Use volume keys for navigation" setting is correctly stored and restored * on activity loading. * * @throws InterruptedException If sleep times fail */ @Test @LargeTest @RequiresDevice public void verifyUseVolumeKeysForNavigationStoring() throws InterruptedException { onView(withId(R.id.useVolumeKeysForNavigation)) .perform(click()); Thread.sleep(1000); onView(withId(R.id.useVolumeKeysForNavigation)) .check(matches(isNotChecked())); settingsActivityRule.getActivity().onStop(); settingsActivityRule.getActivity().finish(); Thread.sleep(1000); assertThat(settingsActivityRule.getActivity().isDestroyed(), is(true)); settingsActivityRule.launchActivity(null); onView(withId(R.id.useVolumeKeysForNavigation)) .check(matches(isNotChecked())) .perform(click()); Thread.sleep(1000); onView(withId(R.id.useVolumeKeysForNavigation)) .check(matches(isChecked())); settingsActivityRule.getActivity().onStop(); settingsActivityRule.getActivity().finish(); Thread.sleep(1000); assertThat(settingsActivityRule.getActivity().isDestroyed(), is(true)); settingsActivityRule.launchActivity(null); onView(withId(R.id.useVolumeKeysForNavigation)).check(matches(isChecked())); }
@RequiresDevice @Test(timeout = 60000) public void tokenizesAndroidPay() { onDevice(withText("Add Payment Method")).waitForEnabled().perform(click()); onDevice(withText("Android Pay")).perform(click()); onDevice(withText("CONTINUE")).perform(click()); getNonceDetails().check(text(containsString("Underlying Card Last Two"))); onDevice(withText("Purchase")).perform(click()); onDevice(withTextStartingWith("created")).check(text(endsWith("authorized"))); }
@Test @RequiresDevice public void testRequiresDevice() { Log.d("Test Filters", "This test requires a device"); Activity activity = activityTestRule.getActivity(); assertNotNull("MainActivity is not available", activity); }
@RequiresDevice @Test(timeout = 60000) public void tokenizesAndroidPay() { onDevice(withText("Android Pay")).perform(click()); onDevice(withText("CONTINUE")).perform(click()); getNonceDetails().check(text(containsString("Underlying Card Last Two"))); onDevice(withText("Create a Transaction")).perform(click()); onDevice(withTextStartingWith("created")).check(text(endsWith("authorized"))); }
@Test @RequiresDevice public void testInstructionsBackcase() { goToMainScreen(); gotoSurveyForm(); clickExternalSourceButton(0); sleep(1000); mDevice.waitForIdle(); TestUtil.sleep(1000); String id = Constants.FLUORIDE_ID.substring( Constants.FLUORIDE_ID.lastIndexOf("-") + 1, Constants.FLUORIDE_ID.length()); takeScreenshot(id, -1); mDevice.waitForIdle(); // onView(withText(getString(mActivityTestRule.getActivity(), R.string.instructions))).perform(click()); // // for (int i = 0; i < 17; i++) { // // try { // takeScreenshot(id, i); // // onView(withId(R.id.image_pageRight)).perform(click()); // // } catch (Exception e) { // TestUtil.sleep(600); // Espresso.pressBack(); // break; // } // } }
@Test @RequiresDevice public void testFreeChlorine() { saveCalibration("TestValidChlorine", Constants.FREE_CHLORINE_ID_2); onView(withId(R.id.actionSettings)).perform(click()); onView(withText(R.string.about)).check(matches(isDisplayed())); }
@Test @RequiresDevice public void startStriptest() { activateTestMode(); test5in1(false); testSoilNitrogen(false); testMerckPH(false); testNitrate100(); test5in1(true); testSoilNitrogen(true); testMerckPH(true); }
@Test @RequiresDevice public void testPrepare () throws Exception { final Activity activity = waitForActivityStart(null); assertNotNull("Started activity should not be null!", activity); WebViewApp.setCurrentApp(new MockWebViewApp() { @Override public boolean sendEvent(Enum eventCategory, Enum eventId, Object... params) { super.sendEvent(eventCategory, eventId, params); DeviceLog.debug("Event: " + eventCategory.name() + ", " + eventId.name()); if (eventCategory.equals(WebViewEventCategory.VIDEOPLAYER) && eventId.equals(VideoPlayerEvent.PREPARED)) { if (CONDITION_VARIABLE != null) CONDITION_VARIABLE.open(); } return true; } }); final String validUrl = TestUtilities.getTestServerAddress() + "/blue_test_trailer.mp4"; final Handler handler = new Handler(Looper.getMainLooper()); final ConditionVariable viewAddCV = new ConditionVariable(); handler.post(new Runnable() { @Override public void run() { ((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW = new VideoPlayerView(getInstrumentation().getTargetContext()); activity.addContentView(((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); viewAddCV.open(); } }); boolean success = viewAddCV.block(3000); assertTrue("ConditionVariable did not open in view add", success); MockWebViewApp mockWebViewApp = (MockWebViewApp)WebViewApp.getCurrentApp(); ConditionVariable prepareCV = new ConditionVariable(); mockWebViewApp.CONDITION_VARIABLE = prepareCV; DeviceLog.debug("URL_GIVEN: " + validUrl); ((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW.prepare(validUrl, 1f, 0); success = prepareCV.block(30000); assertTrue("Condition Variable was not opened: PREPARE or PREPARE ERROR event was not received", success); assertTrue("Didn't get activity finish", waitForActivityFinish(activity)); }
@Test @RequiresDevice public void testPrepareAndPlay () throws Exception { final Activity activity = waitForActivityStart(null); WebViewApp.setCurrentApp(new MockWebViewApp() { private boolean allowEvents = true; @Override public boolean sendEvent(Enum eventCategory, Enum eventId, Object... params) { super.sendEvent(eventCategory, eventId, params); if ("ON_FOCUS_GAINED".equals(eventId.name()) || "ON_FOCUS_LOST".equals(eventId.name())) { return true; } if (allowEvents) { EVENT_CATEGORIES.add(eventCategory); EVENTS.add(eventId); EVENT_PARAMS = params; EVENT_COUNT++; DeviceLog.debug(eventId.name()); if (eventCategory.equals(WebViewEventCategory.VIDEOPLAYER) && eventId.equals(VideoPlayerEvent.PREPARED)) { VIDEOPLAYER_VIEW.play(); } if (eventCategory.equals(WebViewEventCategory.VIDEOPLAYER) && eventId.equals(VideoPlayerEvent.COMPLETED)) { allowEvents = false; CONDITION_VARIABLE.open(); } } return true; } }); final String validUrl = TestUtilities.getTestServerAddress() + "/blue_test_trailer.mp4"; final Handler handler = new Handler(Looper.getMainLooper()); final ConditionVariable viewAddCV = new ConditionVariable(); handler.post(new Runnable() { @Override public void run() { ((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW = new VideoPlayerView(getInstrumentation().getTargetContext()); activity.addContentView(((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); viewAddCV.open(); } }); boolean success = viewAddCV.block(3000); assertTrue("ConditionVariable did not open in view add", success); final MockWebViewApp mockWebViewApp = (MockWebViewApp)WebViewApp.getCurrentApp(); ConditionVariable cv = new ConditionVariable(); mockWebViewApp.CONDITION_VARIABLE = cv; DeviceLog.debug("URL_GIVEN: " + validUrl); ((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW.prepare(validUrl, 1f, 0); success = cv.block(30000); assertTrue("Condition Variable was not opened: COMPLETED or PREPARE ERROR event was not received", success); assertEquals("Event category should be videoplayer category", WebViewEventCategory.VIDEOPLAYER, mockWebViewApp.EVENT_CATEGORIES.get(0)); assertEquals("Event ID should be completed", VideoPlayerEvent.COMPLETED, mockWebViewApp.EVENTS.get(mockWebViewApp.EVENTS.size() - 1)); assertEquals("The video url and the url received from the completed event should be the same", validUrl, mockWebViewApp.EVENT_PARAMS[0]); assertTrue("Didn't get activity finish", waitForActivityFinish(activity)); }
@Test @RequiresDevice public void testPrepareAndPlayNonExistingUrl () throws Exception { final Activity activity = waitForActivityStart(null); WebViewApp.setCurrentApp(new MockWebViewApp() { private boolean allowEvents = true; @Override public boolean sendEvent(Enum eventCategory, Enum eventId, Object... params) { super.sendEvent(eventCategory, eventId, params); if ("ON_FOCUS_GAINED".equals(eventId.name()) || "ON_FOCUS_LOST".equals(eventId.name())) { return true; } if (allowEvents) { EVENT_CATEGORIES.add(eventCategory); EVENTS.add(eventId); EVENT_PARAMS = params; EVENT_COUNT++; DeviceLog.debug(eventId.name()); if (eventCategory.equals(WebViewEventCategory.VIDEOPLAYER) && eventId.equals(VideoPlayerEvent.PREPARED)) { VIDEOPLAYER_VIEW.play(); } if (eventCategory.equals(WebViewEventCategory.VIDEOPLAYER) && eventId.equals(VideoPlayerEvent.GENERIC_ERROR)) { allowEvents = false; CONDITION_VARIABLE.open(); } } return true; } }); final String invalidUrl = TestUtilities.getTestServerAddress() + "/blue_test_trailer-invalid.mp4"; final Handler handler = new Handler(Looper.getMainLooper()); final ConditionVariable viewAddCV = new ConditionVariable(); handler.post(new Runnable() { @Override public void run() { ((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW = new VideoPlayerView(getInstrumentation().getTargetContext()); activity.addContentView(((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); viewAddCV.open(); } }); boolean success = viewAddCV.block(3000); assertTrue("ConditionVariable did not open in view add", success); final MockWebViewApp mockWebViewApp = (MockWebViewApp)WebViewApp.getCurrentApp(); ConditionVariable cv = new ConditionVariable(); mockWebViewApp.CONDITION_VARIABLE = cv; DeviceLog.debug("URL_GIVEN: " + invalidUrl); ((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW.prepare(invalidUrl, 1f, 0); success = cv.block(30000); assertTrue("Condition Variable was not opened: VIDEOPLAYER GENERIC ERROR or PREPARE ERROR was not received", success); assertEquals("Event category should be videoplayer category", WebViewEventCategory.VIDEOPLAYER, mockWebViewApp.EVENT_CATEGORIES.get(0)); assertEquals("Event ID should be generic error", VideoPlayerEvent.GENERIC_ERROR, mockWebViewApp.EVENTS.get(0)); assertEquals("The video url and the url received from the completed event should be the same", invalidUrl, mockWebViewApp.EVENT_PARAMS[0]); assertTrue("Didn't get activity finish", waitForActivityFinish(activity)); }
@Test @RequiresDevice public void testPreparePlaySeekToPause () throws Exception { final Activity activity = waitForActivityStart(null); WebViewApp.setCurrentApp(new MockWebViewApp() { private boolean allowEvents = true; @Override public boolean sendEvent(Enum eventCategory, Enum eventId, Object... params) { super.sendEvent(eventCategory, eventId, params); if ("ON_FOCUS_GAINED".equals(eventId.name()) || "ON_FOCUS_LOST".equals(eventId.name())) { return true; } EVENT_CATEGORIES.add(eventCategory); EVENTS.add(eventId); EVENT_PARAMS = params; EVENT_COUNT++; if (eventCategory.equals(WebViewEventCategory.VIDEOPLAYER) && eventId.equals(VideoPlayerEvent.PREPARED)) { VIDEOPLAYER_VIEW.play(); } if (!EVENT_TRIGGERED && eventCategory.equals(WebViewEventCategory.VIDEOPLAYER) && eventId.equals(VideoPlayerEvent.PROGRESS)) { EVENT_TRIGGERED = true; VIDEOPLAYER_VIEW.seekTo(4080); VIDEOPLAYER_VIEW.pause(); CONDITION_VARIABLE.open(); allowEvents = false; } return true; } }); final String validUrl = TestUtilities.getTestServerAddress() + "/blue_test_trailer.mp4"; final Handler handler = new Handler(Looper.getMainLooper()); final ConditionVariable viewAddCV = new ConditionVariable(); handler.post(new Runnable() { @Override public void run() { ((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW = new VideoPlayerView(getInstrumentation().getTargetContext()); activity.addContentView(((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); viewAddCV.open(); } }); boolean success = viewAddCV.block(3000); assertTrue("ConditionVariable did not open in view add", success); final MockWebViewApp mockWebViewApp = (MockWebViewApp)WebViewApp.getCurrentApp(); ConditionVariable cv = new ConditionVariable(); mockWebViewApp.CONDITION_VARIABLE = cv; DeviceLog.debug("URL_GIVEN: " + validUrl); ((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW.prepare(validUrl, 1f, 0); success = cv.block(30000); assertTrue("Condition Variable was not opened: PROGRESS or PREPARE ERROR event was not received", success); assertTrue("Current position should be over 300ms", mockWebViewApp.VIDEOPLAYER_VIEW.getCurrentPosition() > 300); int diff = Math.abs(4080 - mockWebViewApp.VIDEOPLAYER_VIEW.getCurrentPosition()); DeviceLog.debug("Difference: " + diff); assertTrue("Difference between expected position and actual position should be less than 300ms", diff < 300); assertTrue("Didn't get activity finish", waitForActivityFinish(activity)); }
@Test @RequiresDevice public void testPreparePlayStop () throws Exception { final Activity activity = waitForActivityStart(null); WebViewApp.setCurrentApp(new MockWebViewApp() { @Override public boolean sendEvent(Enum eventCategory, Enum eventId, Object... params) { super.sendEvent(eventCategory, eventId, params); if ("ON_FOCUS_GAINED".equals(eventId.name()) || "ON_FOCUS_LOST".equals(eventId.name())) { return true; } EVENT_CATEGORIES.add(eventCategory); EVENTS.add(eventId); EVENT_PARAMS = params; EVENT_COUNT++; if (eventCategory.equals(WebViewEventCategory.VIDEOPLAYER) && eventId.equals(VideoPlayerEvent.PREPARED)) { VIDEOPLAYER_VIEW.play(); } if (!EVENT_TRIGGERED && eventCategory.equals(WebViewEventCategory.VIDEOPLAYER) && eventId.equals(VideoPlayerEvent.PROGRESS)) { if (EVENT_COUNT > 8) { EVENT_TRIGGERED = true; VIDEOPLAYER_VIEW.stop(); CONDITION_VARIABLE.open(); } } return true; } }); final String validUrl = TestUtilities.getTestServerAddress() + "/blue_test_trailer.mp4"; final Handler handler = new Handler(Looper.getMainLooper()); final ConditionVariable viewAddCV = new ConditionVariable(); handler.post(new Runnable() { @Override public void run() { ((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW = new VideoPlayerView(getInstrumentation().getTargetContext()); activity.addContentView(((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); viewAddCV.open(); } }); boolean success = viewAddCV.block(3000); assertTrue("ConditionVariable did not open in view add", success); final MockWebViewApp mockWebViewApp = (MockWebViewApp)WebViewApp.getCurrentApp(); ConditionVariable cv = new ConditionVariable(); mockWebViewApp.CONDITION_VARIABLE = cv; ((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW.prepare(validUrl, 1f, 0); success = cv.block(30000); assertTrue("Condition Variable was not opened: PREPARED or PREPARE ERROR event was not received", success); assertFalse("Videoplayer shoudn't be in isPlaying state", mockWebViewApp.VIDEOPLAYER_VIEW.isPlaying()); assertTrue("Didn't get activity finish", waitForActivityFinish(activity)); }
@Test @RequiresDevice public void testPreparePlaySetVolumePause () throws Exception { final Activity activity = waitForActivityStart(null); WebViewApp.setCurrentApp(new MockWebViewApp() { @Override public boolean sendEvent(Enum eventCategory, Enum eventId, Object... params) { super.sendEvent(eventCategory, eventId, params); if ("ON_FOCUS_GAINED".equals(eventId.name()) || "ON_FOCUS_LOST".equals(eventId.name())) { return true; } EVENT_CATEGORIES.add(eventCategory); EVENTS.add(eventId); EVENT_PARAMS = params; EVENT_COUNT++; if (eventCategory.equals(WebViewEventCategory.VIDEOPLAYER) && eventId.equals(VideoPlayerEvent.PREPARED)) { VIDEOPLAYER_VIEW.play(); } if (!EVENT_TRIGGERED && eventCategory.equals(WebViewEventCategory.VIDEOPLAYER) && eventId.equals(VideoPlayerEvent.PROGRESS)) { if (EVENT_COUNT > 8) { EVENT_TRIGGERED = true; VIDEOPLAYER_VIEW.setVolume(0.666f); VIDEOPLAYER_VIEW.pause(); CONDITION_VARIABLE.open(); } } return true; } }); final String validUrl = TestUtilities.getTestServerAddress() + "/blue_test_trailer.mp4"; final Handler handler = new Handler(Looper.getMainLooper()); final ConditionVariable viewAddCV = new ConditionVariable(); handler.post(new Runnable() { @Override public void run() { ((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW = new VideoPlayerView(getInstrumentation().getTargetContext()); activity.addContentView(((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); viewAddCV.open(); } }); boolean success = viewAddCV.block(3000); assertTrue("ConditionVariable did not open in view add", success); final MockWebViewApp mockWebViewApp = (MockWebViewApp)WebViewApp.getCurrentApp(); ConditionVariable cv = new ConditionVariable(); mockWebViewApp.CONDITION_VARIABLE = cv; ((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW.prepare(validUrl, 1f, 0); success = cv.block(30000); assertTrue("Condition Variable was not opened: PREPARED or PREPARE ERROR event was not received", success); assertFalse("Videoplayer shouldn't be in isPlaying state", mockWebViewApp.VIDEOPLAYER_VIEW.isPlaying()); assertEquals("getVolume should return the same value as what was set as volume", 0.666f, mockWebViewApp.VIDEOPLAYER_VIEW.getVolume()); assertTrue("Didn't get activity finish", waitForActivityFinish(activity)); }
@Test @RequiresDevice public void testSetProgressInterval () throws Exception { final Activity activity = waitForActivityStart(null); WebViewApp.setCurrentApp(new MockWebViewApp() { @Override public boolean sendEvent(Enum eventCategory, Enum eventId, Object... params) { super.sendEvent(eventCategory, eventId, params); if ("ON_FOCUS_GAINED".equals(eventId.name()) || "ON_FOCUS_LOST".equals(eventId.name())) { return true; } EVENT_CATEGORIES.add(eventCategory); EVENTS.add(eventId); EVENT_PARAMS = params; EVENT_COUNT++; if (eventId.equals(VideoPlayerEvent.PROGRESS)) { EVENT_POSITIONS.add(System.currentTimeMillis()); } if (eventCategory.equals(WebViewEventCategory.VIDEOPLAYER) && eventId.equals(VideoPlayerEvent.PREPARED)) { VIDEOPLAYER_VIEW.play(); } else if (!EVENT_TRIGGERED && eventCategory.equals(WebViewEventCategory.VIDEOPLAYER) && eventId.equals(VideoPlayerEvent.PROGRESS)) { if (EVENT_COUNT > 12) { EVENT_TRIGGERED = true; VIDEOPLAYER_VIEW.pause(); CONDITION_VARIABLE.open(); } } return true; } }); final String validUrl = TestUtilities.getTestServerAddress() + "/blue_test_trailer.mp4"; final Handler handler = new Handler(Looper.getMainLooper()); final ConditionVariable viewAddCV = new ConditionVariable(); handler.post(new Runnable() { @Override public void run() { ((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW = new VideoPlayerView(getInstrumentation().getTargetContext()); activity.addContentView(((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); viewAddCV.open(); } }); boolean success = viewAddCV.block(3000); assertTrue("ConditionVariable did not open in view add", success); final MockWebViewApp mockWebViewApp = (MockWebViewApp)WebViewApp.getCurrentApp(); ConditionVariable cv = new ConditionVariable(); mockWebViewApp.CONDITION_VARIABLE = cv; ((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW.setProgressEventInterval(300); ((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW.prepare(validUrl, 1f, 0); success = cv.block(30000); assertTrue("Condition Variable was not opened: VIDEO PROGRESS or PREPARE ERROR event was not received", success); int failedIntervals = 0; for (int idx = 0; idx < EVENT_POSITIONS.size(); idx++) { if (idx + 1 < EVENT_POSITIONS.size()) { long interval = Math.abs(300 - (EVENT_POSITIONS.get(idx + 1) - EVENT_POSITIONS.get(idx))); DeviceLog.debug("Interval is: " + interval); if (interval > 80) { failedIntervals++; } assertFalse("Too many intervals failed to arrive in 80ms threshold (" + failedIntervals + ")", failedIntervals > 3); } } assertFalse("Videoplayer shouldn't be in isPlaying state", mockWebViewApp.VIDEOPLAYER_VIEW.isPlaying()); assertEquals("getProgressInterval should return the same value as what was set", 300, mockWebViewApp.VIDEOPLAYER_VIEW.getProgressEventInterval()); assertTrue("Didn't get activity finish", waitForActivityFinish(activity)); }
@Test @RequiresDevice public void testPreparePlayPause () throws Exception { final Activity activity = waitForActivityStart(null); WebViewApp.setCurrentApp(new MockWebViewApp() { @Override public boolean sendEvent(Enum eventCategory, Enum eventId, Object... params) { super.sendEvent(eventCategory, eventId, params); if ("ON_FOCUS_GAINED".equals(eventId.name()) || "ON_FOCUS_LOST".equals(eventId.name())) { return true; } EVENT_CATEGORIES.add(eventCategory); EVENTS.add(eventId); EVENT_PARAMS = params; EVENT_COUNT++; if (eventCategory.equals(WebViewEventCategory.VIDEOPLAYER) && eventId.equals(VideoPlayerEvent.PREPARED)) { VIDEOPLAYER_VIEW.play(); } else if (!EVENT_TRIGGERED && eventCategory.equals(WebViewEventCategory.VIDEOPLAYER) && eventId.equals(VideoPlayerEvent.PROGRESS)) { if (EVENT_COUNT > 6) { EVENT_TRIGGERED = true; VIDEOPLAYER_VIEW.pause(); CONDITION_VARIABLE.open(); } } return true; } }); final String validUrl = TestUtilities.getTestServerAddress() + "/blue_test_trailer.mp4"; final Handler handler = new Handler(Looper.getMainLooper()); final ConditionVariable viewAddCV = new ConditionVariable(); handler.post(new Runnable() { @Override public void run() { ((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW = new VideoPlayerView(getInstrumentation().getTargetContext()); activity.addContentView(((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); viewAddCV.open(); } }); boolean success = viewAddCV.block(3000); assertTrue("ConditionVariable did not open in view add", success); final MockWebViewApp mockWebViewApp = (MockWebViewApp)WebViewApp.getCurrentApp(); ConditionVariable cv = new ConditionVariable(); mockWebViewApp.CONDITION_VARIABLE = cv; ((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW.prepare(validUrl, 1f, 0); success = cv.block(30000); assertTrue("Condition Variable was not opened: VIDEO PROGRESS or PREPARE ERROR event was not received", success); assertTrue("Current position should be over 300ms", mockWebViewApp.VIDEOPLAYER_VIEW.getCurrentPosition() > 300); assertTrue("Didn't get activity finish", waitForActivityFinish(activity)); }
@Test @RequiresDevice @SdkSuppress(minSdkVersion = 17) public void testInfoListener () throws Exception { final Activity activity = waitForActivityStart(null); WebViewApp.setCurrentApp(new MockWebViewApp() { @Override public boolean sendEvent(Enum eventCategory, Enum eventId, Object... params) { super.sendEvent(eventCategory, eventId, params); if ("ON_FOCUS_GAINED".equals(eventId.name()) || "ON_FOCUS_LOST".equals(eventId.name())) { return true; } EVENT_CATEGORIES.add(eventCategory); EVENTS.add(eventId); EVENT_PARAMS = params; EVENT_COUNT++; if (eventCategory.equals(WebViewEventCategory.VIDEOPLAYER) && eventId.equals(VideoPlayerEvent.PREPARED)) { VIDEOPLAYER_VIEW.play(); } if (eventCategory.equals(WebViewEventCategory.VIDEOPLAYER) && eventId.equals(VideoPlayerEvent.INFO)) { INFO_EVENTS = new ArrayList<>(); INFO_EVENTS.add((Integer) params[1]); } if (eventCategory.equals(WebViewEventCategory.VIDEOPLAYER) && eventId.equals(VideoPlayerEvent.COMPLETED)) { CONDITION_VARIABLE.open(); } return true; } }); final String validUrl = TestUtilities.getTestServerAddress() + "/blue_test_trailer.mp4"; final Handler handler = new Handler(Looper.getMainLooper()); final ConditionVariable viewAddCV = new ConditionVariable(); handler.post(new Runnable() { @Override public void run() { ((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW = new VideoPlayerView(getInstrumentation().getTargetContext()); activity.addContentView(((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); viewAddCV.open(); } }); boolean success = viewAddCV.block(3000); assertTrue("ConditionVariable did not open in view add", success); final MockWebViewApp mockWebViewApp = (MockWebViewApp)WebViewApp.getCurrentApp(); ConditionVariable cv = new ConditionVariable(); mockWebViewApp.CONDITION_VARIABLE = cv; ((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW.prepare(validUrl, 1f, 0); success = cv.block(30000); assertTrue("Condition Variable was not opened: COMPLETED or PREPARE ERROR event was not received", success); assertEquals("Event category should be videoplayer category", WebViewEventCategory.VIDEOPLAYER, mockWebViewApp.EVENT_CATEGORIES.get(0)); assertEquals("Event ID should be completed", VideoPlayerEvent.COMPLETED, mockWebViewApp.EVENTS.get(mockWebViewApp.EVENTS.size() - 1)); assertEquals("The video url and the url received from the completed event should be the same", validUrl, mockWebViewApp.EVENT_PARAMS[0]); assertNotNull("Info events should not be NULL", mockWebViewApp.INFO_EVENTS); assertTrue("There should be at least one INFO event received", mockWebViewApp.INFO_EVENTS.size() > 0); assertTrue("Didn't get activity finish", waitForActivityFinish(activity)); }
@Test @RequiresDevice @SdkSuppress(minSdkVersion = 17) public void testDisableInfoListener () throws Exception { final Activity activity = waitForActivityStart(null); WebViewApp.setCurrentApp(new MockWebViewApp() { @Override public boolean sendEvent(Enum eventCategory, Enum eventId, Object... params) { super.sendEvent(eventCategory, eventId, params); if ("ON_FOCUS_GAINED".equals(eventId.name()) || "ON_FOCUS_LOST".equals(eventId.name())) { return true; } EVENT_CATEGORIES.add(eventCategory); EVENTS.add(eventId); EVENT_PARAMS = params; EVENT_COUNT++; if (eventCategory.equals(WebViewEventCategory.VIDEOPLAYER) && eventId.equals(VideoPlayerEvent.PREPARED)) { VIDEOPLAYER_VIEW.play(); } if (eventCategory.equals(WebViewEventCategory.VIDEOPLAYER) && eventId.equals(VideoPlayerEvent.INFO)) { INFO_EVENTS = new ArrayList<>(); INFO_EVENTS.add((Integer) params[1]); } if (eventCategory.equals(WebViewEventCategory.VIDEOPLAYER) && eventId.equals(VideoPlayerEvent.COMPLETED)) { CONDITION_VARIABLE.open(); } return true; } }); final String validUrl = TestUtilities.getTestServerAddress() + "/blue_test_trailer.mp4"; final Handler handler = new Handler(Looper.getMainLooper()); final ConditionVariable viewAddCV = new ConditionVariable(); handler.post(new Runnable() { @Override public void run() { ((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW = new VideoPlayerView(getInstrumentation().getTargetContext()); activity.addContentView(((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); viewAddCV.open(); } }); boolean success = viewAddCV.block(3000); assertTrue("ConditionVariable did not open in view add", success); final MockWebViewApp mockWebViewApp = (MockWebViewApp)WebViewApp.getCurrentApp(); ConditionVariable cv = new ConditionVariable(); mockWebViewApp.CONDITION_VARIABLE = cv; ((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW.setInfoListenerEnabled(true); ((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW.setInfoListenerEnabled(false); ((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW.prepare(validUrl, 1f, 0); success = cv.block(30000); assertTrue("Condition Variable was not opened: COMPLETED or PREPARE ERROR event was not received", success); assertEquals("Event category should be videoplayer category", WebViewEventCategory.VIDEOPLAYER, mockWebViewApp.EVENT_CATEGORIES.get(0)); assertEquals("Event ID should be completed", VideoPlayerEvent.COMPLETED, mockWebViewApp.EVENTS.get(mockWebViewApp.EVENTS.size() - 1)); assertEquals("The video url and the url received from the completed event should be the same", validUrl, mockWebViewApp.EVENT_PARAMS[0]); assertNull("No info-events shoul've been received", mockWebViewApp.INFO_EVENTS); assertTrue("Didn't get activity finish", waitForActivityFinish(activity)); }
@Test @RequiresDevice @SdkSuppress(minSdkVersion = 17) public void testEnableInfoListener () throws Exception { final Activity activity = waitForActivityStart(null); WebViewApp.setCurrentApp(new MockWebViewApp() { @Override public boolean sendEvent(Enum eventCategory, Enum eventId, Object... params) { super.sendEvent(eventCategory, eventId, params); if ("ON_FOCUS_GAINED".equals(eventId.name()) || "ON_FOCUS_LOST".equals(eventId.name())) { return true; } EVENT_CATEGORIES.add(eventCategory); EVENTS.add(eventId); EVENT_PARAMS = params; EVENT_COUNT++; if (eventCategory.equals(WebViewEventCategory.VIDEOPLAYER) && eventId.equals(VideoPlayerEvent.PREPARED)) { VIDEOPLAYER_VIEW.play(); } if (eventCategory.equals(WebViewEventCategory.VIDEOPLAYER) && eventId.equals(VideoPlayerEvent.INFO)) { INFO_EVENTS = new ArrayList<>(); INFO_EVENTS.add((Integer) params[1]); } if (eventCategory.equals(WebViewEventCategory.VIDEOPLAYER) && eventId.equals(VideoPlayerEvent.COMPLETED)) { CONDITION_VARIABLE.open(); } return true; } }); final String validUrl = TestUtilities.getTestServerAddress() + "/blue_test_trailer.mp4"; final Handler handler = new Handler(Looper.getMainLooper()); final ConditionVariable viewAddCV = new ConditionVariable(); handler.post(new Runnable() { @Override public void run() { ((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW = new VideoPlayerView(getInstrumentation().getTargetContext()); activity.addContentView(((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); viewAddCV.open(); } }); boolean success = viewAddCV.block(3000); assertTrue("ConditionVariable did not open in view add", success); final MockWebViewApp mockWebViewApp = (MockWebViewApp)WebViewApp.getCurrentApp(); ConditionVariable cv = new ConditionVariable(); mockWebViewApp.CONDITION_VARIABLE = cv; ((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW.setInfoListenerEnabled(false); ((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW.setInfoListenerEnabled(true); ((MockWebViewApp)WebViewApp.getCurrentApp()).VIDEOPLAYER_VIEW.prepare(validUrl, 1f, 0); success = cv.block(30000); assertTrue("Condition Variable was not opened: COMPLETED or PREPARE ERROR event was not received", success); assertEquals("Event category should be videoplayer category", WebViewEventCategory.VIDEOPLAYER, mockWebViewApp.EVENT_CATEGORIES.get(0)); assertEquals("Event ID should be completed", VideoPlayerEvent.COMPLETED, mockWebViewApp.EVENTS.get(mockWebViewApp.EVENTS.size() - 1)); assertEquals("The video url and the url received from the completed event should be the same", validUrl, mockWebViewApp.EVENT_PARAMS[0]); assertNotNull("Info events should not be NULL", mockWebViewApp.INFO_EVENTS); assertTrue("There should be at least one INFO event received", mockWebViewApp.INFO_EVENTS.size() > 0); assertTrue("Didn't get activity finish", waitForActivityFinish(activity)); }
@Test @RequiresDevice public void testInfoListenerTooLowApiLevel () throws Exception { if (Build.VERSION.SDK_INT < 17) { WebViewApp.setCurrentApp(new MockWebViewApp() { @Override public boolean sendEvent(Enum eventCategory, Enum eventId, Object... params) { super.sendEvent(eventCategory, eventId, params); return true; } @Override public boolean invokeCallback(Invocation invocation) { for (ArrayList<Object> response : invocation.getResponses()) { CallbackStatus status = (CallbackStatus) response.get(0); Enum error = (Enum) response.get(1); if (status.equals(CallbackStatus.ERROR) && error.equals(VideoPlayerError.API_LEVEL_ERROR)) { CONDITION_VARIABLE.open(); } break; } return true; } }); final MockWebViewApp mockWebViewApp = (MockWebViewApp)WebViewApp.getCurrentApp(); ConditionVariable cv = new ConditionVariable(); mockWebViewApp.CONDITION_VARIABLE = cv; Handler handler = new Handler(Looper.getMainLooper()); handler.post(new Runnable() { @Override public void run() { Invocation i = new Invocation(); VideoPlayer.setInfoListenerEnabled(true, new WebViewCallback("test", i.getId())); i.sendInvocationCallback(); } }); boolean success = cv.block(30000); assertTrue("Condition Variable was not opened: ERROR event was not received", success); } else { DeviceLog.debug("Skipping test \"testInfoListenerTooLowApiLevel\", API level too high: " + Build.VERSION.SDK_INT); } }
RequiresDeviceFilter() { super(RequiresDevice.class); }
@SuppressWarnings("unchecked") @Test @RequiresDevice public void testsEnableStaticProxyForWifiNetwork() { assertTrue(APL.getWifiManager().isWifiEnabled()); openDrawer(R.id.drawer_layout); onView(withText(R.string.wifi_networks)).perform(click()); Map<APLNetworkId, WiFiApConfig> configuredNetworks = APL.getWifiAPConfigurations(); assertTrue(App.getDBManager().getProxiesCount() > 0); assertTrue(configuredNetworks.size() > 0); WiFiApConfig selectedWifiApConfig = null; ProxyEntity selectedProxyEntity = App.getDBManager().getRandomProxy(); for (APLNetworkId networkId : configuredNetworks.keySet()) { WiFiApConfig wifiApConfig = configuredNetworks.get(networkId); if ((wifiApConfig.getSecurityType() != SecurityType.SECURITY_EAP) && wifiApConfig.getProxySetting() == ProxySetting.NONE) { selectedWifiApConfig = wifiApConfig; break; } } assertNotNull(selectedWifiApConfig); assertNotNull(selectedProxyEntity); // Enable proxy onData(hasToString(containsString(String.format("SSID: %s\n",selectedWifiApConfig.getSSID())))) .inAdapterView(withId(android.R.id.list)) .perform(click()); onView(withId(R.id.wifi_name)).check(matches(withText(selectedWifiApConfig.getSSID()))); onView(withId(R.id.wifi_proxy_switch)).perform(click()); onView(withId(R.id.proxy_selector)).perform(click()); onData(hasToString(containsString(String.format("%s", selectedProxyEntity.getHost())))) .inAdapterView(allOf(withId(android.R.id.list), isDescendantOfA(withId(R.id.static_proxy_list)))) .perform(click()); onView(isRoot()).perform(ViewActions.pressBack()); // Disable proxy onData(hasToString(containsString(String.format("SSID: %s\n",selectedWifiApConfig.getSSID())))) .inAdapterView(withId(android.R.id.list)) .perform(click()); onView(withId(R.id.wifi_name)).check(matches(withText(selectedWifiApConfig.getSSID()))); onView(withId(R.id.wifi_proxy_switch)).perform(click()); onView(isRoot()).perform(ViewActions.pressBack()); ViewActions.pressKey(KeyEvent.KEYCODE_HOME); }
@SuppressWarnings("unchecked") @Test @RequiresDevice @SdkSuppress(minSdkVersion = Build.VERSION_CODES.LOLLIPOP) public void testsEnablePACProxyForWifiNetwork() { assertTrue(APL.getWifiManager().isWifiEnabled()); openDrawer(R.id.drawer_layout); onView(withText(R.string.wifi_networks)).perform(click()); Map<APLNetworkId, WiFiApConfig> configuredNetworks = APL.getWifiAPConfigurations(); assertTrue(App.getDBManager().getPacCount() > 0); assertTrue(configuredNetworks.size() > 0); WiFiApConfig selectedWifiApConfig = null; PacEntity selectedPacProxyEntity = App.getDBManager().getRandomPac(); for (APLNetworkId networkId : configuredNetworks.keySet()) { WiFiApConfig wifiApConfig = configuredNetworks.get(networkId); if ((wifiApConfig.getSecurityType() != SecurityType.SECURITY_EAP) && wifiApConfig.getProxySetting() == ProxySetting.NONE) { selectedWifiApConfig = wifiApConfig; break; } } assertNotNull(selectedWifiApConfig); assertNotNull(selectedPacProxyEntity); onData(hasToString(containsString(String.format("SSID: %s\n",selectedWifiApConfig.getSSID())))) .inAdapterView(withId(android.R.id.list)) .perform(click()); onView(withId(R.id.wifi_name)).check(matches(withText(selectedWifiApConfig.getSSID()))); onView(withId(R.id.wifi_proxy_switch)).perform(click()); onView(withId(R.id.proxy_selector)).perform(click()); onView(withText(R.string.pac_proxies)).perform(click()); onData(hasToString(containsString(String.format("%s",selectedPacProxyEntity.getPacUriFile().toString())))) .inAdapterView(allOf(withId(android.R.id.list), isDescendantOfA(withId(R.id.pac_proxy_list)))) .perform(click()); onView(isRoot()).perform(ViewActions.pressBack()); // Disable proxy onData(hasToString(containsString(String.format("SSID: %s\n",selectedWifiApConfig.getSSID())))) .inAdapterView(withId(android.R.id.list)) .perform(click()); onView(withId(R.id.wifi_name)).check(matches(withText(selectedWifiApConfig.getSSID()))); onView(withId(R.id.wifi_proxy_switch)).perform(click()); onView(isRoot()).perform(ViewActions.pressBack()); }
@Test @RequiresDevice public void testInstructionsAll() { goToMainScreen(); onView(withText(getString(mActivityTestRule.getActivity(), R.string.sensors))).perform(click()); TestConfigRepository testConfigRepository = new TestConfigRepository(); List<TestInfo> testList = testConfigRepository.getTests(TestType.SENSOR); for (int i = 0; i < TestConstants.SENSOR_TESTS_COUNT; i++) { assertEquals(testList.get(i).getSubtype(), TestType.SENSOR); String id = testList.get(i).getUuid(); id = id.substring(id.lastIndexOf("-") + 1, id.length()); int pages = navigateToTest(i, id); jsArrayString.append("[").append("\"").append(id).append("\",").append(pages).append("],"); } // Log.e("Caddisfly", jsArrayString.toString()); }
@Test @RequiresDevice public void testInstructionsBackcase2() { goToMainScreen(); gotoSurveyForm(); clickExternalSourceButton(TestConstantKeys.NEXT); clickExternalSourceButton(0); sleep(1000); mDevice.waitForIdle(); TestUtil.sleep(1000); String id = Constants.FREE_CHLORINE_ID.substring( Constants.FREE_CHLORINE_ID.lastIndexOf("-") + 1, Constants.FREE_CHLORINE_ID.length()); takeScreenshot(id, -1); mDevice.waitForIdle(); onView(withText(R.string.cannotStartTest)).check(matches(isDisplayed())); // onView(withText(getString(mActivityTestRule.getActivity(), R.string.instructions))).perform(click()); // for (int i = 0; i < 17; i++) { // // try { // takeScreenshot(id, i); // // onView(withId(R.id.image_pageRight)).perform(click()); // // } catch (Exception e) { // TestUtil.sleep(600); // Espresso.pressBack(); // break; // } // } }
@Test @RequiresDevice public void testInstructionsAll() { goToMainScreen(); onView(withText(getString(mActivityTestRule.getActivity(), R.string.stripTest))).perform(click()); TestConfigRepository testConfigRepository = new TestConfigRepository(); List<TestInfo> testList = testConfigRepository.getTests(TestType.STRIP_TEST); for (int i = 0; i < TestConstants.STRIP_TESTS_COUNT; i++) { assertEquals(testList.get(i).getSubtype(), TestType.STRIP_TEST); String id = testList.get(i).getUuid(); id = id.substring(id.lastIndexOf("-") + 1, id.length()); int pages = navigateToTest(i, id); jsArrayString.append("[").append("\"").append(id).append("\",").append(pages).append("],"); } // Log.e("Caddisfly", jsArrayString.toString()); }
@Test @RequiresDevice public void testSwatches() { onView(withId(R.id.actionSettings)).perform(click()); onView(withText(R.string.about)).check(matches(isDisplayed())).perform(click()); enterDiagnosticMode(); goToMainScreen(); onView(withText(R.string.calibrate)).perform(click()); onView(withText(currentHashMap.get("fluoride"))).perform(click()); if (TestUtil.isEmulator()) { onView(withText(R.string.errorCameraFlashRequired)) .inRoot(withDecorView(not(is(mActivityRule.getActivity().getWindow() .getDecorView())))).check(matches(isDisplayed())); return; } onView(withId(R.id.actionSwatches)).perform(click()); Espresso.pressBack(); onView(withId(R.id.actionSwatches)).check(matches(isDisplayed())); Espresso.pressBack(); }
@Test @RequiresDevice @Ignore public void testInstructionsAll() { String path = Environment.getExternalStorageDirectory().getPath() + "/Akvo Caddisfly/screenshots"; File folder = new File(path); if (!folder.exists()) { //noinspection ResultOfMethodCallIgnored folder.mkdirs(); } mDevice.waitForWindowUpdate("", 2000); goToMainScreen(); onView(withText("MD 610 Photometer")).perform(click()); TestConfigRepository testConfigRepository = new TestConfigRepository(); List<TestInfo> testList = testConfigRepository.getTests(TestType.BLUETOOTH); for (int i = 0; i < TestConstants.MD610_TESTS_COUNT; i++) { assertEquals(testList.get(i).getSubtype(), TestType.BLUETOOTH); String id = testList.get(i).getUuid(); id = id.substring(id.lastIndexOf("-") + 1, id.length()); int pages = navigateToTest(i, id); jsArrayString.append("[").append("\"").append(id).append("\",").append(pages).append("],"); } // Log.d("Caddisfly", jsArrayString.toString()); }
@Test @RequiresDevice public void testSensorFromSurvey() { gotoSurveyForm(); TestUtil.nextSurveyPage(7); clickExternalSourceButton("useExternalSource"); SystemClock.sleep(6000); onView(allOf(withId(R.id.textTitle), withText("Water - Electrical Conductivity"))).check(matches(isDisplayed())); if (TestUtil.isEmulator()) { mDevice.pressBack(); return; } onView(allOf(withId(R.id.textToolbarTitle), withText("Sensor!"))).check(matches(isDisplayed())); onView(allOf(withId(R.id.textSubtitle), withText("Sensor connected"))).check(matches(isDisplayed())); onView(allOf(withId(R.id.textUnit), withText("μS/cm"))).check(matches(isDisplayed())); onView(allOf(withId(R.id.textUnit2), withText("°Celsius"))).check(matches(isDisplayed())); onView(withId(R.id.buttonAcceptResult)).perform(click()).check(matches(isDisplayed())); }
@Test @RequiresDevice public void testEC() { goToMainScreen(); mDevice.waitForWindowUpdate("", 2000); onView(withText(R.string.sensors)).perform(click()); onView(withText(currentHashMap.get("electricalConductivity"))).perform(click()); onView(withText(R.string.electricalConductivity)).check(matches(isDisplayed())); mDevice.waitForWindowUpdate("", 2000); onView(withText(R.string.deviceConnectSensor)).check(matches(isDisplayed())); mDevice.waitForWindowUpdate("", 2000); onView(withContentDescription(mActivityRule.getActivity() .getString(R.string.deviceConnectSensor))).check(matches(isDisplayed())); Espresso.pressBack(); Espresso.pressBack(); }
@Test @RequiresDevice public void testDiagnosticMode() { onView(withId(R.id.actionSettings)).perform(click()); onView(withText(R.string.about)).check(matches(isDisplayed())).perform(click()); for (int i = 0; i < 10; i++) { onView(withId(R.id.textVersion)).perform(click()); } goToMainScreen(); onView(withId(R.id.fabDisableDiagnostics)).check(matches(isDisplayed())); goToMainScreen(); onView(withText(R.string.calibrate)).perform(click()); onView(withText(currentHashMap.get("fluoride"))).perform(click()); if (TestUtil.isEmulator()){ onView(withText(R.string.errorCameraFlashRequired)) .inRoot(withDecorView(not(is(mActivityRule.getActivity().getWindow() .getDecorView())))).check(matches(isDisplayed())); return; } onView(withId(R.id.actionSwatches)).perform(click()); }
@Test @RequiresDevice public void testChangeTestType() { onView(withText(R.string.calibrate)).perform(click()); onView(withText(currentHashMap.get("fluoride"))).perform(click()); if (TestUtil.isEmulator()) { onView(withText(R.string.errorCameraFlashRequired)) .inRoot(withDecorView(not(is(mActivityRule.getActivity().getWindow() .getDecorView())))).check(matches(isDisplayed())); return; } DecimalFormatSymbols dfs = new DecimalFormatSymbols(); onView(allOf(withId(R.id.calibrationList), childAtPosition(withClassName(is("android.widget.RelativeLayout")), 3))).perform(actionOnItemAtPosition(4, click())); // onView(withText("0" + dfs.getDecimalSeparator() + "0 mg/l")).check(matches(isDisplayed())); Espresso.pressBack(); Espresso.pressBack(); Espresso.pressBack(); onView(withText(R.string.calibrate)).perform(click()); // onView(withText(currentHashMap.get("chlorine"))).perform(click()); onView(withText("Caddisfly, 0 - 1")).perform(click()); onView(withText("1" + dfs.getDecimalSeparator() + "00")).check(matches(isDisplayed())); // onView(withText("0" + dfs.getDecimalSeparator() + "5 mg/l")).check(matches(isDisplayed())); }
@Test @RequiresDevice public void testStartASurvey() { saveCalibration("TestValid", Constants.FLUORIDE_ID); onView(withId(R.id.actionSettings)).perform(click()); onView(withText(R.string.about)).check(matches(isDisplayed())).perform(click()); enterDiagnosticMode(); goToMainScreen(); onView(withText(R.string.calibrate)).perform(click()); onView(withText(currentHashMap.get("fluoride"))).perform(click()); if (TestUtil.isEmulator()) { onView(withText(R.string.errorCameraFlashRequired)) .inRoot(withDecorView(not(is(mActivityRule.getActivity().getWindow() .getDecorView())))).check(matches(isDisplayed())); return; } onView(withId(R.id.menuLoad)).perform(click()); sleep(1000); onData(hasToString(startsWith("TestValid"))).perform(click()); goToMainScreen(); gotoSurveyForm(); clickExternalSourceButton(0); onView(withId(R.id.button_prepare)).check(matches(isDisplayed())); onView(withId(R.id.button_prepare)).perform(click()); onView(withId(R.id.buttonNoDilution)).check(matches(isDisplayed())); onView(withId(R.id.buttonDilution1)).check(matches(isDisplayed())); onView(withId(R.id.buttonDilution2)).check(matches(isDisplayed())); onView(withId(R.id.buttonNoDilution)).perform(click()); //onView(withId(R.id.buttonStart)).perform(click()); mDevice.waitForWindowUpdate("", 1000); }
@Test @RequiresDevice public void testRestartAppDuringAnalysis() { onView(withText(R.string.calibrate)).perform(click()); onView(withText(currentHashMap.get("fluoride"))).perform(click()); if (TestUtil.isEmulator()) { onView(withText(R.string.errorCameraFlashRequired)) .inRoot(withDecorView(not(is(mActivityRule.getActivity().getWindow() .getDecorView())))).check(matches(isDisplayed())); return; } DecimalFormatSymbols dfs = new DecimalFormatSymbols(); onView(withId(R.id.fabEditCalibration)).perform(click()); onView(withId(R.id.editBatchCode)) .perform(typeText("TEST 123#*@!"), closeSoftKeyboard()); onView(withId(R.id.editExpiryDate)).perform(click()); onView(withClassName((Matchers.equalTo(DatePicker.class.getName())))) .perform(PickerActions.setDate(2025, 8, 25)); onView(withId(android.R.id.button1)).perform(click()); onView(withText(R.string.save)).perform(click()); onView(allOf(withId(R.id.calibrationList), childAtPosition(withClassName(is("android.widget.RelativeLayout")), 3))).perform(actionOnItemAtPosition(4, click())); // onView(withText("2" + dfs.getDecimalSeparator() + "0 mg/l")).perform(click()); //onView(withId(R.id.buttonStart)).perform(click()); mDevice.pressHome(); try { mDevice.pressRecentApps(); } catch (RemoteException e) { Timber.e(e); } sleep(2000); mDevice.click(mDevice.getDisplayWidth() / 2, (mDevice.getDisplayHeight() / 2) + 300); mDevice.click(mDevice.getDisplayWidth() / 2, (mDevice.getDisplayHeight() / 2) + 300); mDevice.click(mDevice.getDisplayWidth() / 2, (mDevice.getDisplayHeight() / 2) + 300); mDevice.waitForWindowUpdate("", 1000); //clickListViewItem("Automated Tests"); clickListViewItem("test caddisfly"); }
@Test @RequiresDevice @Ignore public void testOutOfSequence() { saveCalibration("OutOfSequence", Constants.FLUORIDE_ID); goToMainScreen(); onView(withId(R.id.actionSettings)).perform(click()); onView(withText(R.string.about)).check(matches(isDisplayed())).perform(click()); enterDiagnosticMode(); goToMainScreen(); onView(withText(R.string.calibrate)).perform(click()); sleep(4000); onView(withText(currentHashMap.get(TestConstant.FLUORIDE))).perform(click()); if (TestUtil.isEmulator()){ onView(withText(R.string.errorCameraFlashRequired)) .inRoot(withDecorView(not(is(mActivityRule.getActivity().getWindow() .getDecorView())))).check(matches(isDisplayed())); return; } onView(withId(R.id.menuLoad)).perform(click()); sleep(2000); onData(hasToString(startsWith("OutOfSequence"))).perform(click()); sleep(2000); onView(withText(String.format("%s. %s", mActivityRule.getActivity().getString(R.string.calibrationIsInvalid), mActivityRule.getActivity().getString(R.string.tryRecalibrating)))).check(matches(isDisplayed())); onView(withId(R.id.menuLoad)).perform(click()); sleep(2000); onData(hasToString(startsWith("TestValid"))).perform(click()); sleep(2000); onView(withText(String.format("%s. %s", mActivityRule.getActivity().getString(R.string.calibrationIsInvalid), mActivityRule.getActivity().getString(R.string.tryRecalibrating)))).check(matches(not(isDisplayed()))); sleep(2000); leaveDiagnosticMode(); onView(withText(R.string.calibrate)).perform(click()); }
@Test @RequiresDevice public void surveyQuestions() { goToMainScreen(); gotoSurveyForm(); TestUtil.nextSurveyPage(7); clickExternalSourceButton(0); onView(withText("Next")).perform(click()); SystemClock.sleep(12000); onView(allOf(withId(R.id.textToolbarTitle), withText("Sensor"))).check(matches(isDisplayed())); onView(allOf(withId(R.id.textTitle), withText("Water - Electrical Conductivity"))).check(matches(isDisplayed())); if (TestUtil.isEmulator()) { return; } onView(allOf(withId(R.id.textSubtitle), withText("Sensor connected"))).check(matches(isDisplayed())); onView(allOf(withId(R.id.textUnit), withText("μS/cm"))).check(matches(isDisplayed())); onView(allOf(withId(R.id.textUnit2), withText("°Celsius"))).check(matches(isDisplayed())); onView(withId(R.id.buttonAcceptResult)).perform(click()); clickExternalSourceButton(1); SystemClock.sleep(12000); onView(allOf(withId(R.id.textToolbarTitle), withText("Sensor"))).check(matches(isDisplayed())); onView(allOf(withId(R.id.textTitle), withText("Soil - Electrical Conductivity"))).check(matches(isDisplayed())); onView(allOf(withId(R.id.textSubtitle), withText("Sensor connected"))).check(matches(isDisplayed())); onView(allOf(withId(R.id.textUnit), withText("μS/cm"))).check(matches(isDisplayed())); onView(allOf(withId(R.id.textUnit2), withText("°Celsius"))).check(matches(isDisplayed())); onView(withId(R.id.buttonAcceptResult)).perform(click()); clickExternalSourceButton(2); SystemClock.sleep(12000); onView(allOf(withId(R.id.textToolbarTitle), withText("Sensor"))).check(matches(isDisplayed())); onView(allOf(withId(R.id.textTitle), withText("Soil - Moisture"))).check(matches(isDisplayed())); onView(allOf(withId(R.id.textSubtitle), withText("Sensor connected"))).check(matches(isDisplayed())); onView(allOf(withId(R.id.textUnit), withText("% VWC"))).check(matches(isDisplayed())); onView(withId(R.id.textUnit2)).check(matches(not(isDisplayed()))); onView(withId(R.id.buttonAcceptResult)).perform(click()); }