am b9049084: Merge change 25191 into donut-gms

Merge commit 'b9049084630d2652d18efd2f6082153cf0ea516c' into eclair

* commit 'b9049084630d2652d18efd2f6082153cf0ea516c':
  CTS: fix some tests with internal references.
diff --git a/tests/core/ctscore.mk b/tests/core/ctscore.mk
index 7c29535..8ae73d9 100644
--- a/tests/core/ctscore.mk
+++ b/tests/core/ctscore.mk
@@ -44,7 +44,7 @@
 	$(call unzip-jar-files,$(PRIVATE_CORETESTS_INTERMEDIATES_COMMON)/javalib.jar,\
 		$(PRIVATE_INTERMEDIATES_COMMON)/ctsclasses)
 	@find $(PRIVATE_INTERMEDIATES_COMMON)/ctsclasses -type f -name "*.class" -delete
-	@rm $(PRIVATE_INTERMEDIATES_COMMON)/ctsclasses/classes.dex
+	@rm -f $(PRIVATE_INTERMEDIATES_COMMON)/ctsclasses/classes.dex
 	@cp $< $@
 	@jar uf $@ -C $(PRIVATE_INTERMEDIATES_COMMON)/ctsclasses .
 	$(sign-package)
diff --git a/tests/res/raw/testmp3_2.mp3 b/tests/res/raw/testmp3_2.mp3
new file mode 100644
index 0000000..6a70c69
--- /dev/null
+++ b/tests/res/raw/testmp3_2.mp3
Binary files differ
diff --git a/tests/res/values/strings.xml b/tests/res/values/strings.xml
index ad16305..f365a0a 100644
--- a/tests/res/values/strings.xml
+++ b/tests/res/values/strings.xml
@@ -55,7 +55,7 @@
     <string name="dialog_stub_dialog_test_button13">Test AlertDialog deprecated with Message</string>
     <string name="dialog_stub_dialog_test_button14">Test AlertDialog with theme</string>
     <string name="dialog_stub_dialog_test_button15">Test AlertDialog cancelable</string>
-    <string name="dialog_stub_dialog_test_button16">Test AlertDialog can'n cancelable</string>
+    <string name="dialog_stub_dialog_test_button16">Test AlertDialog can\'n cancelable</string>
     <string name="dialog_stub_dialog_test_button17">Test Dialog cancelable</string>
     <string name="dialog_stub_dialog_test_button18">Test Dialog not cancelable</string>
     <string name="hello_world">Hello, World!</string>
diff --git a/tests/tests/content/src/android/content/cts/ContentProviderTest.java b/tests/tests/content/src/android/content/cts/ContentProviderTest.java
index 25c8efb..4e44372 100644
--- a/tests/tests/content/src/android/content/cts/ContentProviderTest.java
+++ b/tests/tests/content/src/android/content/cts/ContentProviderTest.java
@@ -28,7 +28,10 @@
 import android.content.ContentValues;
 import android.content.Context;
 import android.content.IContentProvider;
-import android.content.ISyncAdapter;
+import android.content.EntityIterator;
+import android.content.ContentProviderResult;
+import android.content.ContentProviderOperation;
+import android.content.OperationApplicationException;
 import android.content.pm.ProviderInfo;
 import android.content.res.AssetFileDescriptor;
 import android.database.Cursor;
@@ -45,6 +48,7 @@
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
+import java.util.ArrayList;
 
 /**
  * Test {@link ContentProvider}.
@@ -224,16 +228,6 @@
 
     @TestTargetNew(
         level = TestLevel.COMPLETE,
-        method = "getSyncAdapter",
-        args = {}
-    )
-    public void testGetSyncAdapter() {
-        MockContentProvider mockContentProvider = new MockContentProvider();
-        assertNull(mockContentProvider.getSyncAdapter());
-    }
-
-    @TestTargetNew(
-        level = TestLevel.COMPLETE,
         method = "isTemporary",
         args = {}
     )
@@ -349,10 +343,6 @@
                 return 0;
             }
 
-            public ISyncAdapter getSyncAdapter() {
-                return null;
-            }
-
             public String getType(Uri url) {
                 return null;
             }
@@ -369,11 +359,25 @@
                 return null;
             }
 
+            public ContentProviderResult[] applyBatch(
+                    ArrayList<ContentProviderOperation> operations)
+                    throws RemoteException, OperationApplicationException {
+                return null;
+            }
+
             public Cursor query(Uri url, String[] projection, String selection,
                     String[] selectionArgs, String sortOrder) {
                 return null;
             }
 
+            /**
+             * @hide
+             */
+            public EntityIterator queryEntities(Uri url, String selection, String[] selectionArgs,
+                    String sortOrder) throws RemoteException {
+                return null;
+            }
+
             public int update(Uri url, ContentValues values, String selection,
                     String[] selectionArgs) {
                 return 0;
diff --git a/tests/tests/content/src/android/content/cts/ContentResolverTest.java b/tests/tests/content/src/android/content/cts/ContentResolverTest.java
index d2e964d..c6cb7ac 100644
--- a/tests/tests/content/src/android/content/cts/ContentResolverTest.java
+++ b/tests/tests/content/src/android/content/cts/ContentResolverTest.java
@@ -34,6 +34,7 @@
 import android.os.Bundle;
 import android.os.ParcelFileDescriptor;
 import android.test.AndroidTestCase;
+import android.accounts.Account;
 
 import java.io.FileNotFoundException;
 import java.io.IOException;
@@ -50,6 +51,8 @@
     private static final Uri TABLE1_URI = Uri.parse("content://" + AUTHORITY + "/testtable1/");
     private static final Uri TABLE2_URI = Uri.parse("content://" + AUTHORITY + "/testtable2/");
 
+    private static final Account ACCOUNT = new Account("cts", "cts");
+
     private static final String KEY1 = "key1";
     private static final String KEY2 = "key2";
     private static final String KEY3 = "key3";
@@ -718,13 +721,12 @@
     public void testStartCancelSync() {
         Bundle extras = new Bundle();
 
-        extras.putBoolean(ContentResolver.SYNC_EXTRAS_FORCE, true);
-        extras.putString(ContentResolver.SYNC_EXTRAS_ACCOUNT, "cts");
+        extras.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);
 
-        mContentResolver.startSync(TABLE1_URI, extras);
+        ContentResolver.requestSync(ACCOUNT, AUTHORITY, extras);
         //FIXME: how to get the result to assert.
 
-        mContentResolver.cancelSync(TABLE1_URI);
+        ContentResolver.cancelSync(ACCOUNT, AUTHORITY);
         //FIXME: how to assert.
     }
 
