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

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

Issue 2831823003: Convert ChromeActivityTestCaseBase direct children to JUnit4 (Closed)
Patch Set: rebase and convert newly added test Created 3 years, 8 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
Index: chrome/android/javatests/src/org/chromium/chrome/browser/media/ui/AutoplayMutedNotificationTest.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/media/ui/AutoplayMutedNotificationTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/media/ui/AutoplayMutedNotificationTest.java
index 716c42b6ca20247c634f41a354c305f407e80bb9..20e77d97b8f5d47b1e78c4428a0d99a4823d56ab 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/media/ui/AutoplayMutedNotificationTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/media/ui/AutoplayMutedNotificationTest.java
@@ -8,14 +8,25 @@ import static org.chromium.base.test.util.Restriction.RESTRICTION_TYPE_NON_LOW_E
import android.content.Context;
import android.media.AudioManager;
+import android.support.test.InstrumentationRegistry;
import android.support.test.filters.SmallTest;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import org.chromium.base.test.util.CommandLineFlags;
import org.chromium.base.test.util.Restriction;
import org.chromium.base.test.util.RetryOnFailure;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeActivity;
+import org.chromium.chrome.browser.ChromeSwitches;
import org.chromium.chrome.browser.tab.Tab;
-import org.chromium.chrome.test.ChromeActivityTestCaseBase;
+import org.chromium.chrome.test.ChromeActivityTestRule;
+import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
import org.chromium.content.browser.test.util.DOMUtils;
import org.chromium.content.browser.test.util.JavaScriptUtils;
import org.chromium.net.test.EmbeddedTestServer;
@@ -23,21 +34,25 @@ import org.chromium.net.test.EmbeddedTestServer;
/**
* Integration test that checks that autoplay muted doesn't show a notification nor take audio focus
*/
+@RunWith(ChromeJUnit4ClassRunner.class)
@RetryOnFailure
-public class AutoplayMutedNotificationTest extends ChromeActivityTestCaseBase<ChromeActivity> {
+@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE,
+ ChromeActivityTestRule.DISABLE_NETWORK_PREDICTION_FLAG})
+public class AutoplayMutedNotificationTest {
+ @Rule
+ public ChromeActivityTestRule<ChromeActivity> mActivityTestRule =
+ new ChromeActivityTestRule<>(ChromeActivity.class);
+
private static final String TEST_PATH = "/content/test/data/media/session/autoplay-muted.html";
private static final String VIDEO_ID = "video";
private static final int AUDIO_FOCUS_CHANGE_TIMEOUT = 500; // ms
private EmbeddedTestServer mTestServer;
- public AutoplayMutedNotificationTest() {
- super(ChromeActivity.class);
- }
-
private AudioManager getAudioManager() {
- return (AudioManager) getActivity().getApplicationContext().getSystemService(
- Context.AUDIO_SERVICE);
+ return (AudioManager) mActivityTestRule.getActivity()
+ .getApplicationContext()
+ .getSystemService(Context.AUDIO_SERVICE);
}
private boolean isMediaNotificationVisible() {
@@ -60,7 +75,7 @@ public class AutoplayMutedNotificationTest extends ChromeActivityTestCaseBase<Ch
int result = getAudioManager().requestAudioFocus(
this, AudioManager.STREAM_MUSIC, focusType);
if (result != AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
- fail("Did not get audio focus");
+ Assert.fail("Did not get audio focus");
} else {
mAudioFocusState = focusType;
}
@@ -69,33 +84,31 @@ public class AutoplayMutedNotificationTest extends ChromeActivityTestCaseBase<Ch
private MockAudioFocusChangeListener mAudioFocusChangeListener;
- @Override
- protected void setUp() throws Exception {
- mTestServer = EmbeddedTestServer.createAndStartServer(getInstrumentation().getContext());
+ @Before
+ public void setUp() throws Exception {
+ mTestServer = EmbeddedTestServer.createAndStartServer(
+ InstrumentationRegistry.getInstrumentation().getContext());
mAudioFocusChangeListener = new MockAudioFocusChangeListener();
- super.setUp();
+ mActivityTestRule.startMainActivityWithURL(mTestServer.getURL(TEST_PATH));
}
- @Override
- protected void tearDown() throws Exception {
+ @After
+ public void tearDown() throws Exception {
mTestServer.stopAndDestroyServer();
- super.tearDown();
- }
-
- @Override
- public void startMainActivity() throws InterruptedException {
- startMainActivityWithURL(mTestServer.getURL(TEST_PATH));
}
+ @Test
@SmallTest
@Restriction(RESTRICTION_TYPE_NON_LOW_END_DEVICE)
public void testBasic() throws Exception {
- Tab tab = getActivity().getActivityTab();
+ Tab tab = mActivityTestRule.getActivity().getActivityTab();
// Taking audio focus.
- assertEquals(AudioManager.AUDIOFOCUS_LOSS, mAudioFocusChangeListener.getAudioFocusState());
+ Assert.assertEquals(
+ AudioManager.AUDIOFOCUS_LOSS, mAudioFocusChangeListener.getAudioFocusState());
mAudioFocusChangeListener.requestAudioFocus(AudioManager.AUDIOFOCUS_GAIN);
- assertEquals(AudioManager.AUDIOFOCUS_GAIN, mAudioFocusChangeListener.getAudioFocusState());
+ Assert.assertEquals(
+ AudioManager.AUDIOFOCUS_GAIN, mAudioFocusChangeListener.getAudioFocusState());
// The page will autoplay the video.
DOMUtils.waitForMediaPlay(tab.getWebContents(), VIDEO_ID);
@@ -104,42 +117,49 @@ public class AutoplayMutedNotificationTest extends ChromeActivityTestCaseBase<Ch
Thread.sleep(AUDIO_FOCUS_CHANGE_TIMEOUT);
// Audio focus was not taken and no notification is visible.
- assertEquals(AudioManager.AUDIOFOCUS_GAIN, mAudioFocusChangeListener.getAudioFocusState());
- assertFalse(isMediaNotificationVisible());
+ Assert.assertEquals(
+ AudioManager.AUDIOFOCUS_GAIN, mAudioFocusChangeListener.getAudioFocusState());
+ Assert.assertFalse(isMediaNotificationVisible());
}
+ @Test
@SmallTest
@Restriction(RESTRICTION_TYPE_NON_LOW_END_DEVICE)
public void testDoesNotReactToAudioFocus() throws Exception {
- Tab tab = getActivity().getActivityTab();
+ Tab tab = mActivityTestRule.getActivity().getActivityTab();
// The page will autoplay the video.
DOMUtils.waitForMediaPlay(tab.getWebContents(), VIDEO_ID);
// Taking audio focus.
- assertEquals(AudioManager.AUDIOFOCUS_LOSS, mAudioFocusChangeListener.getAudioFocusState());
+ Assert.assertEquals(
+ AudioManager.AUDIOFOCUS_LOSS, mAudioFocusChangeListener.getAudioFocusState());
mAudioFocusChangeListener.requestAudioFocus(AudioManager.AUDIOFOCUS_GAIN);
- assertEquals(AudioManager.AUDIOFOCUS_GAIN, mAudioFocusChangeListener.getAudioFocusState());
+ Assert.assertEquals(
+ AudioManager.AUDIOFOCUS_GAIN, mAudioFocusChangeListener.getAudioFocusState());
// Audio focus notification is OS-driven.
Thread.sleep(AUDIO_FOCUS_CHANGE_TIMEOUT);
// Video did not pause.
- assertFalse(DOMUtils.isMediaPaused(tab.getWebContents(), VIDEO_ID));
+ Assert.assertFalse(DOMUtils.isMediaPaused(tab.getWebContents(), VIDEO_ID));
// Still no notification.
- assertFalse(isMediaNotificationVisible());
+ Assert.assertFalse(isMediaNotificationVisible());
}
+ @Test
@SmallTest
@Restriction(RESTRICTION_TYPE_NON_LOW_END_DEVICE)
public void testAutoplayMutedThenUnmute() throws Exception {
- Tab tab = getActivity().getActivityTab();
+ Tab tab = mActivityTestRule.getActivity().getActivityTab();
// Taking audio focus.
- assertEquals(AudioManager.AUDIOFOCUS_LOSS, mAudioFocusChangeListener.getAudioFocusState());
+ Assert.assertEquals(
+ AudioManager.AUDIOFOCUS_LOSS, mAudioFocusChangeListener.getAudioFocusState());
mAudioFocusChangeListener.requestAudioFocus(AudioManager.AUDIOFOCUS_GAIN);
- assertEquals(AudioManager.AUDIOFOCUS_GAIN, mAudioFocusChangeListener.getAudioFocusState());
+ Assert.assertEquals(
+ AudioManager.AUDIOFOCUS_GAIN, mAudioFocusChangeListener.getAudioFocusState());
// The page will autoplay the video.
DOMUtils.waitForMediaPlay(tab.getWebContents(), VIDEO_ID);
@@ -154,16 +174,17 @@ public class AutoplayMutedNotificationTest extends ChromeActivityTestCaseBase<Ch
// Unmute from script.
String result = JavaScriptUtils.executeJavaScriptAndWaitForResult(
tab.getWebContents(), sb.toString());
- assertTrue(result.trim().equalsIgnoreCase("false"));
+ Assert.assertTrue(result.trim().equalsIgnoreCase("false"));
// Video is paused.
- assertTrue(DOMUtils.isMediaPaused(tab.getWebContents(), VIDEO_ID));
+ Assert.assertTrue(DOMUtils.isMediaPaused(tab.getWebContents(), VIDEO_ID));
// Audio focus notification is OS-driven.
Thread.sleep(AUDIO_FOCUS_CHANGE_TIMEOUT);
// Audio focus was not taken and no notification is visible.
- assertEquals(AudioManager.AUDIOFOCUS_GAIN, mAudioFocusChangeListener.getAudioFocusState());
- assertFalse(isMediaNotificationVisible());
+ Assert.assertEquals(
+ AudioManager.AUDIOFOCUS_GAIN, mAudioFocusChangeListener.getAudioFocusState());
+ Assert.assertFalse(isMediaNotificationVisible());
}
}

Powered by Google App Engine
This is Rietveld 408576698