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

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

Issue 2439483003: Link MediaSessionTabHelper with native MediaSession [CL is going to be split] (Closed)
Patch Set: addressed nits Created 4 years, 2 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chrome.browser.media.ui; 5 package org.chromium.chrome.browser.media.ui;
6 6
7 import static org.chromium.base.test.util.Restriction.RESTRICTION_TYPE_NON_LOW_E ND_DEVICE; 7 import static org.chromium.base.test.util.Restriction.RESTRICTION_TYPE_NON_LOW_E ND_DEVICE;
8 8
9 import android.app.Notification; 9 import android.app.Notification;
10 import android.test.suitebuilder.annotation.SmallTest; 10 import android.test.suitebuilder.annotation.SmallTest;
11 import android.view.View; 11 import android.view.View;
12 import android.widget.TextView; 12 import android.widget.TextView;
13 13
14 import org.chromium.base.ObserverList;
15 import org.chromium.base.ThreadUtils; 14 import org.chromium.base.ThreadUtils;
16 import org.chromium.base.test.util.Restriction; 15 import org.chromium.base.test.util.Restriction;
17 import org.chromium.base.test.util.RetryOnFailure; 16 import org.chromium.base.test.util.RetryOnFailure;
18 import org.chromium.chrome.R; 17 import org.chromium.chrome.R;
19 import org.chromium.chrome.browser.ChromeActivity; 18 import org.chromium.chrome.browser.ChromeActivity;
20 import org.chromium.chrome.browser.tab.Tab; 19 import org.chromium.chrome.browser.tab.Tab;
21 import org.chromium.chrome.test.ChromeActivityTestCaseBase; 20 import org.chromium.chrome.test.ChromeActivityTestCaseBase;
22 import org.chromium.chrome.test.util.ChromeRestriction; 21 import org.chromium.chrome.test.util.ChromeRestriction;
23 import org.chromium.chrome.test.util.browser.TabTitleObserver; 22 import org.chromium.chrome.test.util.browser.TabTitleObserver;
24 import org.chromium.content.browser.test.util.Criteria; 23 import org.chromium.content.browser.test.util.Criteria;
25 import org.chromium.content.browser.test.util.CriteriaHelper; 24 import org.chromium.content.browser.test.util.CriteriaHelper;
26 import org.chromium.content.browser.test.util.JavaScriptUtils; 25 import org.chromium.content.browser.test.util.JavaScriptUtils;
27 import org.chromium.content_public.browser.WebContentsObserver;
28 import org.chromium.content_public.common.MediaMetadata; 26 import org.chromium.content_public.common.MediaMetadata;
29 27
30 /** 28 /**
31 * Test of media notifications to see whether the text updates when the tab titl e changes or the 29 * Test of media notifications to see whether the text updates when the tab titl e changes or the
32 * MediaMetadata gets updated. 30 * MediaMetadata gets updated.
33 */ 31 */
34 @RetryOnFailure 32 @RetryOnFailure
35 public class NotificationTitleUpdatedTest extends ChromeActivityTestCaseBase<Chr omeActivity> { 33 public class NotificationTitleUpdatedTest extends ChromeActivityTestCaseBase<Chr omeActivity> {
36 private static final int NOTIFICATION_ID = R.id.media_playback_notification; 34 private static final int NOTIFICATION_ID = R.id.media_playback_notification;
37 35
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 @Override 141 @Override
144 public void startMainActivity() throws InterruptedException { 142 public void startMainActivity() throws InterruptedException {
145 startMainActivityOnBlankPage(); 143 startMainActivityOnBlankPage();
146 } 144 }
147 145
148 private void simulateMediaSessionStateChanged( 146 private void simulateMediaSessionStateChanged(
149 final Tab tab, final boolean isControllable, final boolean isSuspend ed) { 147 final Tab tab, final boolean isControllable, final boolean isSuspend ed) {
150 ThreadUtils.runOnUiThreadBlocking(new Runnable() { 148 ThreadUtils.runOnUiThreadBlocking(new Runnable() {
151 @Override 149 @Override
152 public void run() { 150 public void run() {
153 ObserverList.RewindableIterator<WebContentsObserver> observe rs = 151 MediaSessionTabHelper.getHelperFromTabForTesting(tab)
154 tab.getWebContents().getObserversForTesting(); 152 .getMediaSessionDelegateForTesting()
155 while (observers.hasNext()) { 153 .mediaSessionStateChanged(isControllable, isSuspende d);
156 observers.next().mediaSessionStateChanged(isControllable , isSuspended);
157 }
158 } 154 }
159 }); 155 });
160 } 156 }
161 157
162 private void simulateMediaSessionMetadataChanged(final Tab tab, final MediaM etadata metadata) { 158 private void simulateMediaSessionMetadataChanged(final Tab tab, final MediaM etadata metadata) {
163 ThreadUtils.runOnUiThreadBlocking(new Runnable() { 159 ThreadUtils.runOnUiThreadBlocking(new Runnable() {
164 @Override 160 @Override
165 public void run() { 161 public void run() {
166 ObserverList.RewindableIterator<WebContentsObserver> observers = 162 MediaSessionTabHelper.getHelperFromTabForTesting(tab)
167 tab.getWebContents().getObserversForTesting(); 163 .getMediaSessionDelegateForTesting()
168 while (observers.hasNext()) { 164 .mediaSessionMetadataChanged(metadata);
169 observers.next().mediaSessionMetadataChanged(metadata);
170 }
171 } 165 }
172 }); 166 });
173 } 167 }
174 168
175 private void simulateUpdateTitle(Tab tab, String title) { 169 private void simulateUpdateTitle(Tab tab, String title) {
176 try { 170 try {
177 TabTitleObserver observer = new TabTitleObserver(tab, title); 171 TabTitleObserver observer = new TabTitleObserver(tab, title);
178 JavaScriptUtils.executeJavaScriptAndWaitForResult( 172 JavaScriptUtils.executeJavaScriptAndWaitForResult(
179 tab.getWebContents(), 173 tab.getWebContents(),
180 "document.title = '" + title + "';"); 174 "document.title = '" + title + "';");
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 // The TextView id will be in Chrome's namespace. 206 // The TextView id will be in Chrome's namespace.
213 view = (TextView) contentView.findViewById(R.id.title); 207 view = (TextView) contentView.findViewById(R.id.title);
214 } 208 }
215 observedText = view.getText().toString(); 209 observedText = view.getText().toString();
216 210
217 assertEquals(title, observedText); 211 assertEquals(title, observedText);
218 } 212 }
219 }); 213 });
220 } 214 }
221 } 215 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698