@@ -737,7 +739,7 @@
             "ContentResolver#startSync(Uri, Bundle) when extras is null")
     public void testStartSyncFailure() {
         try {
-            mContentResolver.startSync(TABLE1_URI, null);
+            ContentResolver.requestSync(null, null, null);
             fail("did not throw IllegalArgumentException when extras is null.");
         } catch (IllegalArgumentException e) {
             //expected.
diff --git a/tests/tests/graphics/Android.mk b/tests/tests/graphics/Android.mk
index bbee4af..d0ebd37 100644
--- a/tests/tests/graphics/Android.mk
+++ b/tests/tests/graphics/Android.mk
@@ -29,7 +29,8 @@
 
 LOCAL_INSTRUMENTATION_FOR := CtsTestStubs
 
-LOCAL_SDK_VERSION := current
+# uncomment when dalvik.annotation.Test* are removed or part of SDK
+#LOCAL_SDK_VERSION := current
 
 include $(BUILD_PACKAGE)
 
diff --git a/tests/tests/hardware/Android.mk b/tests/tests/hardware/Android.mk
index 91be886..7baf40a 100644
--- a/tests/tests/hardware/Android.mk
+++ b/tests/tests/hardware/Android.mk
@@ -29,7 +29,8 @@
 
 LOCAL_INSTRUMENTATION_FOR := CtsTestStubs
 
-LOCAL_SDK_VERSION := current
+# uncomment when dalvik.annotation.Test* are removed or part of SDK
+#LOCAL_SDK_VERSION := current
 
 include $(BUILD_PACKAGE)
 
diff --git a/tests/tests/location/Android.mk b/tests/tests/location/Android.mk
index 3deb1b0..d63d911 100644
--- a/tests/tests/location/Android.mk
+++ b/tests/tests/location/Android.mk
@@ -29,7 +29,8 @@
 
 LOCAL_INSTRUMENTATION_FOR := CtsTestStubs
 
-LOCAL_SDK_VERSION := current
+# uncomment when dalvik.annotation.Test* are removed or part of SDK
+#LOCAL_SDK_VERSION := current
 
 include $(BUILD_PACKAGE)
 
diff --git a/tests/tests/media/Android.mk b/tests/tests/media/Android.mk
index 5d8d37b..df1de12 100644
--- a/tests/tests/media/Android.mk
+++ b/tests/tests/media/Android.mk
@@ -29,7 +29,8 @@
 
 LOCAL_INSTRUMENTATION_FOR := CtsTestStubs
 
-LOCAL_SDK_VERSION := current
+# uncomment when dalvik.annotation.Test* are removed or part of SDK
+#LOCAL_SDK_VERSION := current
 
 include $(BUILD_PACKAGE)
 
diff --git a/tests/tests/media/src/android/media/cts/MediaPlayerTest.java b/tests/tests/media/src/android/media/cts/MediaPlayerTest.java
index d0bf2be..efde504 100644
--- a/tests/tests/media/src/android/media/cts/MediaPlayerTest.java
+++ b/tests/tests/media/src/android/media/cts/MediaPlayerTest.java
@@ -196,10 +196,10 @@
         )
     })
     public void testPlayAudio() throws Exception {
-        final int mp3Duration = 4231;
-        final int tolerance = 50;
+        final int mp3Duration = 34909;
+        final int tolerance = 70;
         final int seekDuration = 100;
-        final int resid = R.raw.testmp3;
+        final int resid = R.raw.testmp3_2;
 
         MediaPlayer mp = MediaPlayer.create(mContext, resid);
         mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
diff --git a/tests/tests/net/Android.mk b/tests/tests/net/Android.mk
index d23cee8..1fd9ba0 100644
--- a/tests/tests/net/Android.mk
+++ b/tests/tests/net/Android.mk
@@ -29,7 +29,8 @@
 
 LOCAL_INSTRUMENTATION_FOR := CtsTestStubs
 
-LOCAL_SDK_VERSION := current
+# uncomment when dalvik.annotation.Test* are removed or part of SDK
+#LOCAL_SDK_VERSION := current
 
 include $(BUILD_PACKAGE)
 
diff --git a/tests/tests/os/Android.mk b/tests/tests/os/Android.mk
index 6a89ab4..c25cf22 100644
--- a/tests/tests/os/Android.mk
+++ b/tests/tests/os/Android.mk
@@ -29,7 +29,8 @@
 
 LOCAL_INSTRUMENTATION_FOR := CtsTestStubs
 
-LOCAL_SDK_VERSION := current
+# uncomment when dalvik.annotation.Test* are removed or part of SDK
+#LOCAL_SDK_VERSION := current
 
 include $(BUILD_PACKAGE)
 
diff --git a/tests/tests/permission/Android.mk b/tests/tests/permission/Android.mk
index 869c19b..46e7fb7 100644
--- a/tests/tests/permission/Android.mk
+++ b/tests/tests/permission/Android.mk
@@ -25,7 +25,8 @@
 
 LOCAL_PACKAGE_NAME := CtsPermissionTestCases
 
-LOCAL_SDK_VERSION := current
+# uncomment when dalvik test annotations are removed or part of SDK
+#LOCAL_SDK_VERSION := current
 
 include $(BUILD_PACKAGE)
 
diff --git a/tests/tests/permission/src/android/permission/cts/NoAudioPermissionTest.java b/tests/tests/permission/src/android/permission/cts/NoAudioPermissionTest.java
index 06eeef4..f3c5ae8 100644
--- a/tests/tests/permission/src/android/permission/cts/NoAudioPermissionTest.java
+++ b/tests/tests/permission/src/android/permission/cts/NoAudioPermissionTest.java
@@ -59,57 +59,22 @@
     }
 
     /**
-     * Verify that AudioManager.setRouting requires permissions.
+     * Verify that AudioManager routing methods require permissions.
      * <p>Requires Permission:
      *   {@link android.Manifest.permission#MODIFY_AUDIO_SETTINGS}.
      */
     @SuppressWarnings("deprecation")
     @SmallTest
