diff options
author | Marco Nelissen <marcone@google.com> | 2011-06-02 15:07:43 -0700 |
---|---|---|
committer | Brian Muramatsu <btmura@android.com> | 2011-06-02 17:31:40 -0700 |
commit | 09a875085da3bf2ebb70970b22c5886eb254ada3 (patch) | |
tree | 350d8779ef3d83f7050e215a287544eb60d4a5ce | |
parent | dce64eabacfec9e0159053d9bcc3293397ccc8db (diff) | |
download | platform_cts-09a875085da3bf2ebb70970b22c5886eb254ada3.tar.gz platform_cts-09a875085da3bf2ebb70970b22c5886eb254ada3.tar.bz2 platform_cts-09a875085da3bf2ebb70970b22c5886eb254ada3.zip |
Add more CTS tests.
These tests cover streaming mp3 over http, streaming the same file
again, streaming with a redirect, streaming with unknown content
length, streaming ogg vorbis, streaming ogg vorbis with redirect,
and streaming ogg vorbis with unknown content length.
Change-Id: I40b0dd5f7d1b44c2e27ab46bff5e0850d65e4776
-rw-r--r-- | tests/assets/noiseandchirps.mp3 | bin | 0 -> 66036 bytes | |||
-rw-r--r-- | tests/assets/noiseandchirps.ogg | bin | 0 -> 65903 bytes | |||
-rw-r--r-- | tests/src/android/webkit/cts/CtsTestServer.java | 6 | ||||
-rw-r--r-- | tests/tests/media/src/android/media/cts/MediaPlayerTest.java | 59 |
4 files changed, 58 insertions, 7 deletions
diff --git a/tests/assets/noiseandchirps.mp3 b/tests/assets/noiseandchirps.mp3 Binary files differnew file mode 100644 index 00000000000..a819efcd86e --- /dev/null +++ b/tests/assets/noiseandchirps.mp3 diff --git a/tests/assets/noiseandchirps.ogg b/tests/assets/noiseandchirps.ogg Binary files differnew file mode 100644 index 00000000000..1acb643decf --- /dev/null +++ b/tests/assets/noiseandchirps.ogg diff --git a/tests/src/android/webkit/cts/CtsTestServer.java b/tests/src/android/webkit/cts/CtsTestServer.java index 87b3d1dd75c..78eed43e483 100644 --- a/tests/src/android/webkit/cts/CtsTestServer.java +++ b/tests/src/android/webkit/cts/CtsTestServer.java @@ -87,6 +87,7 @@ public class CtsTestServer { public static final String COOKIE_PREFIX = "/cookie"; public static final String AUTH_PREFIX = "/auth"; public static final String SHUTDOWN_PREFIX = "/shutdown"; + public static final String NOLENGTH_POSTFIX = "nolength"; public static final int DELAY_MILLIS = 2000; public static final String AUTH_REALM = "Android CTS"; @@ -381,6 +382,7 @@ public class CtsTestServer { mLastQuery = uriString; URI uri = URI.create(uriString); String path = uri.getPath(); + String query = uri.getQuery(); if (path.equals(FAVICON_PATH)) { path = FAVICON_ASSET_PATH; } @@ -449,7 +451,9 @@ public class CtsTestServer { } entity.setContentType(mimeType); response.setEntity(entity); - response.setHeader("Content-Length", "" + entity.getContentLength()); + if (query == null || !query.contains(NOLENGTH_POSTFIX)) { + response.setHeader("Content-Length", "" + entity.getContentLength()); + } } catch (IOException e) { response = null; // fall through, return 404 at the end diff --git a/tests/tests/media/src/android/media/cts/MediaPlayerTest.java b/tests/tests/media/src/android/media/cts/MediaPlayerTest.java index a4a17c09dcb..d18d684c9ef 100644 --- a/tests/tests/media/src/android/media/cts/MediaPlayerTest.java +++ b/tests/tests/media/src/android/media/cts/MediaPlayerTest.java @@ -51,6 +51,7 @@ public class MediaPlayerTest extends ActivityInstrumentationTestCase2<MediaStubA private static String TAG = "CtsMediaPlayerTest"; private static final int SLEEP_TIME = 1000; + private static final int LONG_SLEEP_TIME = 6000; private final String mSourceMediaOnSdcard; private Monitor mOnVideoSizeChangedCalled = new Monitor(); private Monitor mOnBufferingUpdateCalled = new Monitor(); @@ -89,6 +90,10 @@ public class MediaPlayerTest extends ActivityInstrumentationTestCase2<MediaStubA private static class Monitor { private boolean signalled; + public synchronized void reset() { + signalled = false; + } + public synchronized void signal() { signalled = true; notifyAll(); @@ -419,15 +424,49 @@ public class MediaPlayerTest extends ActivityInstrumentationTestCase2<MediaStubA args = {} ) }) - public void testPlayStream() throws Throwable { + + public void testPlayMp3Stream1() throws Throwable { + streamTest("ringer.mp3", false, false); + } + public void testPlayMp3Stream2() throws Throwable { + streamTest("ringer.mp3", false, false); + } + public void testPlayMp3StreamRedirect() throws Throwable { + streamTest("ringer.mp3", true, false); + } + public void testPlayMp3StreamNoLength() throws Throwable { + streamTest("noiseandchirps.mp3", false, true); + } + public void testPlayOggStream() throws Throwable { + streamTest("noiseandchirps.ogg", false, false); + } + public void testPlayOggStreamRedirect() throws Throwable { + streamTest("noiseandchirps.ogg", true, false); + } + public void testPlayOggStreamNoLength() throws Throwable { + streamTest("noiseandchirps.ogg", false, true); + } + + private void streamTest(String name, boolean redirect, boolean nolength) throws Throwable { mServer = new CtsTestServer(mContext); - final String stream_mp3 = mServer.getAssetUrl("ringer.mp3"); + String stream_url = null; + if (redirect) { + // Stagefright doesn't have a limit, but we can't test support of infinite redirects + // Up to 4 redirects seems reasonable though. + stream_url = mServer.getRedirectingAssetUrl(name, 4); + } else { + stream_url = mServer.getAssetUrl(name); + } + if (nolength) { + stream_url = stream_url + "?" + CtsTestServer.NOLENGTH_POSTFIX; + } - mMediaPlayer.setDataSource(stream_mp3); + mMediaPlayer.setDataSource(stream_url); mMediaPlayer.setDisplay(getActivity().getSurfaceHolder()); mMediaPlayer.setScreenOnWhilePlaying(true); + mOnBufferingUpdateCalled.reset(); mMediaPlayer.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener() { public void onBufferingUpdate(MediaPlayer mp, int percent) { mOnBufferingUpdateCalled.signal(); @@ -436,11 +475,18 @@ public class MediaPlayerTest extends ActivityInstrumentationTestCase2<MediaStubA assertFalse(mOnBufferingUpdateCalled.signalled); mMediaPlayer.prepare(); - mOnBufferingUpdateCalled.waitForSignal(); - mMediaPlayer.start(); - Thread.sleep(SLEEP_TIME); + if (nolength) { + mMediaPlayer.start(); + Thread.sleep(LONG_SLEEP_TIME); + assertFalse(mMediaPlayer.isPlaying()); + } else { + mOnBufferingUpdateCalled.waitForSignal(); + mMediaPlayer.start(); + Thread.sleep(SLEEP_TIME); + } mMediaPlayer.stop(); + mMediaPlayer.reset(); } @TestTargets({ @@ -537,6 +583,7 @@ public class MediaPlayerTest extends ActivityInstrumentationTestCase2<MediaStubA } }); + mOnCompletionCalled.reset(); mMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { public void onCompletion(MediaPlayer mp) { mOnCompletionCalled.signal(); |