Merge "Update BuildVersionTest to support 4.2.2" into jb-mr1.1-dev
diff --git a/tests/tests/media/src/android/media/cts/RingtoneTest.java b/tests/tests/media/src/android/media/cts/RingtoneTest.java
index 024f44d..6e3a1e9 100644
--- a/tests/tests/media/src/android/media/cts/RingtoneTest.java
+++ b/tests/tests/media/src/android/media/cts/RingtoneTest.java
@@ -21,6 +21,7 @@
 import android.media.AudioManager;
 import android.media.Ringtone;
 import android.media.RingtoneManager;
+import android.net.Uri;
 import android.provider.Settings;
 import android.test.AndroidTestCase;
 
@@ -32,6 +33,7 @@
     private int mOriginalVolume;
     private int mOriginalRingerMode;
     private int mOriginalStreamType;
+    private Uri mDefaultRingUri;
 
     @Override
     protected void setUp() throws Exception {
@@ -49,6 +51,9 @@
                 AudioManager.FLAG_ALLOW_RINGER_MODES);
         // make sure that we are not in silent mode
         mAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
+
+        mDefaultRingUri = RingtoneManager.getActualDefaultRingtoneUri(mContext,
+                RingtoneManager.TYPE_RINGTONE);
     }
 
     @Override
@@ -63,6 +68,8 @@
             mAudioManager.setStreamVolume(AudioManager.STREAM_RING, mOriginalVolume,
                     AudioManager.FLAG_ALLOW_RINGER_MODES);
         }
+        RingtoneManager.setActualDefaultRingtoneUri(mContext, RingtoneManager.TYPE_RINGTONE,
+                mDefaultRingUri);
         super.tearDown();
     }
 
@@ -79,8 +86,20 @@
         mRingtone.setStreamType(AudioManager.STREAM_RING);
         assertEquals(AudioManager.STREAM_RING, mRingtone.getStreamType());
 
+        // test both the "None" ringtone and an actual ringtone
+        RingtoneManager.setActualDefaultRingtoneUri(mContext, RingtoneManager.TYPE_RINGTONE, null);
+        mRingtone = RingtoneManager.getRingtone(mContext, Settings.System.DEFAULT_RINGTONE_URI);
+        assertTrue(mRingtone.getStreamType() == AudioManager.STREAM_RING);
         mRingtone.play();
-        assertTrue(mRingtone.isPlaying());
+        assertFalse(mRingtone.isPlaying());
+
+        Uri uri = RingtoneManager.getValidRingtoneUri(mContext);
+        assertNotNull("ringtone was unexpectedly null", uri);
+        RingtoneManager.setActualDefaultRingtoneUri(mContext, RingtoneManager.TYPE_RINGTONE, uri);
+        mRingtone = RingtoneManager.getRingtone(mContext, Settings.System.DEFAULT_RINGTONE_URI);
+        assertTrue(mRingtone.getStreamType() == AudioManager.STREAM_RING);
+        mRingtone.play();
+        assertTrue("couldn't play ringtone " + uri, mRingtone.isPlaying());
         mRingtone.stop();
         assertFalse(mRingtone.isPlaying());
     }