-    public void testSetRouting() {
-        int[] defaultRoutes = new int[MODE_COUNT];
-        defaultRoutes[0] = mAudioManager.getRouting(AudioManager.MODE_NORMAL);
-        defaultRoutes[1] = mAudioManager.getRouting(AudioManager.MODE_RINGTONE);
-        defaultRoutes[2] = mAudioManager.getRouting(AudioManager.MODE_IN_CALL);
+    public void testRouting() {
 
-        // If there is no permission of MODIFY_AUDIO_SETTINGS, setRouting does nothing.
-        // Please referring android.media.cts.AudioManagerTest#testRouting().
-        mAudioManager.setBluetoothScoOn(true);
-        mAudioManager.setRouting(AudioManager.MODE_IN_CALL, AudioManager.ROUTE_BLUETOOTH_SCO,
-                AudioManager.ROUTE_ALL);
-        assertEquals(defaultRoutes[0], getRouting(AudioManager.MODE_NORMAL));
-        assertEquals(defaultRoutes[1], getRouting(AudioManager.MODE_RINGTONE));
-        assertEquals(defaultRoutes[2], getRouting(AudioManager.MODE_IN_CALL));
+        // If there is no permission of MODIFY_AUDIO_SETTINGS, setSpeakerphoneOn does nothing.
+        boolean prevState = mAudioManager.isSpeakerphoneOn();
+        mAudioManager.setSpeakerphoneOn(!prevState);
+        assertEquals(prevState, mAudioManager.isSpeakerphoneOn());
 
-        mAudioManager.setRouting(AudioManager.MODE_NORMAL, AudioManager.ROUTE_SPEAKER,
-                AudioManager.ROUTE_ALL);
-        mAudioManager.setRouting(AudioManager.MODE_RINGTONE, AudioManager.ROUTE_SPEAKER,
-                AudioManager.ROUTE_ALL);
-        mAudioManager.setRouting(AudioManager.MODE_IN_CALL, AudioManager.ROUTE_SPEAKER,
-                AudioManager.ROUTE_ALL);
-        assertEquals(defaultRoutes[0], getRouting(AudioManager.MODE_NORMAL));
-        assertEquals(defaultRoutes[1], getRouting(AudioManager.MODE_RINGTONE));
-        assertEquals(defaultRoutes[2], getRouting(AudioManager.MODE_IN_CALL));
-
-        mAudioManager.setSpeakerphoneOn(true);
-        assertFalse(mAudioManager.isSpeakerphoneOn());
-        assertEquals(defaultRoutes[2], getRouting(AudioManager.MODE_IN_CALL));
-        mAudioManager.setSpeakerphoneOn(false);
-        assertFalse(mAudioManager.isSpeakerphoneOn());
-        assertEquals(defaultRoutes[2], getRouting(AudioManager.MODE_IN_CALL));
-
-        mAudioManager.setRouting(AudioManager.MODE_NORMAL, AudioManager.ROUTE_EARPIECE,
-                AudioManager.ROUTE_ALL);
-        mAudioManager.setRouting(AudioManager.MODE_RINGTONE, AudioManager.ROUTE_EARPIECE,
-                AudioManager.ROUTE_ALL);
-        mAudioManager.setRouting(AudioManager.MODE_IN_CALL, AudioManager.ROUTE_EARPIECE,
-                AudioManager.ROUTE_ALL);
-        assertEquals(defaultRoutes[0], getRouting(AudioManager.MODE_NORMAL));
-        assertEquals(defaultRoutes[1], getRouting(AudioManager.MODE_RINGTONE));
-        assertEquals(defaultRoutes[2], getRouting(AudioManager.MODE_IN_CALL));
-    }
-
-    @SuppressWarnings("deprecation")
-    private int getRouting(int mode) {
-        return mAudioManager.getRouting(mode);
+        // If there is no permission of MODIFY_AUDIO_SETTINGS, setBluetoothScoOn does nothing.
+        prevState = mAudioManager.isBluetoothScoOn();
+        mAudioManager.setBluetoothScoOn(!prevState);
+        assertEquals(prevState, mAudioManager.isBluetoothScoOn());
     }
 }
