Commit 0e3c00bf authored by Brian Sheedy's avatar Brian Sheedy Committed by Commit Bot

Revert "Replace enum with @IntDef (javatests)"

This reverts commit 4b3c7082.

Reason for revert: Causing XR tests to disappear/not be listed https://bugs.chromium.org/p/chromium/issues/detail?id=875909

Original change's description:
> Replace enum with @IntDef (javatests)
> 
> @IntDef/@StringDef annotation are preferred way for declaring
> set of String/int values.
> 
> 1. they need less space in APK than enum, see
> https://developer.android.com/topic/performance/reduce-apk-size#remove-enums
> 2. they give more control over allowed values than "static final" values
> 
> Main goal of patch is writing "static final" values, enum
> and some classes in one common @IntDef/@StringDef form:
> 
> 1. with @IntDef/@StringDef first, @Retention second
>    and related @interface third
> 2. with values inside @interface
> 3. with NUM_ENTRIES declaring number of entries if necessary
> 4. with comment about numbering from 0 without gaps when necessary
> 5. with @Retention(RetentionPolicy.SOURCE)
> 6. without "static final" in the @interface
> 
> Change-Id: I6aeb3571f6e72dd3599a4a6055189a227312d5c4
> Reviewed-on: https://chromium-review.googlesource.com/1154527
> Reviewed-by: agrieve <agrieve@chromium.org>
> Reviewed-by: Ted Choc <tedchoc@chromium.org>
> Reviewed-by: Amirhossein Simjour <asimjour@chromium.org>
> Commit-Queue: Marcin Wiącek <marcin@mwiacek.com>
> Cr-Commit-Position: refs/heads/master@{#584198}

TBR=tedchoc@chromium.org,asimjour@chromium.org,agrieve@chromium.org,marcin@mwiacek.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: I2acb8a9712d544e86bcbcf4ace09f0bcb9ccb77e
Reviewed-on: https://chromium-review.googlesource.com/1181802Reviewed-by: default avatarBrian Sheedy <bsheedy@chromium.org>
Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#584559}
parent 09ec13ee
......@@ -16,7 +16,6 @@ import static org.chromium.chrome.browser.download.DownloadForegroundService.get
import static org.chromium.chrome.browser.download.DownloadSnackbarController.INVALID_NOTIFICATION_ID;
import android.app.Notification;
import android.support.annotation.IntDef;
import android.support.test.filters.SmallTest;
import android.support.v4.app.ServiceCompat;
......@@ -30,8 +29,6 @@ import org.chromium.chrome.browser.notifications.NotificationBuilderFactory;
import org.chromium.chrome.browser.notifications.channels.ChannelDefinitions;
import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
......@@ -52,22 +49,14 @@ public class DownloadForegroundServiceTest {
* Mimics behavior of DownloadForegroundService except for calls to the actual service.
*/
public static class MockDownloadForegroundService extends DownloadForegroundService {
@IntDef({MethodID.START_FOREGROUND, MethodID.STOP_FOREGROUND_FLAGS,
MethodID.RELAUNCH_NOTIFICATION})
@Retention(RetentionPolicy.SOURCE)
public @interface MethodID {
int START_FOREGROUND = 0;
int STOP_FOREGROUND_FLAGS = 1;
int RELAUNCH_NOTIFICATION = 2;
}
static enum MethodID { START_FOREGROUND, STOP_FOREGROUND_FLAGS, RELAUNCH_NOTIFICATION }
int mTargetSdk = 20;
int mStopForegroundFlags = -1;
int mRelaunchedNotificationId = INVALID_NOTIFICATION_ID;
int mNextNotificationId = INVALID_NOTIFICATION_ID;
// Used for saving MethodID values.
List<Integer> mMethodCalls = new ArrayList<>();
List<MethodID> mMethodCalls = new ArrayList<>();
// Clears stored flags/boolean/id/method calls. Call between tests runs.
void clearStoredState() {
......@@ -134,7 +123,7 @@ public class DownloadForegroundServiceTest {
@Feature({"Download"})
public void testStartForeground_sdkAtLeast24() {
mForegroundService.mTargetSdk = 24;
List<Integer> expectedMethodCalls =
List<MockDownloadForegroundService.MethodID> expectedMethodCalls =
Arrays.asList(MockDownloadForegroundService.MethodID.START_FOREGROUND);
// Test the case where there is no other pinned notification and the service starts.
......@@ -176,7 +165,7 @@ public class DownloadForegroundServiceTest {
@SmallTest
@Feature({"Download"})
public void testStartForeground_sdkLessThan24() {
List<Integer> expectedMethodCalls =
List<MockDownloadForegroundService.MethodID> expectedMethodCalls =
Arrays.asList(MockDownloadForegroundService.MethodID.START_FOREGROUND);
// Test the case where there is no other pinned notification and the service starts.
......@@ -215,7 +204,7 @@ public class DownloadForegroundServiceTest {
@Feature({"Download"})
public void testStopForeground_sdkAtLeast24() {
mForegroundService.mTargetSdk = 24;
List<Integer> expectedMethodCalls =
List<MockDownloadForegroundService.MethodID> expectedMethodCalls =
Arrays.asList(MockDownloadForegroundService.MethodID.STOP_FOREGROUND_FLAGS);
// When the service gets stopped with request to detach but not kill notification (pause).
......@@ -275,7 +264,7 @@ public class DownloadForegroundServiceTest {
boolean isNotificationHandledProperly = mForegroundService.stopDownloadForegroundService(
DownloadForegroundService.StopForegroundNotification.DETACH_OR_PERSIST,
FAKE_DOWNLOAD_ID1, mNotification);
List<Integer> expectedMethodCalls =
List<MockDownloadForegroundService.MethodID> expectedMethodCalls =
Arrays.asList(MockDownloadForegroundService.MethodID.STOP_FOREGROUND_FLAGS);
assertEquals(expectedMethodCalls, mForegroundService.mMethodCalls);
assertEquals(ServiceCompat.STOP_FOREGROUND_DETACH, mForegroundService.mStopForegroundFlags);
......@@ -334,7 +323,7 @@ public class DownloadForegroundServiceTest {
boolean isNotificationHandledProperly = mForegroundService.stopDownloadForegroundService(
DownloadForegroundService.StopForegroundNotification.DETACH_OR_PERSIST,
FAKE_DOWNLOAD_ID1, mNotification);
List<Integer> expectedMethodCalls =
List<MockDownloadForegroundService.MethodID> expectedMethodCalls =
Arrays.asList(MockDownloadForegroundService.MethodID.STOP_FOREGROUND_FLAGS);
assertEquals(expectedMethodCalls, mForegroundService.mMethodCalls);
assertEquals(ServiceCompat.STOP_FOREGROUND_DETACH, mForegroundService.mStopForegroundFlags);
......@@ -392,7 +381,7 @@ public class DownloadForegroundServiceTest {
boolean isNotificationHandledProperly = mForegroundService.stopDownloadForegroundService(
DownloadForegroundService.StopForegroundNotification.DETACH_OR_PERSIST,
FAKE_DOWNLOAD_ID1, mNotification);
List<Integer> expectedMethodCalls =
List<MockDownloadForegroundService.MethodID> expectedMethodCalls =
Arrays.asList(MockDownloadForegroundService.MethodID.RELAUNCH_NOTIFICATION,
MockDownloadForegroundService.MethodID.STOP_FOREGROUND_FLAGS);
assertEquals(expectedMethodCalls, mForegroundService.mMethodCalls);
......
......@@ -7,7 +7,6 @@ package org.chromium.chrome.browser.download;
import android.content.Context;
import android.os.Handler;
import android.os.HandlerThread;
import android.support.annotation.IntDef;
import android.support.test.filters.MediumTest;
import android.support.test.filters.SmallTest;
import android.util.Log;
......@@ -38,8 +37,6 @@ import org.chromium.content.browser.test.util.Criteria;
import org.chromium.content.browser.test.util.CriteriaHelper;
import org.chromium.net.ConnectionType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.Collections;
import java.util.HashSet;
import java.util.Queue;
......@@ -66,23 +63,18 @@ public class DownloadManagerServiceTest {
/**
* The Ids of different methods in this mock object.
*/
@IntDef({MethodID.DOWNLOAD_SUCCESSFUL, MethodID.DOWNLOAD_FAILED, MethodID.DOWNLOAD_PROGRESS,
MethodID.DOWNLOAD_PAUSED, MethodID.DOWNLOAD_INTERRUPTED,
MethodID.CANCEL_DOWNLOAD_ID, MethodID.CLEAR_PENDING_DOWNLOADS})
@Retention(RetentionPolicy.SOURCE)
public @interface MethodID {
int DOWNLOAD_SUCCESSFUL = 0;
int DOWNLOAD_FAILED = 1;
int DOWNLOAD_PROGRESS = 2;
int DOWNLOAD_PAUSED = 3;
int DOWNLOAD_INTERRUPTED = 4;
int CANCEL_DOWNLOAD_ID = 5;
int CLEAR_PENDING_DOWNLOADS = 6;
static enum MethodID {
DOWNLOAD_SUCCESSFUL,
DOWNLOAD_FAILED,
DOWNLOAD_PROGRESS,
DOWNLOAD_PAUSED,
DOWNLOAD_INTERRUPTED,
CANCEL_DOWNLOAD_ID,
CLEAR_PENDING_DOWNLOADS
}
// Use MethodID for Integer values.
private final Queue<Pair<Integer, Object>> mExpectedCalls =
new ConcurrentLinkedQueue<Pair<Integer, Object>>();
private final Queue<Pair<MethodID, Object>> mExpectedCalls =
new ConcurrentLinkedQueue<Pair<MethodID, Object>>();
public MockDownloadNotifier() {
expect(MethodID.CLEAR_PENDING_DOWNLOADS, null);
......@@ -93,7 +85,7 @@ public class DownloadManagerServiceTest {
this();
}
public MockDownloadNotifier expect(@MethodID int method, Object param) {
public MockDownloadNotifier expect(MethodID method, Object param) {
mExpectedCalls.clear();
mExpectedCalls.add(getMethodSignature(method, param));
return this;
......@@ -109,21 +101,21 @@ public class DownloadManagerServiceTest {
});
}
public MockDownloadNotifier andThen(@MethodID int method, Object param) {
public MockDownloadNotifier andThen(MethodID method, Object param) {
mExpectedCalls.add(getMethodSignature(method, param));
return this;
}
static Pair<Integer, Object> getMethodSignature(@MethodID int methodId, Object param) {
return new Pair<Integer, Object>(methodId, param);
static Pair<MethodID, Object> getMethodSignature(MethodID methodId, Object param) {
return new Pair<MethodID, Object>(methodId, param);
}
void assertCorrectExpectedCall(@MethodID int methodId, Object param, boolean matchParams) {
void assertCorrectExpectedCall(MethodID methodId, Object param, boolean matchParams) {
Log.w("MockDownloadNotifier", "Called: " + methodId);
Assert.assertFalse("Unexpected call:, no call expected, but got: " + methodId,
mExpectedCalls.isEmpty());
Pair<Integer, Object> actual = getMethodSignature(methodId, param);
Pair<Integer, Object> expected = mExpectedCalls.poll();
Pair<MethodID, Object> actual = getMethodSignature(methodId, param);
Pair<MethodID, Object> expected = mExpectedCalls.poll();
Assert.assertEquals("Unexpected call", expected.first, actual.first);
if (matchParams) {
Assert.assertTrue(
......
......@@ -6,7 +6,6 @@ package org.chromium.chrome.browser.omaha;
import android.content.Context;
import android.content.SharedPreferences;
import android.support.annotation.IntDef;
import android.support.test.InstrumentationRegistry;
import android.support.test.filters.SmallTest;
......@@ -29,8 +28,6 @@ import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.SocketTimeoutException;
......@@ -75,8 +72,7 @@ public class OmahaBaseTest {
private TimestampPair mTimestampsOnRegisterNewRequest;
private TimestampPair mTimestampsOnSaveState;
MockOmahaDelegate(
Context context, DeviceType deviceType, @InstallSource int installSource) {
MockOmahaDelegate(Context context, DeviceType deviceType, InstallSource installSource) {
mContext = context;
mIsOnTablet = deviceType == DeviceType.TABLET;
mIsInForeground = true;
......@@ -147,40 +143,11 @@ public class OmahaBaseTest {
}
}
@IntDef({InstallSource.SYSTEM_IMAGE, InstallSource.ORGANIC})
@Retention(RetentionPolicy.SOURCE)
private @interface InstallSource {
int SYSTEM_IMAGE = 0;
int ORGANIC = 1;
}
@IntDef({ServerResponse.SUCCESS, ServerResponse.FAILURE})
@Retention(RetentionPolicy.SOURCE)
private @interface ServerResponse {
int SUCCESS = 0;
int FAILURE = 1;
}
@IntDef({ConnectionStatus.RESPONDS, ConnectionStatus.TIMES_OUT})
@Retention(RetentionPolicy.SOURCE)
private @interface ConnectionStatus {
int RESPONDS = 0;
int TIMES_OUT = 1;
}
@IntDef({InstallEvent.SEND, InstallEvent.DONT_SEND})
@Retention(RetentionPolicy.SOURCE)
private @interface InstallEvent {
int SEND = 0;
int DONT_SEND = 1;
}
@IntDef({PostStatus.DUE, PostStatus.NOT_DUE})
@Retention(RetentionPolicy.SOURCE)
private @interface PostStatus {
int DUE = 0;
int NOT_DUE = 1;
}
private enum InstallSource { SYSTEM_IMAGE, ORGANIC }
private enum ServerResponse { SUCCESS, FAILURE }
private enum ConnectionStatus { RESPONDS, TIMES_OUT }
private enum InstallEvent { SEND, DONT_SEND }
private enum PostStatus { DUE, NOT_DUE }
private AdvancedMockContext mContext;
private MockOmahaDelegate mDelegate;
......@@ -192,7 +159,7 @@ public class OmahaBaseTest {
}
private MockOmahaBase createOmahaBase(
@ServerResponse int response, @ConnectionStatus int status, DeviceType deviceType) {
ServerResponse response, ConnectionStatus status, DeviceType deviceType) {
MockOmahaBase omahaClient = new MockOmahaBase(mDelegate, response, status, deviceType);
return omahaClient;
}
......@@ -216,8 +183,8 @@ public class OmahaBaseTest {
private final boolean mConnectionTimesOut;
private final boolean mIsOnTablet;
public MockOmahaBase(OmahaDelegate delegate, @ServerResponse int serverResponse,
@ConnectionStatus int connectionStatus, DeviceType deviceType) {
public MockOmahaBase(OmahaDelegate delegate, ServerResponse serverResponse,
ConnectionStatus connectionStatus, DeviceType deviceType) {
super(delegate);
mSendValidResponse = serverResponse == ServerResponse.SUCCESS;
mConnectionTimesOut = connectionStatus == ConnectionStatus.TIMES_OUT;
......@@ -621,9 +588,9 @@ public class OmahaBaseTest {
mConnectionTimesOut = connectionTimesOut;
if (sendValidResponse) {
mHTTPResponseCode = HttpURLConnection.HTTP_OK; // 200
mHTTPResponseCode = 200;
} else {
mHTTPResponseCode = HttpURLConnection.HTTP_NOT_FOUND; // 404
mHTTPResponseCode = 404;
}
}
......
......@@ -7,8 +7,10 @@ package org.chromium.chrome.browser.suggestions;
import static org.junit.Assert.assertEquals;
import static org.chromium.base.test.util.ScalableTimeout.scaleTimeout;
import static org.chromium.chrome.browser.suggestions.SuggestionsSheetVisibilityChangeObserverTest.TestVisibilityChangeObserver.Event.Hidden;
import static org.chromium.chrome.browser.suggestions.SuggestionsSheetVisibilityChangeObserverTest.TestVisibilityChangeObserver.Event.InitialReveal;
import static org.chromium.chrome.browser.suggestions.SuggestionsSheetVisibilityChangeObserverTest.TestVisibilityChangeObserver.Event.StateChange;
import android.support.annotation.IntDef;
import android.support.test.InstrumentationRegistry;
import android.support.test.espresso.Espresso;
import android.support.test.espresso.action.ViewActions;
......@@ -27,7 +29,6 @@ import org.chromium.base.test.util.Restriction;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.ntp.NtpUiCaptureTestData;
import org.chromium.chrome.browser.suggestions.SuggestionsSheetVisibilityChangeObserverTest.TestVisibilityChangeObserver.Event;
import org.chromium.chrome.browser.widget.bottomsheet.BottomSheet;
import org.chromium.chrome.test.BottomSheetTestRule;
import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
......@@ -35,8 +36,6 @@ import org.chromium.chrome.test.util.browser.suggestions.DummySuggestionsEventRe
import org.chromium.chrome.test.util.browser.suggestions.SuggestionsDependenciesRule;
import org.chromium.ui.test.util.UiRestriction;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.concurrent.TimeoutException;
/**
......@@ -76,16 +75,16 @@ public class SuggestionsSheetVisibilityChangeObserverTest {
public void testHomeSheetVisibilityOnWebPage() {
// Pull sheet to half. We use the animated variants to be closer to user triggered events.
mActivityRule.setSheetState(BottomSheet.SheetState.HALF, true);
mObserver.expectEvents(Event.INITIAL_REVEAL, Event.STATE_CHANGE);
mObserver.expectEvents(InitialReveal, StateChange);
mEventReporter.surfaceOpenedHelper.waitForCallback();
// Pull sheet to full.
mActivityRule.setSheetState(BottomSheet.SheetState.FULL, true);
mObserver.expectEvents(Event.STATE_CHANGE);
mObserver.expectEvents(StateChange);
// close
Espresso.pressBack();
mObserver.expectEvents(Event.HIDDEN, Event.STATE_CHANGE, Event.STATE_CHANGE);
mObserver.expectEvents(Hidden, StateChange, StateChange);
}
@Test
......@@ -120,26 +119,19 @@ public class SuggestionsSheetVisibilityChangeObserverTest {
// Changing the state of the sheet closes the omnibox suggestions and shows the home sheet.
mActivityRule.setSheetState(BottomSheet.SheetState.HALF, true);
mObserver.expectEvents(Event.INITIAL_REVEAL, Event.STATE_CHANGE);
mObserver.expectEvents(InitialReveal, StateChange);
mEventReporter.surfaceOpenedHelper.waitForCallback();
// Back closes the bottom sheet.
Espresso.pressBack();
mObserver.expectEvents(Event.HIDDEN, Event.STATE_CHANGE, Event.STATE_CHANGE);
mObserver.expectEvents(Hidden, StateChange, StateChange);
assertEquals(BottomSheet.SheetState.PEEK, mActivityRule.getBottomSheet().getSheetState());
mEventReporter.surfaceOpenedHelper.verifyCallCount();
}
static class TestVisibilityChangeObserver extends SuggestionsSheetVisibilityChangeObserver {
@IntDef({Event.INITIAL_REVEAL, Event.SHOWN, Event.HIDDEN, Event.STATE_CHANGE})
@Retention(RetentionPolicy.SOURCE)
public @interface Event {
int INITIAL_REVEAL = 0;
int SHOWN = 1;
int HIDDEN = 2;
int STATE_CHANGE = 3;
}
public enum Event { InitialReveal, Shown, Hidden, StateChange }
private final ChromeActivity mActivity;
......@@ -175,19 +167,19 @@ public class SuggestionsSheetVisibilityChangeObserverTest {
mStateChangedHelper.notifyCalled();
}
public void expectEvents(@Event int... events) {
for (@Event int e : events) {
public void expectEvents(Event... events) {
for (Event e : events) {
switch (e) {
case Event.INITIAL_REVEAL:
case InitialReveal:
mInitialRevealHelper.waitForCallback();
break;
case Event.SHOWN:
case Shown:
mShownHelper.waitForCallback();
break;
case Event.HIDDEN:
case Hidden:
mHiddenHelper.waitForCallback();
break;
case Event.STATE_CHANGE:
case StateChange:
mStateChangedHelper.waitForCallback();
break;
}
......
......@@ -6,14 +6,11 @@ package org.chromium.chrome.browser.vr;
import android.content.Context;
import android.os.SystemClock;
import android.support.annotation.IntDef;
import com.google.vr.testframework.controller.ControllerTestApi;
import org.junit.Assert;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.concurrent.TimeUnit;
/**
......@@ -26,15 +23,7 @@ import java.util.concurrent.TimeUnit;
* - PairedControllerAddress: "FOO"
*/
public class EmulatedVrController {
@IntDef({ScrollDirection.UP, ScrollDirection.DOWN, ScrollDirection.LEFT, ScrollDirection.RIGHT})
@Retention(RetentionPolicy.SOURCE)
public @interface ScrollDirection {
int UP = 0;
int DOWN = 1;
int LEFT = 2;
int RIGHT = 3;
}
public enum ScrollDirection { UP, DOWN, LEFT, RIGHT }
private static final int FIRST_INPUT_DELAY_MS = 500;
private final ControllerTestApi mApi;
private boolean mHaveSentInputSinceEnteringVr;
......@@ -136,23 +125,23 @@ public class EmulatedVrController {
* @param speed how long to wait between steps in the scroll, with higher
* numbers resulting in a faster scroll.
*/
public void scroll(@ScrollDirection int direction, int steps, int speed) {
public void scroll(ScrollDirection direction, int steps, int speed) {
float startX, startY, endX, endY;
startX = startY = endX = endY = 0.5f;
switch (direction) {
case ScrollDirection.UP:
case UP:
startY = 0.1f;
endY = 0.9f;
break;
case ScrollDirection.DOWN:
case DOWN:
startY = 0.9f;
endY = 0.1f;
break;
case ScrollDirection.LEFT:
case LEFT:
startX = 0.1f;
endX = 0.9f;
break;
case ScrollDirection.RIGHT:
case RIGHT:
startX = 0.9f;
endX = 0.1f;
break;
......
......@@ -11,7 +11,6 @@ import static org.chromium.chrome.browser.vr.XrTestFramework.POLL_TIMEOUT_SHORT_
import static org.chromium.chrome.test.util.ChromeRestriction.RESTRICTION_TYPE_VIEWER_DAYDREAM;
import android.graphics.PointF;
import android.support.annotation.IntDef;
import android.support.test.InstrumentationRegistry;
import android.support.test.filters.MediumTest;
......@@ -44,8 +43,6 @@ import org.chromium.content.browser.test.util.CriteriaHelper;
import org.chromium.content.browser.test.util.DOMUtils;
import org.chromium.content_public.browser.WebContents;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.concurrent.TimeoutException;
......@@ -75,28 +72,9 @@ public class VrBrowserNavigationTest {
private static final String TEST_PAGE_WEBXR_URL =
WebXrVrTestFramework.getFileUrlForHtmlTestFile("test_navigation_webxr_page");
@IntDef({Page.PAGE_2D, Page.PAGE_2D_2, Page.PAGE_WEBVR, Page.PAGE_WEBXR})
@Retention(RetentionPolicy.SOURCE)
private @interface Page {
int PAGE_2D = 0;
int PAGE_2D_2 = 1;
int PAGE_WEBVR = 2;
int PAGE_WEBXR = 3;
}
@IntDef({PresentationMode.NON_PRESENTING, PresentationMode.PRESENTING})
@Retention(RetentionPolicy.SOURCE)
private @interface PresentationMode {
int NON_PRESENTING = 0;
int PRESENTING = 1;
}
@IntDef({FullscreenMode.NON_FULLSCREENED, FullscreenMode.FULLSCREENED})
@Retention(RetentionPolicy.SOURCE)
private @interface FullscreenMode {
int NON_FULLSCREENED = 0;
int FULLSCREENED = 1;
}
private enum Page { PAGE_2D, PAGE_2D_2, PAGE_WEBVR, PAGE_WEBXR }
private enum PresentationMode { NON_PRESENTING, PRESENTING }
private enum FullscreenMode { NON_FULLSCREENED, FULLSCREENED }
@Before
public void setUp() throws Exception {
......@@ -106,15 +84,15 @@ public class VrBrowserNavigationTest {
VrBrowserTransitionUtils.forceEnterVrBrowserOrFail(POLL_TIMEOUT_LONG_MS);
}
private String getUrl(@Page int page) {
private String getUrl(Page page) {
switch (page) {
case Page.PAGE_2D:
case PAGE_2D:
return TEST_PAGE_2D_URL;
case Page.PAGE_2D_2:
case PAGE_2D_2:
return TEST_PAGE_2D_2_URL;
case Page.PAGE_WEBVR:
case PAGE_WEBVR:
return TEST_PAGE_WEBVR_URL;
case Page.PAGE_WEBXR:
case PAGE_WEBXR:
return TEST_PAGE_WEBXR_URL;
default:
throw new UnsupportedOperationException("Don't know page type " + page);
......@@ -126,7 +104,7 @@ public class VrBrowserNavigationTest {
* {@link ChromeActivityTestRule#loadUrl loadUrl} but makes sure page initiates the
* navigation. This is desirable since we are testing navigation transitions end-to-end.
*/
private void navigateTo(final @Page int to) throws InterruptedException {
private void navigateTo(final Page to) throws InterruptedException {
ChromeTabUtils.waitForTabPageLoaded(mTestRule.getActivity().getActivityTab(), () -> {
mVrBrowserTestFramework.runJavaScriptOrFail(
"window.location.href = '" + getUrl(to) + "';", POLL_TIMEOUT_SHORT_MS);
......@@ -140,8 +118,8 @@ public class VrBrowserNavigationTest {
Assert.assertTrue("Failed to enter fullscreen", DOMUtils.isFullscreen(webContents));
}
private void assertState(WebContents wc, @Page int page, @PresentationMode int presentationMode,
@FullscreenMode int fullscreenMode) throws InterruptedException, TimeoutException {
private void assertState(WebContents wc, Page page, PresentationMode presentationMode,
FullscreenMode fullscreenMode) throws InterruptedException, TimeoutException {
Assert.assertTrue("Browser is not in VR", VrShellDelegate.isInVr());
Assert.assertEquals("Browser is not on correct web site", getUrl(page), wc.getVisibleUrl());
Assert.assertEquals("Browser's presentation mode does not match expectation",
......@@ -214,7 +192,7 @@ public class VrBrowserNavigationTest {
impl2dToWeb(Page.PAGE_WEBXR, mWebXrVrTestFramework);
}
private void impl2dToWeb(@Page int page, WebXrVrTestFramework framework)
private void impl2dToWeb(Page page, WebXrVrTestFramework framework)
throws InterruptedException, TimeoutException {
framework.loadUrlAndAwaitInitialization(TEST_PAGE_2D_URL, PAGE_LOAD_TIMEOUT_S);
......@@ -247,7 +225,7 @@ public class VrBrowserNavigationTest {
impl2dFullscreenToWeb(Page.PAGE_WEBXR, mWebXrVrTestFramework);
}
private void impl2dFullscreenToWeb(@Page int page, WebXrVrTestFramework framework)
private void impl2dFullscreenToWeb(Page page, WebXrVrTestFramework framework)
throws InterruptedException, TimeoutException {
framework.loadUrlAndAwaitInitialization(TEST_PAGE_2D_URL, PAGE_LOAD_TIMEOUT_S);
enterFullscreenOrFail(framework.getFirstTabWebContents());
......@@ -281,7 +259,7 @@ public class VrBrowserNavigationTest {
webTo2dImpl(Page.PAGE_WEBXR, mWebXrVrTestFramework);
}
private void webTo2dImpl(@Page int page, WebXrVrTestFramework framework)
private void webTo2dImpl(Page page, WebXrVrTestFramework framework)
throws InterruptedException, TimeoutException {
framework.loadUrlAndAwaitInitialization(getUrl(page), PAGE_LOAD_TIMEOUT_S);
......@@ -314,7 +292,7 @@ public class VrBrowserNavigationTest {
webToWebImpl(Page.PAGE_WEBXR, mWebXrVrTestFramework);
}
private void webToWebImpl(@Page int page, WebXrVrTestFramework framework)
private void webToWebImpl(Page page, WebXrVrTestFramework framework)
throws InterruptedException, TimeoutException {
framework.loadUrlAndAwaitInitialization(getUrl(page), PAGE_LOAD_TIMEOUT_S);
......@@ -347,7 +325,7 @@ public class VrBrowserNavigationTest {
webPresentingTo2dImpl(Page.PAGE_WEBXR, mWebXrVrTestFramework);
}
private void webPresentingTo2dImpl(@Page int page, WebXrVrTestFramework framework)
private void webPresentingTo2dImpl(Page page, WebXrVrTestFramework framework)
throws InterruptedException, TimeoutException {
framework.loadUrlAndAwaitInitialization(getUrl(page), PAGE_LOAD_TIMEOUT_S);
framework.enterSessionWithUserGestureOrFail();
......@@ -381,7 +359,7 @@ public class VrBrowserNavigationTest {
webPresentingToWebImpl(Page.PAGE_WEBXR, mWebXrVrTestFramework);
}
private void webPresentingToWebImpl(@Page int page, WebXrVrTestFramework framework)
private void webPresentingToWebImpl(Page page, WebXrVrTestFramework framework)
throws InterruptedException, TimeoutException {
framework.loadUrlAndAwaitInitialization(getUrl(page), PAGE_LOAD_TIMEOUT_S);
framework.enterSessionWithUserGestureOrFail();
......@@ -415,7 +393,7 @@ public class VrBrowserNavigationTest {
webFullscreenTo2dImpl(Page.PAGE_WEBXR, mWebXrVrTestFramework);
}
private void webFullscreenTo2dImpl(@Page int page, WebXrVrTestFramework framework)
private void webFullscreenTo2dImpl(Page page, WebXrVrTestFramework framework)
throws InterruptedException, TimeoutException {
framework.loadUrlAndAwaitInitialization(getUrl(page), PAGE_LOAD_TIMEOUT_S);
enterFullscreenOrFail(framework.getFirstTabWebContents());
......@@ -449,7 +427,7 @@ public class VrBrowserNavigationTest {
webFullscreenToWebImpl(Page.PAGE_WEBXR, mWebXrVrTestFramework);
}
private void webFullscreenToWebImpl(@Page int page, WebXrVrTestFramework framework)
private void webFullscreenToWebImpl(Page page, WebXrVrTestFramework framework)
throws InterruptedException, TimeoutException {
framework.loadUrlAndAwaitInitialization(getUrl(page), PAGE_LOAD_TIMEOUT_S);
enterFullscreenOrFail(framework.getFirstTabWebContents());
......
......@@ -37,7 +37,7 @@ public class ChromeTabbedActivityVrTestRule
}
@Override
public @SupportedActivity int getRestriction() {
public SupportedActivity getRestriction() {
return SupportedActivity.CTA;
}
......
......@@ -28,7 +28,7 @@ public class ChromeTabbedActivityXrTestRule
}
@Override
public @SupportedActivity int getRestriction() {
public SupportedActivity getRestriction() {
return SupportedActivity.CTA;
}
}
......@@ -41,7 +41,7 @@ public class CustomTabActivityVrTestRule extends CustomTabActivityTestRule imple
}
@Override
public @SupportedActivity int getRestriction() {
public SupportedActivity getRestriction() {
return SupportedActivity.CCT;
}
......
......@@ -31,7 +31,7 @@ public class CustomTabActivityXrTestRule extends CustomTabActivityTestRule imple
}
@Override
public @SupportedActivity int getRestriction() {
public SupportedActivity getRestriction() {
return SupportedActivity.CCT;
}
}
......@@ -4,8 +4,6 @@
package org.chromium.chrome.browser.vr.rules;
import android.support.annotation.IntDef;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
......@@ -32,19 +30,16 @@ import java.lang.annotation.Target;
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface HeadTrackingMode {
@IntDef({SupportedMode.FROZEN, SupportedMode.SWEEP, SupportedMode.ROTATE,
SupportedMode.CIRCLE_STRAFE, SupportedMode.MOTION_SICKNESS})
@Retention(RetentionPolicy.RUNTIME)
public @interface SupportedMode {
int FROZEN = 0; // Locked looking straight forward.
int SWEEP = 1; // Rotates back and forth horizontally in a 180 degree arc.
int ROTATE = 2; // Rotates 360 degrees.
int CIRCLE_STRAFE = 3; // Rotates 360 degrees, and if 6DOF is supported, changes position.
int MOTION_SICKNESS = 4; // Moves in a figure-eight-like pattern.
public enum SupportedMode {
FROZEN, // Locked looking straight forward.
SWEEP, // Rotates back and forth horizontally in a 180 degree arc.
ROTATE, // Rotates 360 degrees.
CIRCLE_STRAFE, // Rotates 360 degrees, and if 6DOF is supported, changes position.
MOTION_SICKNESS // Moves in a figure-eight-like pattern.
}
/**
* @return The supported mode.
*/
public @SupportedMode int value();
public SupportedMode value();
}
......@@ -35,7 +35,7 @@ public class WebappActivityVrTestRule extends WebappActivityTestRule implements
}
@Override
public @SupportedActivity int getRestriction() {
public SupportedActivity getRestriction() {
return SupportedActivity.WAA;
}
......
......@@ -29,7 +29,7 @@ public class WebappActivityXrTestRule extends WebappActivityTestRule implements
}
@Override
public @SupportedActivity int getRestriction() {
public SupportedActivity getRestriction() {
return SupportedActivity.WAA;
}
}
......@@ -4,8 +4,6 @@
package org.chromium.chrome.browser.vr.rules;
import android.support.annotation.IntDef;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
......@@ -27,18 +25,15 @@ import java.lang.annotation.Target;
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface XrActivityRestriction {
@IntDef({SupportedActivity.CTA, SupportedActivity.CCT, SupportedActivity.WAA,
SupportedActivity.ALL})
@Retention(RetentionPolicy.SOURCE)
public @interface SupportedActivity {
int CTA = 0; // ChromeTabbedActivity/Normal Chrome
int CCT = 1; // CustomTabActivity/Chrome Custom Tab
int WAA = 2; // WebappActivity/Progressive Web App
int ALL = 3; // Run in all of the above
public enum SupportedActivity {
CTA, // ChromeTabbedActivity/Normal Chrome
CCT, // CustomTabActivity/Chrome Custom Tab
WAA, // WebappActivity/Progressive Web App
ALL // Run in all of the above
}
/**
* @return A list of activity restrictions.
*/
public @SupportedActivity int[] value();
public SupportedActivity[] value();
}
......@@ -17,9 +17,9 @@ import org.chromium.chrome.browser.vr.util.XrTestRuleUtils;
* one of the supported Activity types for the test.
*/
public class XrActivityRestrictionRule implements TestRule {
private @SupportedActivity int mCurrentRestriction;
private SupportedActivity mCurrentRestriction;
public XrActivityRestrictionRule(@SupportedActivity int currentRestriction) {
public XrActivityRestrictionRule(SupportedActivity currentRestriction) {
mCurrentRestriction = currentRestriction;
}
......@@ -35,8 +35,7 @@ public class XrActivityRestrictionRule implements TestRule {
return generateIgnoreStatement();
}
@SupportedActivity
int[] activities = annotation.value();
SupportedActivity[] activities = annotation.value();
for (int i = 0; i < activities.length; i++) {
if (activities[i] == mCurrentRestriction || activities[i] == SupportedActivity.ALL) {
return base;
......
......@@ -15,5 +15,5 @@ public interface XrTestRule {
* @return The XrActivityRestriction.SupportedActivity that this rule is restricted to running
* in.
*/
public @SupportedActivity int getRestriction();
public SupportedActivity getRestriction();
}
......@@ -148,7 +148,7 @@ public class HeadTrackingUtils {
* @param rule The VrTestRule used by the current test case.
* @param mode The HeadTrackingMode.SupportedMode value to set the fake head tracker mode to.
*/
public static void applyHeadTrackingMode(VrTestRule rule, @SupportedMode int mode) {
public static void applyHeadTrackingMode(VrTestRule rule, SupportedMode mode) {
applyHeadTrackingModeInternal(rule, mode);
// TODO(bsheedy): Remove this sleep if the head tracking service ever exposes a way to be
// notified when a setting has been applied.
......@@ -194,24 +194,24 @@ public class HeadTrackingUtils {
InstrumentationRegistry.getContext().startService(typeIntent);
}
public static String supportedModeToString(@SupportedMode int mode) {
public static String supportedModeToString(SupportedMode mode) {
switch (mode) {
case SupportedMode.FROZEN:
case FROZEN:
return "frozen";
case SupportedMode.SWEEP:
case SWEEP:
return "sweep";
case SupportedMode.ROTATE:
case ROTATE:
return "rotate";
case SupportedMode.CIRCLE_STRAFE:
case CIRCLE_STRAFE:
return "circle_strafe";
case SupportedMode.MOTION_SICKNESS:
case MOTION_SICKNESS:
return "motion_sickness";
default:
return "unknown_mode";
}
}
private static void applyHeadTrackingModeInternal(VrTestRule rule, @SupportedMode int mode) {
private static void applyHeadTrackingModeInternal(VrTestRule rule, SupportedMode mode) {
restartHeadTrackingServiceIfNecessary(rule);
// Set the fake tracker mode to the given value.
Intent modeIntent = new Intent(ACTION_SET_FAKE_TRACKER_MODE);
......
......@@ -7,16 +7,12 @@ package org.chromium.chrome.browser.vr.util;
import static org.chromium.chrome.browser.vr.XrTestFramework.POLL_CHECK_INTERVAL_SHORT_MS;
import static org.chromium.chrome.browser.vr.XrTestFramework.POLL_TIMEOUT_SHORT_MS;
import android.support.annotation.IntDef;
import org.chromium.base.ThreadUtils;
import org.chromium.chrome.browser.infobar.InfoBar;
import org.chromium.chrome.test.ChromeActivityTestRule;
import org.chromium.chrome.test.util.InfoBarUtil;
import org.chromium.content.browser.test.util.CriteriaHelper;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.List;
/**
......@@ -24,12 +20,8 @@ import java.util.List;
* a high level.
*/
public class VrInfoBarUtils {
@IntDef({Button.PRIMARY, Button.SECONDARY})
@Retention(RetentionPolicy.SOURCE)
public @interface Button {
int PRIMARY = 0;
int SECONDARY = 1;
}
public enum Button { PRIMARY, SECONDARY }
;
/**
* Determines whether InfoBars are present in the current activity.
......@@ -51,12 +43,12 @@ public class VrInfoBarUtils {
* @param rule The ChromeActivityTestRule to get the InfoBars from.
*/
@SuppressWarnings("unchecked")
public static void clickInfoBarButton(final @Button int button, ChromeActivityTestRule rule) {
public static void clickInfoBarButton(final Button button, ChromeActivityTestRule rule) {
if (!isInfoBarPresent(rule)) return;
final List<InfoBar> infoBars = rule.getInfoBars();
ThreadUtils.runOnUiThreadBlocking(() -> {
switch (button) {
case Button.PRIMARY:
case PRIMARY:
InfoBarUtil.clickPrimaryButton(infoBars.get(0));
break;
default:
......
......@@ -83,15 +83,15 @@ public class XrTestRuleUtils {
* @param activity The SupportedActivity value to convert to a String.
* @return A String representation of the activity.
*/
public static String supportedActivityToString(@SupportedActivity int activity) {
public static String supportedActivityToString(SupportedActivity activity) {
switch (activity) {
case SupportedActivity.CTA:
case CTA:
return "ChromeTabbedActivity";
case SupportedActivity.CCT:
case CCT:
return "CustomTabActivity";
case SupportedActivity.WAA:
case WAA:
return "WebappActivity";
case SupportedActivity.ALL:
case ALL:
return "AllActivities";
default:
return "UnknownActivity";
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment