Streaming https test

b/13418320

Cherrypicked from c08756abd2b6570901cd791a43def75446466d6a
https://googleplex-android-review.git.corp.google.com/#/c/433330/

Change-Id: I0ac817a3e0b2d7428469c0c1dd775c540aea36b9
diff --git a/tests/tests/media/src/android/media/cts/StreamingMediaPlayerTest.java b/tests/tests/media/src/android/media/cts/StreamingMediaPlayerTest.java
index 790cb8b..d863bc9 100644
--- a/tests/tests/media/src/android/media/cts/StreamingMediaPlayerTest.java
+++ b/tests/tests/media/src/android/media/cts/StreamingMediaPlayerTest.java
@@ -16,6 +16,7 @@
 package android.media.cts;
 
 import android.media.MediaPlayer;
+import android.util.Log;
 import android.webkit.cts.CtsTestServer;
 
 
@@ -138,6 +139,9 @@
     public void testPlayOggStreamNoLength() throws Throwable {
         localHttpAudioStreamTest("noiseandchirps.ogg", false, true);
     }
+    public void testPlayMp3Stream1Ssl() throws Throwable {
+        localHttpsAudioStreamTest("ringer.mp3", false, false);
+    }
 
     private void localHttpAudioStreamTest(final String name, boolean redirect, boolean nolength)
             throws Throwable {
@@ -193,4 +197,52 @@
             mServer.shutdown();
         }
     }
+
+    private void localHttpsAudioStreamTest(final String name, boolean redirect, boolean nolength)
+            throws Throwable {
+        mServer = new CtsTestServer(mContext, true);
+        try {
+            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_url);
+
+            mMediaPlayer.setDisplay(getActivity().getSurfaceHolder());
+            mMediaPlayer.setScreenOnWhilePlaying(true);
+
+            mOnBufferingUpdateCalled.reset();
+            mMediaPlayer.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener() {
+                @Override
+                public void onBufferingUpdate(MediaPlayer mp, int percent) {
+                    mOnBufferingUpdateCalled.signal();
+                }
+            });
+            mMediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {
+                @Override
+                public boolean onError(MediaPlayer mp, int what, int extra) {
+                    fail("Media player had error " + what + " playing " + name);
+                    return true;
+                }
+            });
+
+            assertFalse(mOnBufferingUpdateCalled.isSignalled());
+            try {
+                mMediaPlayer.prepare();
+            } catch (Exception ex) {
+                return;
+            }
+            fail("https playback should have failed");
+        } finally {
+            mServer.shutdown();
+        }
+    }
 }