diff --git a/tests/tests/provider/src/android/provider/cts/ContactsTest.java b/tests/tests/provider/src/android/provider/cts/ContactsTest.java
index be42e1d..98da060 100644
--- a/tests/tests/provider/src/android/provider/cts/ContactsTest.java
+++ b/tests/tests/provider/src/android/provider/cts/ContactsTest.java
@@ -69,25 +69,27 @@
      */
     public void testPeopleTable() {
         final String[] PEOPLE_PROJECTION = new String[] {
-                People._ID, People._SYNC_ACCOUNT, People._SYNC_ID, People._SYNC_TIME,
+                People._ID, People._SYNC_ACCOUNT, People._SYNC_ACCOUNT_TYPE, People._SYNC_ID,
+                People._SYNC_TIME,
                 People._SYNC_VERSION, People._SYNC_LOCAL_ID, People._SYNC_DIRTY,
                 People.NAME, People.NOTES, People.TIMES_CONTACTED,
                 People.LAST_TIME_CONTACTED, People.STARRED,
                 People.CUSTOM_RINGTONE, People.SEND_TO_VOICEMAIL,};
         final int ID_INDEX = 0;
-        final int SYNC_ACCOUNT_INDEX = 1;
-        final int SYNC_ID_INDEX = 2;
-        final int SYNC_TIME_INDEX = 3;
-        final int SYNC_VERSION_INDEX = 4;
-        final int SYNC_LOCAL_ID_INDEX = 5;
-        final int SYNC_DIRTY_INDEX = 6;
-        final int NAME_INDEX = 7;
-        final int NOTES_INDEX = 8;
-        final int TIMES_CONTACTED_INDEX = 9;
-        final int LAST_TIME_CONTACTED_INDEX = 10;
-        final int STARRED_INDEX = 11;
-        final int CUSTOM_RINGTONE_INDEX = 12;
-        final int SEND_TO_VOICEMAIL_INDEX = 13;
+        final int SYNC_ACCOUNT_NAME_INDEX = 1;
+        final int SYNC_ACCOUNT_TYPE_INDEX = 2;
+        final int SYNC_ID_INDEX = 3;
+        final int SYNC_TIME_INDEX = 4;
+        final int SYNC_VERSION_INDEX = 5;
+        final int SYNC_LOCAL_ID_INDEX = 6;
+        final int SYNC_DIRTY_INDEX = 7;
+        final int NAME_INDEX = 8;
+        final int NOTES_INDEX = 9;
+        final int TIMES_CONTACTED_INDEX = 10;
+        final int LAST_TIME_CONTACTED_INDEX = 11;
+        final int STARRED_INDEX = 12;
+        final int CUSTOM_RINGTONE_INDEX = 13;
+        final int SEND_TO_VOICEMAIL_INDEX = 14;
 
         String insertPeopleName = "name_insert";
         String insertPeopleNotes = "notes_insert";
@@ -160,7 +162,7 @@
     public void testGroupsTable() {
         final String[] GROUPS_PROJECTION = new String[] {
                 Groups._ID, Groups.NAME, Groups.NOTES, Groups.SHOULD_SYNC,
-                Groups.SYSTEM_ID, Groups._SYNC_ACCOUNT, Groups._SYNC_ID,
+                Groups.SYSTEM_ID, Groups._SYNC_ACCOUNT, Groups._SYNC_ACCOUNT_TYPE, Groups._SYNC_ID,
                 Groups._SYNC_TIME, Groups._SYNC_VERSION, Groups._SYNC_LOCAL_ID,
                 Groups._SYNC_DIRTY};
         final int ID_INDEX = 0;
@@ -168,12 +170,13 @@
         final int NOTES_INDEX = 2;
         final int SHOULD_SYNC_INDEX = 3;
         final int SYSTEM_ID_INDEX = 4;
-        final int SYNC_ACCOUNT_INDEX = 5;
-        final int SYNC_ID_INDEX = 6;
-        final int SYNC_TIME_INDEX = 7;
-        final int SYNC_VERSION_INDEX = 8;
-        final int SYNC_LOCAL_ID_INDEX = 9;
-        final int SYNC_DIRTY_INDEX = 10;
+        final int SYNC_ACCOUNT_NAME_INDEX = 5;
+        final int SYNC_ACCOUNT_TYPE_INDEX = 6;
+        final int SYNC_ID_INDEX = 7;
+        final int SYNC_TIME_INDEX = 8;
+        final int SYNC_VERSION_INDEX = 9;
+        final int SYNC_LOCAL_ID_INDEX = 10;
+        final int SYNC_DIRTY_INDEX = 11;
 
         String insertGroupsName = "name_insert";
         String insertGroupsNotes = "notes_insert";
@@ -237,7 +240,7 @@
     public void testPhotosTable() {
         final String[] PHOTOS_PROJECTION = new String[] {
                 Photos._ID, Photos.EXISTS_ON_SERVER, Photos.PERSON_ID,
-                Photos.LOCAL_VERSION, Photos.DATA, Photos._SYNC_ACCOUNT,
+                Photos.LOCAL_VERSION, Photos.DATA, Photos._SYNC_ACCOUNT, Photos._SYNC_ACCOUNT_TYPE,
                 Photos._SYNC_ID, Photos._SYNC_TIME, Photos._SYNC_VERSION,
                 Photos._SYNC_LOCAL_ID, Photos._SYNC_DIRTY,
                 Photos.SYNC_ERROR};
@@ -246,13 +249,14 @@
         final int PERSON_ID_INDEX = 2;
         final int LOCAL_VERSION_INDEX = 3;
         final int DATA_INDEX = 4;
-        final int SYNC_ACCOUNT_INDEX = 5;
-        final int SYNC_ID_INDEX = 6;
-        final int SYNC_TIME_INDEX = 7;
-        final int SYNC_VERSION_INDEX = 8;
-        final int SYNC_LOCAL_ID_INDEX = 9;
-        final int SYNC_DIRTY_INDEX = 10;
-        final int SYNC_ERROR_INDEX = 11;
+        final int SYNC_ACCOUNT_NAME_INDEX = 5;
+        final int SYNC_ACCOUNT_TYPE_INDEX = 6;
+        final int SYNC_ID_INDEX = 7;
+        final int SYNC_TIME_INDEX = 8;
+        final int SYNC_VERSION_INDEX = 9;
+        final int SYNC_LOCAL_ID_INDEX = 10;
+        final int SYNC_DIRTY_INDEX = 11;
+        final int SYNC_ERROR_INDEX = 12;
 
         String updatePhotosLocalVersion = "local_version1";
 
@@ -684,11 +688,13 @@
      */
     public void testSettingsTable() {
         final String[] SETTINGS_PROJECTION = new String[] {
-                Settings._ID, Settings._SYNC_ACCOUNT, Settings.KEY, Settings.VALUE};
+                Settings._ID, Settings._SYNC_ACCOUNT, Settings._SYNC_ACCOUNT_TYPE,
+                Settings.KEY, Settings.VALUE};
         final int ID_INDEX = 0;
-        final int SYNC_ACCOUNT_INDEX = 1;
-        final int KEY_INDEX = 2;
-        final int VALUE_INDEX = 3;
+        final int SYNC_ACCOUNT_NAME_INDEX = 1;
+        final int SYNC_ACCOUNT_TYPE_INDEX = 2;
+        final int KEY_INDEX = 3;
+        final int VALUE_INDEX = 4;
 
         String insertKey = "key_insert";
         String insertValue = "value_insert";
@@ -716,7 +722,8 @@
                     Settings.KEY + " = ?",
                     new String[] {insertKey}, null);
             assertTrue(cursor.moveToNext());
-            assertNull(cursor.getString(SYNC_ACCOUNT_INDEX));
+            assertNull(cursor.getString(SYNC_ACCOUNT_NAME_INDEX));
+            assertNull(cursor.getString(SYNC_ACCOUNT_TYPE_INDEX));
             assertEquals(insertKey, cursor.getString(KEY_INDEX));
             assertEquals(insertValue, cursor.getString(VALUE_INDEX));
             int id = cursor.getInt(ID_INDEX);
@@ -734,7 +741,8 @@
                     Settings.KEY + " = ?",
                     new String[] {updateKey}, null);
             assertTrue(cursor.moveToNext());
-            assertNull(cursor.getString(SYNC_ACCOUNT_INDEX));
+            assertNull(cursor.getString(SYNC_ACCOUNT_NAME_INDEX));
+            assertNull(cursor.getString(SYNC_ACCOUNT_TYPE_INDEX));
             assertEquals(updateKey, cursor.getString(KEY_INDEX));
             assertEquals(updateValue, cursor.getString(VALUE_INDEX));
             cursor.close();
@@ -743,7 +751,8 @@
                     Settings.KEY + " = ?",
                     new String[] {insertKey}, null);
             assertTrue(cursor.moveToNext());
