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