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