-            assertNull(cursor.getString(SYNC_ACCOUNT_INDEX));
+            assertNull(cursor.getString(SYNC_ACCOUNT_NAME_INDEX));
+            assertNull(cursor.getString(SYNC_ACCOUNT_TYPE_INDEX));
             assertEquals(insertKey, cursor.getString(KEY_INDEX));
             assertEquals(insertValue, cursor.getString(VALUE_INDEX));
             cursor.close();
@@ -760,7 +769,8 @@
                     Settings.KEY + " = ?",
                     new String[] {insertKey}, null);
             assertTrue(cursor.moveToNext());
-            assertNull(cursor.getString(SYNC_ACCOUNT_INDEX));
+            assertNull(cursor.getString(SYNC_ACCOUNT_NAME_INDEX));
+            assertNull(cursor.getString(SYNC_ACCOUNT_TYPE_INDEX));
             assertEquals(insertKey, cursor.getString(KEY_INDEX));
             assertEquals(updateValue, cursor.getString(VALUE_INDEX));
             cursor.close();
@@ -769,7 +779,8 @@
                     Settings.KEY + " = ?",
                     new String[] {updateKey}, null);
             assertTrue(cursor.moveToNext());
-            assertNull(cursor.getString(SYNC_ACCOUNT_INDEX));
+            assertNull(cursor.getString(SYNC_ACCOUNT_NAME_INDEX));
+            assertNull(cursor.getString(SYNC_ACCOUNT_TYPE_INDEX));
             assertEquals(updateKey, cursor.getString(KEY_INDEX));
             assertEquals(updateValue, cursor.getString(VALUE_INDEX));
             cursor.close();
diff --git a/tests/tests/telephony/Android.mk b/tests/tests/telephony/Android.mk
index 90027b0..6ccc9b3 100644
--- a/tests/tests/telephony/Android.mk
+++ b/tests/tests/telephony/Android.mk
@@ -30,7 +30,8 @@
 
 LOCAL_INSTRUMENTATION_FOR := CtsTestStubs
 
-LOCAL_SDK_VERSION := current
+# uncomment when dalvik.annotation.Test* are removed or part of SDK
+# #LOCAL_SDK_VERSION := current
 
 include $(BUILD_PACKAGE)
 
diff --git a/tests/tests/telephony/src/android/telephony/cts/NeighboringCellInfoTest.java b/tests/tests/telephony/src/android/telephony/cts/NeighboringCellInfoTest.java
index 1851d54..38182a5 100644
--- a/tests/tests/telephony/src/android/telephony/cts/NeighboringCellInfoTest.java
+++ b/tests/tests/telephony/src/android/telephony/cts/NeighboringCellInfoTest.java
@@ -16,6 +16,11 @@
 
 package android.telephony.cts;
 
+import static android.telephony.TelephonyManager.NETWORK_TYPE_UNKNOWN;
+import static android.telephony.TelephonyManager.NETWORK_TYPE_EDGE;
+import static android.telephony.TelephonyManager.NETWORK_TYPE_GPRS;
+import static android.telephony.TelephonyManager.NETWORK_TYPE_UMTS;
+
 import dalvik.annotation.TestLevel;
 import dalvik.annotation.TestTargetClass;
 import dalvik.annotation.TestTargetNew;
