Merge change 8296 into donut
* changes:
Remove NoReceiveSmsPermissionTest from large continuous suite.
diff --git a/tests/AndroidManifest.xml b/tests/AndroidManifest.xml
index 6e56af6..bf6c96c 100644
--- a/tests/AndroidManifest.xml
+++ b/tests/AndroidManifest.xml
@@ -110,6 +110,14 @@
</intent-filter>
</activity>
+ <activity android:name="android.media.cts.RingtonePickerActivity"
+ android:label="RingtonePickerActivity">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN"/>
+ <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
+ </intent-filter>
+ </activity>
+
<activity android:name="android.view.cts.ViewStubStubActivity"
android:label="ViewStubStubActivity">
<intent-filter>
diff --git a/tests/src/android/media/cts/RingtonePickerActivity.java b/tests/src/android/media/cts/RingtonePickerActivity.java
new file mode 100644
index 0000000..9e7139c
--- /dev/null
+++ b/tests/src/android/media/cts/RingtonePickerActivity.java
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package android.media.cts;
+
+import android.app.Activity;
+
+/**
+ * This activity is just for create a RingtoneManager
+ */
+public class RingtonePickerActivity extends Activity {
+}
diff --git a/tests/tests/media/src/android/media/cts/RingtoneManagerTest.java b/tests/tests/media/src/android/media/cts/RingtoneManagerTest.java
new file mode 100644
index 0000000..0bece06
--- /dev/null
+++ b/tests/tests/media/src/android/media/cts/RingtoneManagerTest.java
@@ -0,0 +1,251 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package android.media.cts;
+
+import dalvik.annotation.TestLevel;
+import dalvik.annotation.TestTargetClass;
+import dalvik.annotation.TestTargetNew;
+import dalvik.annotation.TestTargets;
+
+import android.app.Activity;
+import android.app.Instrumentation;
+import android.content.Context;
+import android.database.Cursor;
+import android.media.AudioManager;
+import android.media.Ringtone;
+import android.media.RingtoneManager;
+import android.net.Uri;
+import android.provider.Settings;
+import android.test.ActivityInstrumentationTestCase2;
+
+@TestTargetClass(RingtoneManager.class)
+public class RingtoneManagerTest
+ extends ActivityInstrumentationTestCase2<RingtonePickerActivity> {
+
+ private static final String PKG = "com.android.cts.stub";
+
+ private RingtonePickerActivity mActivity;
+ private Instrumentation mInstrumentation;
+ private Context mContext;
+ private RingtoneManager mRingtoneManager;
+ private AudioManager mAudioManager;
+ private int mOriginalVolume;
+ private Uri mDefaultUri;
+
+ public RingtoneManagerTest() {
+ super(PKG, RingtonePickerActivity.class);
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ mActivity = getActivity();
+ mInstrumentation = getInstrumentation();
+ mContext = mInstrumentation.getContext();
+ mRingtoneManager = new RingtoneManager(mActivity);
+ mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
+ // backup ringer settings
+ mOriginalVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_RING);
+ mDefaultUri = RingtoneManager.getActualDefaultRingtoneUri(mContext,
+ RingtoneManager.TYPE_RINGTONE);
+ // set ringer to a reasonable volume
+ int maxVolume = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_RING);
+ mAudioManager.setStreamVolume(AudioManager.STREAM_RING, maxVolume / 2,
+ AudioManager.FLAG_ALLOW_RINGER_MODES);
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ // restore original ringer settings
+ if (mAudioManager != null) {
+ mAudioManager.setStreamVolume(AudioManager.STREAM_RING, mOriginalVolume,
+ AudioManager.FLAG_ALLOW_RINGER_MODES);
+ }
+ RingtoneManager.setActualDefaultRingtoneUri(mContext, RingtoneManager.TYPE_RINGTONE,
+ mDefaultUri);
+ super.tearDown();
+ }
+
+ @TestTargets({
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "RingtoneManager",
+ args = {Activity.class}
+ ),
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "RingtoneManager",
+ args = {Context.class}
+ )
+ })
+ public void testConstructors() {
+ new RingtoneManager(mActivity);
+ new RingtoneManager(mContext);
+ }
+
+ @TestTargets({
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "setIncludeDrm",
+ args = {boolean.class}
+ ),
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "getIncludeDrm",
+ args = {}
+ ),
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "getRingtoneUri",
+ args = {int.class}
+ ),
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "getRingtone",
+ args = {int.class}
+ ),
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "getRingtone",
+ args = {Context.class, Uri.class}
+ ),
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "getCursor",
+ args = {}
+ ),
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "getRingtonePosition",
+ args = {Uri.class}
+ ),
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "getActualDefaultRingtoneUri",
+ args = {Context.class, int.class}
+ ),
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "setActualDefaultRingtoneUri",
+ args = {Context.class, int.class, Uri.class}
+ ),
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "getDefaultType",
+ args = {Uri.class}
+ ),
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "getValidRingtoneUri",
+ args = {Context.class}
+ ),
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "isDefault",
+ args = {Uri.class}
+ ),
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "getDefaultUri",
+ args = {int.class}
+ )
+ })
+ public void testAccessMethods() {
+ Cursor c = mRingtoneManager.getCursor();
+ assertTrue("Must have at least one ring tone available", c.getCount() > 0);
+
+ mRingtoneManager.setIncludeDrm(true);
+ assertTrue(mRingtoneManager.getIncludeDrm());
+ mRingtoneManager.setIncludeDrm(false);
+ assertFalse(mRingtoneManager.getIncludeDrm());
+
+ assertNotNull(mRingtoneManager.getRingtone(0));
+ assertNotNull(RingtoneManager.getRingtone(mContext, Settings.System.DEFAULT_RINGTONE_URI));
+ int expectedPosition = 0;
+ Uri uri = mRingtoneManager.getRingtoneUri(expectedPosition);
+ assertEquals(expectedPosition, mRingtoneManager.getRingtonePosition(uri));
+ assertNotNull(RingtoneManager.getValidRingtoneUri(mContext));
+
+ RingtoneManager.setActualDefaultRingtoneUri(mContext, RingtoneManager.TYPE_RINGTONE, uri);
+ assertEquals(uri, RingtoneManager.getActualDefaultRingtoneUri(mContext,
+ RingtoneManager.TYPE_RINGTONE));
+
+ assertEquals(Settings.System.DEFAULT_RINGTONE_URI,
+ RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE));
+ assertEquals(Settings.System.DEFAULT_NOTIFICATION_URI,
+ RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));
+ assertEquals(RingtoneManager.TYPE_RINGTONE,
+ RingtoneManager.getDefaultType(Settings.System.DEFAULT_RINGTONE_URI));
+ assertEquals(RingtoneManager.TYPE_NOTIFICATION,
+ RingtoneManager.getDefaultType(Settings.System.DEFAULT_NOTIFICATION_URI));
+ assertTrue(RingtoneManager.isDefault(Settings.System.DEFAULT_RINGTONE_URI));
+ }
+
+ @TestTargets({
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "setType",
+ args = {int.class}
+ ),
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "inferStreamType",
+ args = {}
+ )
+ })
+ public void testSetType() {
+ mRingtoneManager.setType(RingtoneManager.TYPE_ALARM);
+ assertEquals(AudioManager.STREAM_ALARM, mRingtoneManager.inferStreamType());
+ Cursor c = mRingtoneManager.getCursor();
+ assertTrue("Must have at least one alarm tone available", c.getCount() > 0);
+ Ringtone r = mRingtoneManager.getRingtone(0);
+ assertEquals(RingtoneManager.TYPE_ALARM, r.getStreamType());
+ }
+
+ @TestTargets({
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "stopPreviousRingtone",
+ args = {}
+ ),
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "setStopPreviousRingtone",
+ args = {boolean.class}
+ ),
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "getStopPreviousRingtone",
+ args = {}
+ )
+ })
+ public void testStopPreviousRingtone() {
+ Cursor c = mRingtoneManager.getCursor();
+ assertTrue("Must have at least one ring tone available", c.getCount() > 0);
+
+ mRingtoneManager.setStopPreviousRingtone(true);
+ assertTrue(mRingtoneManager.getStopPreviousRingtone());
+ Ringtone ringtone = mRingtoneManager.getRingtone(0);
+ ringtone.play();
+ assertTrue(ringtone.isPlaying());
+ Ringtone newRingtone = mRingtoneManager.getRingtone(0);
+ assertFalse(ringtone.isPlaying());
+ newRingtone.play();
+ assertTrue(newRingtone.isPlaying());
+ mRingtoneManager.stopPreviousRingtone();
+ assertFalse(newRingtone.isPlaying());
+ }
+}
\ No newline at end of file
diff --git a/tests/tests/media/src/android/media/cts/RingtoneTest.java b/tests/tests/media/src/android/media/cts/RingtoneTest.java
new file mode 100644
index 0000000..84409a3
--- /dev/null
+++ b/tests/tests/media/src/android/media/cts/RingtoneTest.java
@@ -0,0 +1,119 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.media.cts;
+
+import dalvik.annotation.TestLevel;
+import dalvik.annotation.TestTargetClass;
+import dalvik.annotation.TestTargetNew;
+import dalvik.annotation.TestTargets;
+
+import android.content.Context;
+import android.media.AudioManager;
+import android.media.Ringtone;
+import android.media.RingtoneManager;
+import android.provider.Settings;
+import android.test.AndroidTestCase;
+
+@TestTargetClass(Ringtone.class)
+public class RingtoneTest extends AndroidTestCase {
+
+ private Context mContext;
+ private Ringtone mRingtone;
+ private AudioManager mAudioManager;
+ private int mOriginalVolume;
+ private int mOriginalRingerMode;
+ private int mOriginalStreamType;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ mContext = getContext();
+ mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
+ mRingtone = RingtoneManager.getRingtone(mContext, Settings.System.DEFAULT_RINGTONE_URI);
+ // backup ringer settings
+ mOriginalRingerMode = mAudioManager.getRingerMode();
+ mOriginalVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_RING);
+ mOriginalStreamType = mRingtone.getStreamType();
+ // set ringer to a reasonable volume
+ int maxVolume = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_RING);
+ mAudioManager.setStreamVolume(AudioManager.STREAM_RING, maxVolume / 2,
+ AudioManager.FLAG_ALLOW_RINGER_MODES);
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ // restore original settings
+ if (mRingtone != null) {
+ if (mRingtone.isPlaying()) mRingtone.stop();
+ mRingtone.setStreamType(mOriginalStreamType);
+ }
+ if (mAudioManager != null) {
+ mAudioManager.setRingerMode(mOriginalRingerMode);
+ mAudioManager.setStreamVolume(AudioManager.STREAM_RING, mOriginalVolume,
+ AudioManager.FLAG_ALLOW_RINGER_MODES);
+ }
+ super.tearDown();
+ }
+
+ @TestTargets({
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "isPlaying",
+ args = {}
+ ),
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "play",
+ args = {}
+ ),
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "stop",
+ args = {}
+ ),
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "setStreamType",
+ args = {int.class}
+ ),
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "getStreamType",
+ args = {}
+ ),
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "getTitle",
+ args = {Context.class}
+ )
+ })
+ public void testRingtone() {
+
+ assertNotNull(mRingtone.getTitle(mContext));
+ assertTrue(mOriginalStreamType >= 0);
+
+ mRingtone.setStreamType(AudioManager.STREAM_MUSIC);
+ assertEquals(AudioManager.STREAM_MUSIC, mRingtone.getStreamType());
+ mRingtone.setStreamType(AudioManager.STREAM_ALARM);
+ assertEquals(AudioManager.STREAM_ALARM, mRingtone.getStreamType());
+
+ mRingtone.play();
+ assertTrue(mRingtone.isPlaying());
+ mRingtone.stop();
+ assertFalse(mRingtone.isPlaying());
+ }
+}