Java Code Examples for android.support.test.filters.RequiresDevice

The following are top voted examples for showing how to use android.support.test.filters.RequiresDevice. These examples are extracted from open source projects. You can vote up the examples you like and your votes will be used in our system to generate more good examples.
Example 1
Project: unity-ads-android   File: VideoViewTest.java   View source code 6 votes vote down vote up
@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);
}
 
Example 2
Project: Presenter-Client-Android   File: SettingsActivityTest.java   View source code 5 votes vote down vote up
/**
 * 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()));
}
 
Example 3
Project: Presenter-Client-Android   File: SettingsActivityTest.java   View source code 5 votes vote down vote up
/**
 * 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()));
}
 
Example 4
Project: braintree-android-drop-in   File: DropInTest.java   View source code 5 votes vote down vote up
@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")));
}
 
Example 5
Project: android-testing-guide   File: MainActivityTest.java   View source code 5 votes vote down vote up
@Test
@RequiresDevice
public void testRequiresDevice() {
    Log.d("Test Filters", "This test requires a device");
    Activity activity = activityTestRule.getActivity();
    assertNotNull("MainActivity is not available", activity);
}
 
Example 6
Project: braintree_android   File: DropInTest.java   View source code 5 votes vote down vote up
@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")));
}
 
Example 7
Project: akvo-caddisfly   File: ChamberInstructions.java   View source code 5 votes vote down vote up
@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;
//            }
//        }
    }
 
Example 8
Project: akvo-caddisfly   File: ChamberTest.java   View source code 5 votes vote down vote up
@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()));
}
 
Example 9
Project: akvo-caddisfly   File: StriptestTest.java   View source code 5 votes vote down vote up
@Test
@RequiresDevice
public void startStriptest() {

    activateTestMode();

    test5in1(false);
    testSoilNitrogen(false);
    testMerckPH(false);
    testNitrate100();

    test5in1(true);
    testSoilNitrogen(true);
    testMerckPH(true);
}
 
Example 10
Project: unity-ads-android   File: VideoViewTest.java   View source code 4 votes vote down vote up
@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));
}
 
Example 11
Project: unity-ads-android   File: VideoViewTest.java   View source code 4 votes vote down vote up
@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));
}
 
Example 12
Project: unity-ads-android   File: VideoViewTest.java   View source code 4 votes vote down vote up
@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));
}
 
Example 13
Project: unity-ads-android   File: VideoViewTest.java   View source code 4 votes vote down vote up
@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));
}
 
Example 14
Project: unity-ads-android   File: VideoViewTest.java   View source code 4 votes vote down vote up
@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));
}
 
Example 15
Project: unity-ads-android   File: VideoViewTest.java   View source code 4 votes vote down vote up
@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));
}
 
Example 16
Project: unity-ads-android   File: VideoViewTest.java   View source code 4 votes vote down vote up
@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));
}
 
Example 17
Project: unity-ads-android   File: VideoViewTest.java   View source code 4 votes vote down vote up
@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));
}
 
Example 18
Project: unity-ads-android   File: VideoViewTest.java   View source code 4 votes vote down vote up
@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));
}
 
Example 19
Project: unity-ads-android   File: VideoViewTest.java   View source code 4 votes vote down vote up
@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));
}
 
Example 20
Project: unity-ads-android   File: VideoViewTest.java   View source code 4 votes vote down vote up
@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));
}
 
Example 21
Project: unity-ads-android   File: VideoViewTest.java   View source code 4 votes vote down vote up
@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);
	}
}
 
Example 22
Project: android-groovy-dagger-espresso-demo   File: SpockTestRequestBuilder.java   View source code 4 votes vote down vote up
RequiresDeviceFilter() {
    super(RequiresDevice.class);
}
 
Example 23
Project: android-proxy   File: BasicAppTests.java   View source code 4 votes vote down vote up
@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);
}
 
Example 24
Project: android-proxy   File: BasicAppTests.java   View source code 4 votes vote down vote up
@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());
}
 
Example 25
Project: akvo-caddisfly   File: SensorInstructions.java   View source code 4 votes vote down vote up
@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());

    }
 
Example 26
Project: akvo-caddisfly   File: ChamberInstructions.java   View source code 4 votes vote down vote up
@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;
//            }
//        }
    }
 
Example 27
Project: akvo-caddisfly   File: ChamberInstructions.java   View source code 4 votes vote down vote up
@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());

    }
 
Example 28
Project: akvo-caddisfly   File: MiscTest.java   View source code 3 votes vote down vote up
@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();
}
 
Example 29
Project: akvo-caddisfly   File: BluetoothInstructions.java   View source code 3 votes vote down vote up
@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());

    }
 
Example 30
Project: akvo-caddisfly   File: SensorTest.java   View source code 3 votes vote down vote up
@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()));

}
 
Example 31
Project: akvo-caddisfly   File: SensorTest.java   View source code 3 votes vote down vote up
@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();

}
 
Example 32
Project: akvo-caddisfly   File: DiagnosticTest.java   View source code 3 votes vote down vote up
@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());

}
 
Example 33
Project: akvo-caddisfly   File: SurveyTest.java   View source code 2 votes vote down vote up
@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()));

    }
 
Example 34
Project: akvo-caddisfly   File: SurveyTest.java   View source code 2 votes vote down vote up
@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);

}
 
Example 35
Project: akvo-caddisfly   File: MiscTest.java   View source code 2 votes vote down vote up
@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");

    }
 
Example 36
Project: akvo-caddisfly   File: CalibrationTest.java   View source code 2 votes vote down vote up
@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());

}
 
Example 37
Project: akvo-caddisfly   File: SensorTest.java   View source code 2 votes vote down vote up
@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());

}