@@ -28,7 +33,7 @@
 @TestTargetClass(NeighboringCellInfo.class)
 public class NeighboringCellInfoTest extends AndroidTestCase{
     private static final int RSSI = 20;
-    private static final int CID = 0x0000ffff;
+    private static final int CID = 0xffff;
 
     @TestTargets({
         @TestTargetNew(
@@ -53,10 +58,20 @@
         ),
         @TestTargetNew(
             level = TestLevel.COMPLETE,
-            method = "getCid",
+            method = "getLac",
             args = {}
         ),
         @TestTargetNew(
+                level = TestLevel.COMPLETE,
+                method = "getCid",
+                args = {}
+        ),
+        @TestTargetNew(
+                level = TestLevel.COMPLETE,
+                method = "getPsc",
+                args = {}
+        ),
+        @TestTargetNew(
             level = TestLevel.COMPLETE,
             method = "setRssi",
             args = {int.class}
@@ -83,30 +98,50 @@
         )
     })
     public void testNeighboringCellInfo() {
+        int rssi = 31;
+        String location = "ffffffff";
+        NeighboringCellInfo nc;
+
+        // test constructor
+        nc = new NeighboringCellInfo(rssi, "FFFFFFF", NETWORK_TYPE_EDGE);
+        assertEquals(NETWORK_TYPE_EDGE, nc.getNetworkType());
+        assertEquals(rssi, nc.getRssi());
+        assertEquals(0xfff, nc.getLac());
+        assertEquals(0xffff, nc.getCid());
+        assertEquals(NeighboringCellInfo.UNKNOWN_CID, nc.getPsc());
+
+        nc = new NeighboringCellInfo(rssi, "1FF", NETWORK_TYPE_UMTS);
+        assertEquals(NETWORK_TYPE_UMTS, nc.getNetworkType());
+        assertEquals(rssi, nc.getRssi());
+        assertEquals(NeighboringCellInfo.UNKNOWN_CID, nc.getCid());
+        assertEquals(NeighboringCellInfo.UNKNOWN_CID, nc.getLac());
+        assertEquals(0x1ff, nc.getPsc());
+
+        nc = new NeighboringCellInfo(rssi, "1FF", NETWORK_TYPE_UNKNOWN);
+        assertEquals(NETWORK_TYPE_UNKNOWN, nc.getNetworkType());
+        assertEquals(rssi, nc.getRssi());
+        assertEquals(NeighboringCellInfo.UNKNOWN_CID, nc.getCid());
+        assertEquals(NeighboringCellInfo.UNKNOWN_CID, nc.getLac());
+        assertEquals(NeighboringCellInfo.UNKNOWN_CID, nc.getPsc());
+
+        // test parcel
+        nc = new NeighboringCellInfo(rssi, "12345678", NETWORK_TYPE_GPRS);
+        assertEquals(NETWORK_TYPE_GPRS, nc.getNetworkType());
+        assertEquals(rssi, nc.getRssi());
+        assertEquals(0x1234, nc.getLac());
+        assertEquals(0x5678, nc.getCid());
+        assertEquals(NeighboringCellInfo.UNKNOWN_CID, nc.getPsc());
+
         Parcel p = Parcel.obtain();
-        Integer[] val = { RSSI, CID };
-        p.writeArray(val);
-        new NeighboringCellInfo(p);
-        NeighboringCellInfo info = new NeighboringCellInfo(RSSI, CID);
-        assertEquals(RSSI, info.getRssi());
-        assertEquals(CID, info.getCid());
-
-        info = new NeighboringCellInfo();
-        assertEquals(NeighboringCellInfo.UNKNOWN_RSSI, info.getRssi());
-        assertEquals(NeighboringCellInfo.UNKNOWN_CID, info.getCid());
-        info.setRssi(RSSI);
-        info.setCid(CID);
-        assertEquals(RSSI, info.getRssi());
-        assertEquals(CID, info.getCid());
-
-        assertEquals(0, info.describeContents());
-        assertNotNull(info.toString());
-
-        p = Parcel.obtain();
-        info.writeToParcel(p, 0);
         p.setDataPosition(0);
-        NeighboringCellInfo target = NeighboringCellInfo.CREATOR.createFromParcel(p);
-        assertEquals(info.getRssi(), target.getRssi());
-        assertEquals(info.getCid(), target.getCid());
+        nc.writeToParcel(p, 0);
+
+        p.setDataPosition(0);
+        NeighboringCellInfo nw = new NeighboringCellInfo(p);
+        assertEquals(NETWORK_TYPE_GPRS, nw.getNetworkType());
+        assertEquals(rssi, nw.getRssi());
+        assertEquals(0x1234, nw.getLac());
+        assertEquals(0x5678, nw.getCid());
+        assertEquals(NeighboringCellInfo.UNKNOWN_CID, nw.getPsc());
     }
 }
diff --git a/tests/tests/telephony/src/android/telephony/cts/PhoneNumberUtilsTest.java b/tests/tests/telephony/src/android/telephony/cts/PhoneNumberUtilsTest.java
index 37bb211..bfe9271 100644
--- a/tests/tests/telephony/src/android/telephony/cts/PhoneNumberUtilsTest.java
+++ b/tests/tests/telephony/src/android/telephony/cts/PhoneNumberUtilsTest.java
@@ -112,15 +112,15 @@
 
         // Test toCallerIDMinMatch
         assertNull(PhoneNumberUtils.toCallerIDMinMatch(null));
-        assertEquals("14145", PhoneNumberUtils.toCallerIDMinMatch("17005554141"));
-        assertEquals("14145", PhoneNumberUtils.toCallerIDMinMatch("1-700-555-4141"));
-        assertEquals("14145", PhoneNumberUtils.toCallerIDMinMatch("1-700-555-4141,1234"));
-        assertEquals("14145", PhoneNumberUtils.toCallerIDMinMatch("1-700-555-4141;1234"));
-        assertEquals("NN145", PhoneNumberUtils.toCallerIDMinMatch("1-700-555-41NN"));
+        assertEquals("1414555", PhoneNumberUtils.toCallerIDMinMatch("17005554141"));
+        assertEquals("1414555", PhoneNumberUtils.toCallerIDMinMatch("1-700-555-4141"));
+        assertEquals("1414555", PhoneNumberUtils.toCallerIDMinMatch("1-700-555-4141,1234"));
+        assertEquals("1414555", PhoneNumberUtils.toCallerIDMinMatch("1-700-555-4141;1234"));
+        assertEquals("NN14555", PhoneNumberUtils.toCallerIDMinMatch("1-700-555-41NN"));
         assertEquals("", PhoneNumberUtils.toCallerIDMinMatch(""));
         assertEquals("0032", PhoneNumberUtils.toCallerIDMinMatch("2300"));
         assertEquals("0032+", PhoneNumberUtils.toCallerIDMinMatch("+2300"));
