Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(685)

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/media/ui/NotificationTitleUpdatedTest.java

Issue 2678803002: [Media>UI] Reset media metadata when navigating away (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/media/ui/MediaSessionTabHelper.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/javatests/src/org/chromium/chrome/browser/media/ui/NotificationTitleUpdatedTest.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/media/ui/NotificationTitleUpdatedTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/media/ui/NotificationTitleUpdatedTest.java
index 52772e44b22018b583c2de0d803cc3ec5c3b5f66..7b71e02be318b87259c957128e67d764633bb013 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/media/ui/NotificationTitleUpdatedTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/media/ui/NotificationTitleUpdatedTest.java
@@ -27,6 +27,7 @@ import org.chromium.content.browser.test.util.JavaScriptUtils;
import org.chromium.content_public.browser.MediaSession;
import org.chromium.content_public.browser.MediaSessionObserver;
import org.chromium.content_public.common.MediaMetadata;
+import org.chromium.net.test.EmbeddedTestServer;
/**
* Test of media notifications to see whether the text updates when the tab title changes or the
@@ -35,8 +36,10 @@ import org.chromium.content_public.common.MediaMetadata;
@RetryOnFailure
public class NotificationTitleUpdatedTest extends ChromeActivityTestCaseBase<ChromeActivity> {
private static final int NOTIFICATION_ID = R.id.media_playback_notification;
+ private static final String SIMPLE_PAGE_URL = "/simple_page.html";
private Tab mTab;
+ private EmbeddedTestServer mTestServer;
public NotificationTitleUpdatedTest() {
super(ChromeActivity.class);
@@ -49,34 +52,45 @@ public class NotificationTitleUpdatedTest extends ChromeActivityTestCaseBase<Chr
simulateUpdateTitle(mTab, "title1");
}
- private void doTestSessionStatePlaying() {
+ @Override
+ protected void tearDown() throws Exception {
+ if (mTestServer != null) mTestServer.stopAndDestroyServer();
+ super.tearDown();
+ }
+
+ @SmallTest
+ public void testSessionStatePlaying() {
simulateMediaSessionStateChanged(mTab, true, false);
assertTitleMatches("title1");
simulateUpdateTitle(mTab, "title2");
assertTitleMatches("title2");
}
- private void doTestSessionStatePaused() {
+ @SmallTest
+ public void testSessionStatePaused() {
simulateMediaSessionStateChanged(mTab, true, true);
assertTitleMatches("title1");
simulateUpdateTitle(mTab, "title2");
assertTitleMatches("title2");
}
- private void doTestSessionStateUncontrollable() {
+ @SmallTest
+ public void testSessionStateUncontrollable() {
simulateMediaSessionStateChanged(mTab, true, false);
assertTitleMatches("title1");
simulateMediaSessionStateChanged(mTab, false, false);
simulateUpdateTitle(mTab, "title2");
}
- private void doTestMediaMetadataSetsTitle() {
+ @SmallTest
+ public void testMediaMetadataSetsTitle() {
simulateMediaSessionStateChanged(mTab, true, false);
simulateMediaSessionMetadataChanged(mTab, new MediaMetadata("title2", "", ""));
assertTitleMatches("title2");
}
- private void doTestMediaMetadataOverridesTitle() {
+ @SmallTest
+ public void testMediaMetadataOverridesTitle() {
simulateMediaSessionStateChanged(mTab, true, false);
simulateMediaSessionMetadataChanged(mTab, new MediaMetadata("title2", "", ""));
assertTitleMatches("title2");
@@ -94,7 +108,9 @@ public class NotificationTitleUpdatedTest extends ChromeActivityTestCaseBase<Chr
* 4. change the title of newTab and then mTab to different names,
* the notification should have the title of newTab.
*/
- private void doTestMultipleTabs() throws Throwable {
+ @SmallTest
+ @Restriction({ChromeRestriction.RESTRICTION_TYPE_PHONE, RESTRICTION_TYPE_NON_LOW_END_DEVICE})
+ public void testMultipleTabs() throws Throwable {
simulateMediaSessionStateChanged(mTab, true, false);
assertTitleMatches("title1");
simulateMediaSessionStateChanged(mTab, false, false);
@@ -109,35 +125,27 @@ public class NotificationTitleUpdatedTest extends ChromeActivityTestCaseBase<Chr
}
@SmallTest
- public void testSessionStatePlaying_MediaStyleNotification() {
- doTestSessionStatePlaying();
- }
-
- @SmallTest
- public void testSessionStatePaused_MediaStyleNotification() {
- doTestSessionStatePaused();
- }
-
- @SmallTest
- public void testSessionStateUncontrollable_MediaStyleNotification()
- throws InterruptedException {
- doTestSessionStateUncontrollable();
- }
+ public void testMediaMetadataResetsAfterNavigation() throws Throwable {
+ loadUrl("about:blank");
+ simulateMediaSessionStateChanged(mTab, true, false);
+ simulateMediaSessionMetadataChanged(mTab, new MediaMetadata("title2", "", ""));
+ assertTitleMatches("title2");
- @SmallTest
- public void testMediaMetadataSetsTitle_MediaStyleNotification() {
- doTestMediaMetadataSetsTitle();
+ loadUrl("data:text/html;charset=utf-8,"
+ + "<html><head><title>title1</title></head><body/></html>");
+ assertTitleMatches("title1");
}
@SmallTest
- public void testMediaMetadataOverridesTitle_MediaStyleNotification() {
- doTestMediaMetadataOverridesTitle();
- }
+ public void testMediaMetadataPersistsAfterInPageNavigation() throws Throwable {
+ ensureTestServer();
+ loadUrl(mTestServer.getURL(SIMPLE_PAGE_URL));
+ simulateMediaSessionStateChanged(mTab, true, false);
+ simulateMediaSessionMetadataChanged(mTab, new MediaMetadata("title2", "", ""));
+ assertTitleMatches("title2");
- @SmallTest
- @Restriction({ChromeRestriction.RESTRICTION_TYPE_PHONE, RESTRICTION_TYPE_NON_LOW_END_DEVICE})
- public void testMultipleTabs_MediaStyleNotification() throws Throwable {
- doTestMultipleTabs();
+ loadUrl(mTestServer.getURL(SIMPLE_PAGE_URL + "#some-anchor"));
+ assertTitleMatches("title2");
}
@Override
@@ -185,7 +193,7 @@ public class NotificationTitleUpdatedTest extends ChromeActivityTestCaseBase<Chr
}
}
- void assertTitleMatches(final String title) {
+ private void assertTitleMatches(final String title) {
// The service might still not be created which delays the creation of the notification
// builder.
CriteriaHelper.pollUiThread(new Criteria() {
@@ -219,4 +227,13 @@ public class NotificationTitleUpdatedTest extends ChromeActivityTestCaseBase<Chr
}
});
}
+
+ private void ensureTestServer() {
+ try {
+ mTestServer = EmbeddedTestServer.createAndStartServer(
+ getInstrumentation().getContext());
+ } catch (Exception e) {
+ fail("Failed to start test server");
+ }
+ }
}
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/media/ui/MediaSessionTabHelper.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698