diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2010-06-14 11:48:15 -0700 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2010-06-14 11:48:15 -0700 |
commit | 73550d28df4b7ee2faa39cc4b1b4cc854343632a (patch) | |
tree | 289d4e7cf36b3a6f98e37dc9efea74b5d141fbd2 /tests | |
parent | ea38e678537cf740b5f30c1d69c7a332e98cdd2c (diff) | |
parent | b817cb6e398d4f1f9c3822360f325250d6152e60 (diff) | |
download | packages_apps_Settings-73550d28df4b7ee2faa39cc4b1b4cc854343632a.zip packages_apps_Settings-73550d28df4b7ee2faa39cc4b1b4cc854343632a.tar.gz packages_apps_Settings-73550d28df4b7ee2faa39cc4b1b4cc854343632a.tar.bz2 |
merge from froyo-plus-aosp
Change-Id: I6c6ee9c9567f5aef7e1beb585296c1e2fb884e9a
Diffstat (limited to 'tests')
-rw-r--r-- | tests/AndroidManifest.xml | 21 | ||||
-rwxr-xr-x | tests/res/drawable/ic_settings_applications.png | bin | 0 -> 1723 bytes | |||
-rw-r--r-- | tests/res/layout/manufacturer_main.xml | 22 | ||||
-rw-r--r-- | tests/res/layout/operator_main.xml | 22 | ||||
-rw-r--r-- | tests/res/values/strings.xml | 6 | ||||
-rw-r--r-- | tests/src/com/android/settings/SettingsHookTests.java | 137 | ||||
-rw-r--r-- | tests/src/com/android/settings/tests/Manufacturer.java | 29 | ||||
-rw-r--r-- | tests/src/com/android/settings/tests/Operator.java | 30 |
8 files changed, 267 insertions, 0 deletions
diff --git a/tests/AndroidManifest.xml b/tests/AndroidManifest.xml index 6b9e050..e125128 100644 --- a/tests/AndroidManifest.xml +++ b/tests/AndroidManifest.xml @@ -30,8 +30,29 @@ <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> + <activity android:name="Operator" android:label="Operator Hook Test" > + <intent-filter> + <action android:name="com.android.settings.OPERATOR_APPLICATION_SETTING" /> + </intent-filter> + <meta-data android:name="com.android.settings.title" android:resource="@string/operator_settings_title" /> + <meta-data android:name="com.android.settings.summary" android:resource="@string/operator_settings_summary" /> + <meta-data android:name="com.android.settings.icon" android:resource="@drawable/ic_settings_applications" /> + </activity> + <activity android:name="Manufacturer" android:label="Manufacturer Hook Test" > + <intent-filter> + <action android:name="com.android.settings.MANUFACTURER_APPLICATION_SETTING" /> + </intent-filter> + <meta-data android:name="com.android.settings.title" android:resource="@string/manufacturer_settings_title" /> + <meta-data android:name="com.android.settings.summary" android:resource="@string/manufacturer_settings_summary" /> + <meta-data android:name="com.android.settings.icon" android:resource="@drawable/ic_settings_applications" /> + </activity> </application> + <instrumentation android:name="android.test.InstrumentationTestRunner" + android:targetPackage="com.android.settings" + android:label="Settings App Tests"> + </instrumentation> + <instrumentation android:name="SettingsLaunchPerformance" android:targetPackage="com.android.settings" android:label="Settings Launch Performance"> diff --git a/tests/res/drawable/ic_settings_applications.png b/tests/res/drawable/ic_settings_applications.png Binary files differnew file mode 100755 index 0000000..5cea33f --- /dev/null +++ b/tests/res/drawable/ic_settings_applications.png diff --git a/tests/res/layout/manufacturer_main.xml b/tests/res/layout/manufacturer_main.xml new file mode 100644 index 0000000..8f8c48f --- /dev/null +++ b/tests/res/layout/manufacturer_main.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- 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. +--> + +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:orientation="vertical" android:layout_width="fill_parent" + android:layout_height="fill_parent"> + <TextView android:layout_width="fill_parent" + android:layout_height="wrap_content" android:text="@string/manufacturer_hello" /> +</LinearLayout> diff --git a/tests/res/layout/operator_main.xml b/tests/res/layout/operator_main.xml new file mode 100644 index 0000000..3cf8e00 --- /dev/null +++ b/tests/res/layout/operator_main.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- 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. +--> + +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:orientation="vertical" android:layout_width="fill_parent" + android:layout_height="fill_parent"> + <TextView android:layout_width="fill_parent" + android:layout_height="wrap_content" android:text="@string/operator_hello" /> +</LinearLayout> diff --git a/tests/res/values/strings.xml b/tests/res/values/strings.xml index 00de425..9fb98f9 100644 --- a/tests/res/values/strings.xml +++ b/tests/res/values/strings.xml @@ -22,4 +22,10 @@ <string name="discoverable">Discoverable</string> <string name="start_scan">Start scan</string> <string name="stop_scan">Stop scan</string> + <string name="operator_hello">Hello Operator!</string> + <string name="operator_settings_title">Operator</string> + <string name="operator_settings_summary">Operator hook that can be used to start activity of choice</string> + <string name="manufacturer_hello">Hello Manufacturer!</string> + <string name="manufacturer_settings_title">Manufacturer</string> + <string name="manufacturer_settings_summary">Manufacturer hook that can be used to start activity of choice</string> </resources> diff --git a/tests/src/com/android/settings/SettingsHookTests.java b/tests/src/com/android/settings/SettingsHookTests.java new file mode 100644 index 0000000..b14e5bc --- /dev/null +++ b/tests/src/com/android/settings/SettingsHookTests.java @@ -0,0 +1,137 @@ +/* + * Copyright (C) 2010 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 com.android.settings; + +import com.android.settings.tests.Manufacturer; +import com.android.settings.tests.Operator; + +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.content.pm.ActivityInfo; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageManager; +import android.content.pm.ResolveInfo; +import android.content.res.Resources; +import android.os.Bundle; +import android.preference.Preference; +import android.preference.PreferenceGroup; +import android.test.ActivityInstrumentationTestCase2; + +import java.util.List; + +/** + * Tests for the Settings operator/manufacturer hook. + * + * Running all tests: + * + * make SettingsTests + * adb push SettingsTests.apk /system/app/SettingsTests.apk + * adb shell am instrument \ + * -w com.android.settings.tests/android.test.InstrumentationTestRunner + */ +public class SettingsHookTests extends ActivityInstrumentationTestCase2<Settings> { + + private static final String PACKAGE_NAME = "com.android.settings.tests"; + + private static final String KEY_SETTINGS_ROOT = "parent"; + private static final String KEY_SETTINGS_OPERATOR = "operator_settings"; + private static final String KEY_SETTINGS_MANUFACTURER = "manufacturer_settings"; + + private static final String INTENT_OPERATOR_HOOK = "com.android.settings.OPERATOR_APPLICATION_SETTING"; + private static final String INTENT_MANUFACTURER_HOOK = "com.android.settings.MANUFACTURER_APPLICATION_SETTING"; + + private Settings mSettings; + + public SettingsHookTests() { + super("com.android.settings", Settings.class); + } + + @Override + protected void setUp() throws Exception { + super.setUp(); + mSettings = getActivity(); + } + + /** + * Test that the operator/manufacturer settings hook test application is + * available and that it's installed in the device's system image. + */ + public void testSettingsHookTestAppAvailable() throws Exception { + Context context = mSettings.getApplicationContext(); + PackageManager pm = context.getPackageManager(); + ApplicationInfo applicationInfo = pm.getApplicationInfo(PACKAGE_NAME, 0); + assertTrue((applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0); + } + + /** + * Test that the operator test activity has registered an intent-filter for + * an action named 'android.settings.OPERATOR_APPLICATION_SETTING'. + */ + public void testOperatorIntentFilter() { + boolean result = false; + Context context = mSettings.getApplicationContext(); + PackageManager pm = context.getPackageManager(); + Intent intent = new Intent(INTENT_OPERATOR_HOOK); + List<ResolveInfo> list = pm.queryIntentActivities(intent, 0); + for (ResolveInfo resolveInfo : list) { + if (resolveInfo.activityInfo.packageName.equals(PACKAGE_NAME)) { + result = true; + } + } + assertTrue("Intent-filer not found", result); + } + + /** + * Test that the manufacturer test activity has registered an intent-filter + * for an action named 'android.settings.MANUFACTURER_APPLICATION_SETTING'. + */ + public void testManufacturerIntentFilter() { + boolean result = false; + Context context = mSettings.getApplicationContext(); + PackageManager pm = context.getPackageManager(); + Intent intent = new Intent(INTENT_MANUFACTURER_HOOK); + List<ResolveInfo> list = pm.queryIntentActivities(intent, 0); + for (ResolveInfo resolveInfo : list) { + if (resolveInfo.activityInfo.packageName.equals(PACKAGE_NAME)) { + result = true; + } + } + assertTrue("Intent-filer not found", result); + } + + /** + * Test that the operator preference is available in the Settings + * application. + */ + public void testOperatorPreferenceAvailable() { + PreferenceGroup root = (PreferenceGroup)mSettings.findPreference(KEY_SETTINGS_ROOT); + Preference operatorPreference = root.findPreference(KEY_SETTINGS_OPERATOR); + assertNotNull(operatorPreference); + } + + /** + * Test that the manufacturer preference is available in the Settings + * application. + */ + public void testManufacturerPreferenceAvailable() { + PreferenceGroup root = (PreferenceGroup)mSettings.findPreference(KEY_SETTINGS_ROOT); + Preference manufacturerHook = root.findPreference(KEY_SETTINGS_MANUFACTURER); + assertNotNull(manufacturerHook); + } + +} diff --git a/tests/src/com/android/settings/tests/Manufacturer.java b/tests/src/com/android/settings/tests/Manufacturer.java new file mode 100644 index 0000000..692e6a8 --- /dev/null +++ b/tests/src/com/android/settings/tests/Manufacturer.java @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2010 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 com.android.settings.tests; + +import android.app.Activity; +import android.os.Bundle; + +public class Manufacturer extends Activity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.manufacturer_main); + } +} diff --git a/tests/src/com/android/settings/tests/Operator.java b/tests/src/com/android/settings/tests/Operator.java new file mode 100644 index 0000000..8a34363 --- /dev/null +++ b/tests/src/com/android/settings/tests/Operator.java @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2010 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 com.android.settings.tests; + +import android.app.Activity; +import android.os.Bundle; + +public class Operator extends Activity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.operator_main); + } + +} |