-        assertEquals("#130#", PhoneNumberUtils.toCallerIDMinMatch("*#031#"));
+        assertEquals("#130#*", PhoneNumberUtils.toCallerIDMinMatch("*#031#"));
 
         // Test networkPortionToCalledPartyBCD, calledPartyBCDToString
         byte[] bRet = PhoneNumberUtils.networkPortionToCalledPartyBCD("+17005550020");
@@ -150,36 +150,77 @@
         }
     }
 
+    /**
+     * Tests which must be successful both in compareLoosely() and in compareStrictly().
+     */
+    private void testCompareCommon(final boolean strict) {
+        assertTrue(PhoneNumberUtils.compare(null, null, strict));
+        assertFalse(PhoneNumberUtils.compare(null, "", strict));
+        assertFalse(PhoneNumberUtils.compare("", null, strict));
+        assertFalse(PhoneNumberUtils.compare("", "", strict));
+
+        assertTrue(PhoneNumberUtils.compare("911", "911", strict));
+        assertFalse(PhoneNumberUtils.compare("911", "18005550911", strict));
+
+        assertTrue(PhoneNumberUtils.compare("+17005554141", "+17005554141", strict));
+        assertTrue(PhoneNumberUtils.compare("+17005554141", "+1 (700).555-4141", strict));
+        assertTrue(PhoneNumberUtils.compare("+17005554141", "7005554141", strict));
+        assertFalse(PhoneNumberUtils.compare("+1 999 7005554141", "+1 7005554141", strict));
+        assertTrue(PhoneNumberUtils.compare("011 1 7005554141", "7005554141", strict));
+        assertFalse(PhoneNumberUtils.compare("011 11 7005554141", "+17005554141", strict));
+        assertTrue(PhoneNumberUtils.compare("+44 207 792 3490", "0 207 792 3490", strict));
+        assertFalse(PhoneNumberUtils.compare("+44 207 792 3490", "00 207 792 3490", strict));
+
+        // MMI header should be ignored
+        assertFalse(PhoneNumberUtils.compare("+17005554141", "**31#17005554141", strict));
+        assertFalse(PhoneNumberUtils.compare("+44 207 792 3490", "+44 (0) 207 792 3490", strict));
+        assertFalse(PhoneNumberUtils.compare("+44 207 792 3490", "010 44 207 792 3490", strict));
+        assertFalse(PhoneNumberUtils.compare("+44 207 792 3490", "0011 44 207 792 3490", strict));
+        assertTrue(PhoneNumberUtils.compare("+444 207 792 3490", "0 207 792 3490", strict));
+    }
+
     @TestTargetNew(
       level = TestLevel.COMPLETE,
       method = "compare",
       args = {String.class, String.class}
     )
