Index: chrome/android/javatests/src/org/chromium/chrome/browser/notifications/NotificationTestBase.java |
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/notifications/NotificationTestBase.java b/chrome/android/javatests/src/org/chromium/chrome/browser/notifications/NotificationTestBase.java |
deleted file mode 100644 |
index 22612631885d13651d960d86c2eb38714b55c6f5..0000000000000000000000000000000000000000 |
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/notifications/NotificationTestBase.java |
+++ /dev/null |
@@ -1,143 +0,0 @@ |
-// Copyright 2015 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-package org.chromium.chrome.browser.notifications; |
- |
-import static org.chromium.base.test.util.ScalableTimeout.scaleTimeout; |
- |
-import android.app.Notification; |
- |
-import org.chromium.base.ThreadUtils; |
-import org.chromium.chrome.browser.preferences.website.ContentSetting; |
-import org.chromium.chrome.browser.preferences.website.NotificationInfo; |
-import org.chromium.chrome.test.ChromeTabbedActivityTestBase; |
-import org.chromium.chrome.test.util.browser.notifications.MockNotificationManagerProxy; |
-import org.chromium.chrome.test.util.browser.notifications.MockNotificationManagerProxy.NotificationEntry; |
-import org.chromium.content.browser.test.util.Criteria; |
-import org.chromium.content.browser.test.util.CriteriaHelper; |
-import org.chromium.net.test.EmbeddedTestServer; |
- |
-import java.util.List; |
-import java.util.concurrent.TimeoutException; |
- |
-/** |
- * Base class for instrumentation tests using Web Notifications on Android. |
- * |
- * Web Notifications are only supported on Android JellyBean and beyond. |
- */ |
-public class NotificationTestBase extends ChromeTabbedActivityTestBase { |
- /** The maximum time to wait for a criteria to become valid. */ |
- private static final long MAX_TIME_TO_POLL_MS = scaleTimeout(6000); |
- |
- /** The polling interval to wait between checking for a satisfied criteria. */ |
- private static final long POLLING_INTERVAL_MS = 50; |
- |
- private MockNotificationManagerProxy mMockNotificationManager; |
- private EmbeddedTestServer mTestServer; |
- |
- @Override |
- protected void setUp() throws Exception { |
- super.setUp(); |
- mTestServer = EmbeddedTestServer.createAndStartServer(getInstrumentation().getContext()); |
- } |
- |
- /** Returns the test server. */ |
- protected EmbeddedTestServer getTestServer() { |
- return mTestServer; |
- } |
- |
- /** |
- * Returns the origin of the HTTP server the test is being ran on. |
- */ |
- protected String getOrigin() { |
- return mTestServer.getURL("/"); |
- } |
- |
- /** |
- * Sets the permission to use Web Notifications for the test HTTP server's origin to |setting|. |
- */ |
- protected void setNotificationContentSettingForCurrentOrigin(final ContentSetting setting) |
- throws InterruptedException, TimeoutException { |
- final String origin = getOrigin(); |
- |
- ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
- @Override |
- public void run() { |
- // The notification content setting does not consider the embedder origin. |
- NotificationInfo notificationInfo = new NotificationInfo(origin, "", false); |
- notificationInfo.setContentSetting(setting); |
- } |
- }); |
- |
- String permission = runJavaScriptCodeInCurrentTab("Notification.permission"); |
- if (setting == ContentSetting.ALLOW) { |
- assertEquals("\"granted\"", permission); |
- } else if (setting == ContentSetting.BLOCK) { |
- assertEquals("\"denied\"", permission); |
- } else { |
- assertEquals("\"default\"", permission); |
- } |
- } |
- |
- /** |
- * Shows a notification with |title| and |options|, waits until it has been displayed and then |
- * returns the Notification object to the caller. Requires that only a single notification is |
- * being displayed in the notification manager. |
- * |
- * @param title Title of the Web Notification to show. |
- * @param options Optional map of options to include when showing the notification. |
- * @return The Android Notification object, as shown in the framework. |
- */ |
- protected Notification showAndGetNotification(String title, String options) |
- throws InterruptedException, TimeoutException { |
- runJavaScriptCodeInCurrentTab("showNotification(\"" + title + "\", " + options + ");"); |
- return waitForNotification().notification; |
- } |
- |
- /** |
- * Waits until a notification has been displayed and then returns a NotificationEntry object to |
- * the caller. Requires that only a single notification is displayed. |
- * |
- * @return The NotificationEntry object tracked by the MockNotificationManagerProxy. |
- */ |
- protected NotificationEntry waitForNotification() throws InterruptedException { |
- waitForNotificationManagerMutation(); |
- List<NotificationEntry> notifications = getNotificationEntries(); |
- assertEquals(1, notifications.size()); |
- return notifications.get(0); |
- } |
- |
- protected List<NotificationEntry> getNotificationEntries() { |
- return mMockNotificationManager.getNotifications(); |
- } |
- |
- /** |
- * Waits for a mutation to occur in the mocked notification manager. This indicates that Chrome |
- * called into Android to notify or cancel a notification. |
- */ |
- protected void waitForNotificationManagerMutation() { |
- CriteriaHelper.pollUiThread(new Criteria() { |
- @Override |
- public boolean isSatisfied() { |
- return mMockNotificationManager.getMutationCountAndDecrement() > 0; |
- } |
- }, MAX_TIME_TO_POLL_MS, POLLING_INTERVAL_MS); |
- } |
- |
- @Override |
- public void startMainActivity() throws InterruptedException { |
- // The NotificationPlatformBridge must be overriden prior to the browser process starting. |
- mMockNotificationManager = new MockNotificationManagerProxy(); |
- NotificationPlatformBridge.overrideNotificationManagerForTesting(mMockNotificationManager); |
- |
- startMainActivityFromLauncher(); |
- } |
- |
- @Override |
- protected void tearDown() throws Exception { |
- NotificationPlatformBridge.overrideNotificationManagerForTesting(null); |
- mTestServer.stopAndDestroyServer(); |
- super.tearDown(); |
- } |
-} |