-    public void testCompare() {
-        assertFalse(PhoneNumberUtils.compare("", ""));
+    public void testCompareLoosely() {
+        testCompareCommon(false);
 
-        assertTrue(PhoneNumberUtils.compare("911", "911"));
-        assertFalse(PhoneNumberUtils.compare("911", "18005550911"));
+        assertTrue(PhoneNumberUtils.compareLoosely("17005554141", "5554141"));
+        assertTrue(PhoneNumberUtils.compareLoosely("+17005554141", "**31#+17005554141"));
+        assertFalse(PhoneNumberUtils.compareLoosely("+7(095)9100766", "8(095)9100766"));
+    }
 
-        assertTrue(PhoneNumberUtils.compare("+17005554141", "+17005554141"));
-        assertTrue(PhoneNumberUtils.compare("+17005554141", "+1 (700).555-4141"));
-        assertTrue(PhoneNumberUtils.compare("+17005554141", "7005554141"));
-        assertTrue(PhoneNumberUtils.compare("17005554141", "5554141"));
-        assertTrue(PhoneNumberUtils.compare("+17005554141", "0017005554141"));
-        assertTrue(PhoneNumberUtils.compare("+17005554141", "**31#+17005554141"));
-        assertFalse(PhoneNumberUtils.compare("+1 999 7005554141", "+1 7005554141"));
-        assertTrue(PhoneNumberUtils.compare("011 1 7005554141", "7005554141"));
-        assertFalse(PhoneNumberUtils.compare("011 11 7005554141", "+17005554141"));
-        assertTrue(PhoneNumberUtils.compare("+44 207 792 3490", "0 207 792 3490"));
-        assertFalse(PhoneNumberUtils.compare("+44 207 792 3490", "00 207 792 3490"));
+    @TestTargetNew(
+      level = TestLevel.COMPLETE,
+      method = "compare",
+      args = {String.class, String.class}
+    )
+    public void testCompareStrictly() {
+        testCompareCommon(true);
 
-        // MMI header should be ignored
-        assertFalse(PhoneNumberUtils.compare("+17005554141", "**31#17005554141"));
-        assertFalse(PhoneNumberUtils.compare("+44 207 792 3490", "+44 (0) 207 792 3490"));
-        assertFalse(PhoneNumberUtils.compare("+44 207 792 3490", "010 44 207 792 3490"));
-        assertFalse(PhoneNumberUtils.compare("+44 207 792 3490", "0011 44 207 792 3490"));
-        assertFalse(PhoneNumberUtils.compare("+7(095)9100766", "8(095)9100766"));
-        assertTrue(PhoneNumberUtils.compare("+444 207 792 3490", "0 207 792 3490"));
+        // This must be true, since
+        // - +7 is russian country calling code
+        // - 8 is russian trunk prefix, which should be omitted when being compared to
+        //   the number with country calling code.
+        // - so, this comparation becomes same as comparation between
+        //   "(095)9100766" v.s."(095)9100766", which is definitely true.
+        assertTrue(PhoneNumberUtils.compareStrictly("+7(095)9100766", "8(095)9100766"));
+
+        // Test broken caller ID seen on call from Thailand to the US.
+        assertTrue(PhoneNumberUtils.compareStrictly("+66811234567", "166811234567"));
+
+        // This is not related to Thailand case. NAMP "1" + region code "661".
+        assertTrue(PhoneNumberUtils.compareStrictly("16610001234", "6610001234"));
+
+        assertFalse(PhoneNumberUtils.compareStrictly("080-1234-5678", "+819012345678"));
+        assertTrue(PhoneNumberUtils.compareStrictly("650-000-3456", "16500003456"));
+
+        // Phone numbers with Ascii characters, which are common in some countries
+        assertFalse(PhoneNumberUtils.compareStrictly("abcd", "bcde"));
+        assertTrue(PhoneNumberUtils.compareStrictly("1-800-flowers", "800-flowers"));
+        assertFalse(PhoneNumberUtils.compareStrictly("1-800-flowers", "1-800-abcdefg"));
     }
 
     @TestTargets({
diff --git a/tests/tests/text/Android.mk b/tests/tests/text/Android.mk
index aa7db3c..5c44027 100644
--- a/tests/tests/text/Android.mk
+++ b/tests/tests/text/Android.mk
@@ -29,7 +29,8 @@
 
 LOCAL_INSTRUMENTATION_FOR := CtsTestStubs
 
-LOCAL_SDK_VERSION := current
+# uncomment when dalvik.annotation.Test* are removed or part of SDK
+#LOCAL_SDK_VERSION := current
 
 include $(BUILD_PACKAGE)
 
diff --git a/tests/tests/util/Android.mk b/tests/tests/util/Android.mk
index bc9b24b..cc65d12 100644
--- a/tests/tests/util/Android.mk
+++ b/tests/tests/util/Android.mk
@@ -29,7 +29,8 @@
 
 LOCAL_INSTRUMENTATION_FOR := CtsTestStubs
 
-LOCAL_SDK_VERSION := current
+# uncomment when dalvik.annotation.Test* are removed or part of SDK
+#LOCAL_SDK_VERSION := current
 
 include $(BUILD_PACKAGE)
 
diff --git a/tests/tests/view/src/android/view/cts/KeyEventTest.java b/tests/tests/view/src/android/view/cts/KeyEventTest.java
index 24264d1..6da754f 100644
--- a/tests/tests/view/src/android/view/cts/KeyEventTest.java
+++ b/tests/tests/view/src/android/view/cts/KeyEventTest.java
@@ -768,6 +768,10 @@
             return true;
         }
 
+        public boolean onKeyLongPress(int keyCode, KeyEvent event) {
+            return false;
+        }
+        
         public boolean onKeyMultiple(int keyCode, int count, KeyEvent event) {
             mIsMultiple = true;
             mKeyCode = keyCode;
diff --git a/tests/tests/view/src/android/view/cts/WindowTest.java b/tests/tests/view/src/android/view/cts/WindowTest.java
index 602eeb3..f65c30b 100644
--- a/tests/tests/view/src/android/view/cts/WindowTest.java
+++ b/tests/tests/view/src/android/view/cts/WindowTest.java
@@ -1299,6 +1299,12 @@
         public void onWindowFocusChanged(boolean hasFocus) {
         }
 
+        public void onDetachedFromWindow() {
+        }
+
+        public void onAttachedToWindow() {
+        }
+
         public void onPanelClosed(int featureId, Menu menu) {
             mIsOnPanelClosedCalled = true;
         }
diff --git a/tests/tests/webkit/Android.mk b/tests/tests/webkit/Android.mk
index c96d6e1..f739b42 100644
--- a/tests/tests/webkit/Android.mk
+++ b/tests/tests/webkit/Android.mk
@@ -29,7 +29,8 @@
 
 LOCAL_INSTRUMENTATION_FOR := CtsTestStubs
 
-LOCAL_SDK_VERSION := current
+# uncomment when dalvik.annotation.Test* are removed or part of SDK
+#LOCAL_SDK_VERSION := current
 
 include $(BUILD_PACKAGE)
 
diff --git a/tests/tests/widget/src/android/widget/cts/MediaControllerTest.java b/tests/tests/widget/src/android/widget/cts/MediaControllerTest.java
index fbdbc1c..ca52109 100644
--- a/tests/tests/widget/src/android/widget/cts/MediaControllerTest.java
+++ b/tests/tests/widget/src/android/widget/cts/MediaControllerTest.java
@@ -558,6 +558,18 @@
         public int getBufferPercentage() {
             return 0;
         }
+
+        public boolean canPause() {
+            return true;
+        }
+
+        public boolean canSeekBackward() {
+            return true;
+        }
+
+        public boolean canSeekForward() {
+            return true;
+        }
     }
 
     private static class MockOnClickListener implements OnClickListener {
diff --git a/tools/test-progress-new/etc/test-progress b/tools/test-progress-new/etc/test-progress
index 62eb672..94a4289 100644
--- a/tools/test-progress-new/etc/test-progress
+++ b/tools/test-progress-new/etc/test-progress
@@ -227,7 +227,6 @@
 javax.security.cert \
 javax.sql \
 javax.xml.parsers \
-org.w3c.dom \
 org.xml.sax \
 org.xml.sax.ext \
 org.xml.sax.helpers"
@@ -365,6 +364,11 @@
 javadoc -J-Xmx1024M -docletpath $CLASSES -doclet testprogress2.TestCoverageDoclet -f $TESTCOVERAGE_FLAGS -d $OUTPUT -sourcepath $SOURCE_PATH
 
 # left out on purpose:
+# org.w3c.dom packages: the tests in the xml module are superseded by the
+# official w3c test suite located in the dom module.
+#
+
+# left out on purpose:
 # concurrent packages: a full test suite exists (JCP JSR166 test suite) and it located at 
 # device/dalvik/libcore/concurrent/src/test/java/tests/api/java/util/concurrent
 #