Moving framework core tests closer to their source files.
Phase 2 of test case cleanup; distributing CoreTests files closer to their respective sources under frameworks.
This commit is contained in:
14
core/tests/coretests/Android.mk
Normal file
14
core/tests/coretests/Android.mk
Normal file
@@ -0,0 +1,14 @@
|
||||
LOCAL_PATH:= $(call my-dir)
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
# We only want this apk build for tests.
|
||||
LOCAL_MODULE_TAGS := tests
|
||||
|
||||
# Include all test java files.
|
||||
LOCAL_SRC_FILES := $(call all-java-files-under, src)
|
||||
|
||||
LOCAL_JAVA_LIBRARIES := android.test.runner
|
||||
LOCAL_PACKAGE_NAME := FrameworksCoreTests
|
||||
|
||||
include $(BUILD_PACKAGE)
|
||||
|
||||
56
core/tests/coretests/AndroidManifest.xml
Normal file
56
core/tests/coretests/AndroidManifest.xml
Normal file
@@ -0,0 +1,56 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- 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.
|
||||
-->
|
||||
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.android.frameworks.coretests">
|
||||
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.READ_CONTACTS" />
|
||||
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
|
||||
<uses-permission android:name="android.permission.WRITE_APN_SETTINGS" />
|
||||
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
|
||||
|
||||
<!-- location test permissions -->
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/>
|
||||
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
|
||||
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||
|
||||
<application>
|
||||
<uses-library android:name="android.test.runner" />
|
||||
<activity android:name="StubTestBrowserActivity" android:label="Stubbed Test Browser">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
<category android:name="android.intent.category.FOR_TESTS_ONLY"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity android:name="android.test.TestBrowserTests" android:label="Test Browser Tests">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
<category android:name="android.intent.category.UNIT_TEST"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
</application>
|
||||
|
||||
<instrumentation
|
||||
android:name="android.test.InstrumentationTestRunner"
|
||||
android:targetPackage="com.android.frameworks.coretests"
|
||||
android:label="Frameworks Core Tests" />
|
||||
</manifest>
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package android.core;
|
||||
package android.bluetooth;
|
||||
|
||||
import android.bluetooth.AtCommandHandler;
|
||||
import android.bluetooth.AtCommandResult;
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package android.core;
|
||||
package android.pim;
|
||||
|
||||
import android.content.ContentValues;
|
||||
import android.pim.ICalendar;
|
||||
14
location/tests/locationtests/Android.mk
Normal file
14
location/tests/locationtests/Android.mk
Normal file
@@ -0,0 +1,14 @@
|
||||
LOCAL_PATH:= $(call my-dir)
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
# We only want this apk build for tests.
|
||||
LOCAL_MODULE_TAGS := tests
|
||||
|
||||
# Include all test java files.
|
||||
LOCAL_SRC_FILES := $(call all-java-files-under, src)
|
||||
|
||||
LOCAL_JAVA_LIBRARIES := android.test.runner
|
||||
LOCAL_PACKAGE_NAME := FrameworksLocationTests
|
||||
|
||||
include $(BUILD_PACKAGE)
|
||||
|
||||
35
location/tests/locationtests/AndroidManifest.xml
Normal file
35
location/tests/locationtests/AndroidManifest.xml
Normal file
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- 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.
|
||||
-->
|
||||
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.android.frameworks.locationtests">
|
||||
|
||||
<!-- location test permissions -->
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/>
|
||||
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
|
||||
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||
|
||||
<application>
|
||||
<uses-library android:name="android.test.runner" />
|
||||
</application>
|
||||
|
||||
<instrumentation
|
||||
android:name="android.test.InstrumentationTestRunner"
|
||||
android:targetPackage="com.android.frameworks.locationtests"
|
||||
android:label="Frameworks Location Tests" />
|
||||
</manifest>
|
||||
@@ -1,48 +0,0 @@
|
||||
/*
|
||||
* 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 com.android.telephonytest;
|
||||
|
||||
import junit.framework.TestSuite;
|
||||
|
||||
import android.test.InstrumentationTestRunner;
|
||||
import android.test.InstrumentationTestSuite;
|
||||
|
||||
/**
|
||||
* Instrumentation Test Runner for all Telephony unit tests.
|
||||
*
|
||||
* Running all tests:
|
||||
*
|
||||
* runtest telephony-unit
|
||||
* or
|
||||
* adb shell am instrument -w com.android.telephonytest/.TelephonyUnitTestRunner
|
||||
*/
|
||||
|
||||
public class TelephonyUnitTestRunner extends InstrumentationTestRunner {
|
||||
|
||||
@Override
|
||||
public TestSuite getAllTests() {
|
||||
TestSuite suite = new InstrumentationTestSuite(this);
|
||||
suite.addTestSuite(com.android.telephonytest.unit.CallerInfoUnitTest.class);
|
||||
suite.addTestSuite(com.android.telephonytest.unit.PhoneNumberUtilsUnitTest.class);
|
||||
return suite;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ClassLoader getLoader() {
|
||||
return TelephonyUnitTestRunner.class.getClassLoader();
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,6 @@ LOCAL_SRC_FILES := $(call all-subdir-java-files)
|
||||
|
||||
LOCAL_JAVA_LIBRARIES := android.test.runner
|
||||
|
||||
LOCAL_PACKAGE_NAME := telephonytest
|
||||
LOCAL_PACKAGE_NAME := FrameworksTelephonyTests
|
||||
|
||||
include $(BUILD_PACKAGE)
|
||||
@@ -16,7 +16,7 @@
|
||||
-->
|
||||
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.android.telephonytest">
|
||||
package="com.android.frameworks.telephonytests">
|
||||
|
||||
<application>
|
||||
<uses-library android:name="android.test.runner" />
|
||||
@@ -28,9 +28,9 @@
|
||||
</intent-filter>
|
||||
</activity>
|
||||
</application>
|
||||
<instrumentation android:name=".TelephonyUnitTestRunner"
|
||||
android:targetPackage="com.android.telephonytest"
|
||||
android:label="Telephony unit tests InstrumentationRunner">
|
||||
<instrumentation android:name="android.test.InstrumentationTestRunner"
|
||||
android:targetPackage="com.android.frameworks.telephonytests"
|
||||
android:label="Frameworks Telephony Tests">
|
||||
</instrumentation>
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||||
</manifest>
|
||||
@@ -1,65 +0,0 @@
|
||||
/*
|
||||
* 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.core;
|
||||
|
||||
import com.android.internal.telephony.TelephonyTests;
|
||||
|
||||
import junit.framework.TestSuite;
|
||||
|
||||
import android.graphics.ColorStateListTest;
|
||||
import android.location.LocationManagerProximityTest;
|
||||
import android.location.LocationTest;
|
||||
import android.test.AndroidTestRunnerTest;
|
||||
import android.test.InstrumentationTestRunnerTest;
|
||||
import android.util.*;
|
||||
import android.view.FocusFinderTest;
|
||||
import android.view.ViewGroupAttributesTest;
|
||||
import android.webkit.*;
|
||||
|
||||
public class CoreTests extends TestSuite {
|
||||
|
||||
/**
|
||||
* To run these tests:
|
||||
* $ mmm java/tests && adb sync
|
||||
* $ adb shell am instrument -w \
|
||||
* -e class android.core.CoreTests \
|
||||
* android.core/android.test.InstrumentationTestRunner
|
||||
*/
|
||||
public static TestSuite suite() {
|
||||
TestSuite suite = new TestSuite(CoreTests.class.getName());
|
||||
|
||||
// Re-enable StateListDrawableTest when we are running in the
|
||||
// framework-test directory which allows access to package private
|
||||
// access for MockView
|
||||
// suite.addTestSuite(StateListDrawableTest.class);
|
||||
suite.addTestSuite(DayOfMonthCursorTest.class);
|
||||
suite.addTestSuite(MonthDisplayHelperTest.class);
|
||||
suite.addTestSuite(StateSetTest.class);
|
||||
suite.addTestSuite(ColorStateListTest.class);
|
||||
suite.addTestSuite(FocusFinderTest.class);
|
||||
suite.addTestSuite(ViewGroupAttributesTest.class);
|
||||
suite.addTest(TelephonyTests.suite());
|
||||
suite.addTestSuite(FloatMathTest.class);
|
||||
suite.addTest(JavaTests.suite());
|
||||
suite.addTestSuite(LocationTest.class);
|
||||
suite.addTestSuite(LocationManagerProximityTest.class);
|
||||
suite.addTestSuite(AndroidTestRunnerTest.class);
|
||||
suite.addTestSuite(InstrumentationTestRunnerTest.class);
|
||||
|
||||
return suite;
|
||||
}
|
||||
}
|
||||
@@ -1,86 +0,0 @@
|
||||
/*
|
||||
* 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.core;
|
||||
|
||||
import junit.framework.TestSuite;
|
||||
|
||||
public class JavaTests {
|
||||
public static TestSuite suite() {
|
||||
TestSuite suite = new TestSuite(JavaTests.class.getName());
|
||||
|
||||
//Disabling until bug http://b/issue?id=1200337 is resolved
|
||||
//suite.addTestSuite(RequestAPITest.class);
|
||||
suite.addTestSuite(MathTest.class);
|
||||
suite.addTestSuite(StrictMathTest.class);
|
||||
suite.addTestSuite(HashMapPerfTest.class);
|
||||
suite.addTestSuite(TreeMapTest.class);
|
||||
suite.addTestSuite(FloatDoubleTest.class);
|
||||
suite.addTestSuite(Sha1Test.class);
|
||||
suite.addTestSuite(NIOTest.class);
|
||||
suite.addTestSuite(ReflectArrayTest.class);
|
||||
//Commenting out until we find a better way to exclude from continuous testing.
|
||||
//suite.addTestSuite(URLTest.class);
|
||||
suite.addTestSuite(URITest.class);
|
||||
suite.addTestSuite(RegexTest.class);
|
||||
suite.addTestSuite(HashMapTest.class);
|
||||
suite.addTestSuite(ArrayListTest.class);
|
||||
suite.addTestSuite(BooleanTest.class);
|
||||
suite.addTestSuite(StringTest.class);
|
||||
suite.addTestSuite(BufferedReaderTest.class);
|
||||
suite.addTestSuite(CharArrayReaderTest.class);
|
||||
suite.addTestSuite(PushbackReaderTest.class);
|
||||
suite.addTestSuite(StringReaderTest.class);
|
||||
suite.addTestSuite(StreamTokenizerTest.class);
|
||||
suite.addTestSuite(ByteArrayInputStreamTest.class);
|
||||
suite.addTestSuite(DataInputStreamTest.class);
|
||||
suite.addTestSuite(BufferedInputStreamTest.class);
|
||||
suite.addTestSuite(PushbackInputStreamTest.class);
|
||||
suite.addTestSuite(ByteArrayOutputStreamTest.class);
|
||||
suite.addTestSuite(DataOutputStreamTest.class);
|
||||
suite.addTestSuite(BufferedOutputStreamTest.class);
|
||||
suite.addTestSuite(CharArrayWriterTest.class);
|
||||
suite.addTestSuite(StringWriterTest.class);
|
||||
suite.addTestSuite(PrintWriterTest.class);
|
||||
suite.addTestSuite(BufferedWriterTest.class);
|
||||
suite.addTestSuite(ClassTest.class);
|
||||
//To be unccommented when Bug #799327 is fixed.
|
||||
//suite.addTestSuite(ClassLoaderTest.class);
|
||||
suite.addTestSuite(LineNumberReaderTest.class);
|
||||
suite.addTestSuite(InputStreamReaderTest.class);
|
||||
suite.addTestSuite(OutputStreamWriterTest.class);
|
||||
suite.addTestSuite(EnumTest.class);
|
||||
suite.addTestSuite(ParseIntTest.class);
|
||||
suite.addTestSuite(PipedStreamTest.class);
|
||||
suite.addTestSuite(LocaleTest.class);
|
||||
//Commenting out until we find a better way to exclude from continuous testing.
|
||||
//suite.addTestSuite(InetAddrTest.class);
|
||||
suite.addTestSuite(SocketTest.class);
|
||||
suite.addTestSuite(ChecksumTest.class);
|
||||
suite.addTestSuite(DeflateTest.class);
|
||||
suite.addTestSuite(ZipStreamTest.class);
|
||||
suite.addTestSuite(GZIPStreamTest.class);
|
||||
suite.addTestSuite(ZipFileTest.class);
|
||||
suite.addTestSuite(FileTest.class);
|
||||
suite.addTestSuite(SQLiteJDBCDriverTest.class);
|
||||
suite.addTestSuite(AtParserTest.class);
|
||||
suite.addTestSuite(DatagramTest.class);
|
||||
suite.addTestSuite(CryptoTest.class);
|
||||
suite.addTestSuite(MiscRegressionTest.class);
|
||||
|
||||
return suite;
|
||||
}
|
||||
}
|
||||
@@ -1,282 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2008 Google Inc.
|
||||
*
|
||||
* 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.location;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.location.Criteria;
|
||||
import android.location.Location;
|
||||
import android.location.LocationManager;
|
||||
import android.provider.Settings;
|
||||
import android.test.AndroidTestCase;
|
||||
import android.test.suitebuilder.annotation.MediumTest;
|
||||
import android.test.suitebuilder.annotation.Suppress;
|
||||
import android.util.Log;
|
||||
|
||||
/**
|
||||
* Tests for LocationManager.addProximityAlert
|
||||
*
|
||||
* TODO: add tests for more scenarios
|
||||
*
|
||||
* To run:
|
||||
* adb shell am instrument -e class android.location.LocationManagerProximityTest \
|
||||
* -w android.core/android.test.InstrumentationTestRunner
|
||||
*
|
||||
* This test requires that the "Allow mock locations" setting be enabled.
|
||||
* To ensure reliable results, all location providers should be disabled.
|
||||
*
|
||||
*/
|
||||
@Suppress
|
||||
@MediumTest
|
||||
public class LocationManagerProximityTest extends AndroidTestCase {
|
||||
|
||||
private static final int UPDATE_LOCATION_WAIT_TIME = 1000;
|
||||
private static final int PROXIMITY_WAIT_TIME = 2000;
|
||||
|
||||
private LocationManager mLocationManager;
|
||||
private PendingIntent mPendingIntent;
|
||||
private TestIntentReceiver mIntentReceiver;
|
||||
|
||||
private static final String LOG_TAG = "LocationProximityTest";
|
||||
|
||||
private static final String PROVIDER_NAME = "test";
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
|
||||
// test that mock locations are allowed so a more descriptive error message can be logged
|
||||
if (Settings.Secure.getInt(getContext().getContentResolver(),
|
||||
Settings.Secure.ALLOW_MOCK_LOCATION, 0) == 0) {
|
||||
fail("Mock locations are currently disabled in Settings - this test requires " +
|
||||
"mock locations");
|
||||
}
|
||||
|
||||
mLocationManager = (LocationManager) getContext().
|
||||
getSystemService(Context.LOCATION_SERVICE);
|
||||
if (mLocationManager.getProvider(PROVIDER_NAME) != null) {
|
||||
mLocationManager.removeTestProvider(PROVIDER_NAME);
|
||||
}
|
||||
|
||||
mLocationManager.addTestProvider(PROVIDER_NAME, true, //requiresNetwork,
|
||||
false, // requiresSatellite,
|
||||
true, // requiresCell,
|
||||
false, // hasMonetaryCost,
|
||||
false, // supportsAltitude,
|
||||
false, // supportsSpeed, s
|
||||
false, // upportsBearing,
|
||||
Criteria.POWER_MEDIUM, // powerRequirement
|
||||
Criteria.ACCURACY_FINE); // accuracy
|
||||
mLocationManager.setTestProviderEnabled(PROVIDER_NAME, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void tearDown() throws Exception {
|
||||
mLocationManager.removeTestProvider(PROVIDER_NAME);
|
||||
|
||||
if (mPendingIntent != null) {
|
||||
mLocationManager.removeProximityAlert(mPendingIntent);
|
||||
}
|
||||
if (mIntentReceiver != null) {
|
||||
getContext().unregisterReceiver(mIntentReceiver);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests basic proximity alert when entering proximity
|
||||
*/
|
||||
public void testEnterProximity() throws Exception {
|
||||
doTestEnterProximity(10000);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests proximity alert when entering proximity, with no expiration
|
||||
*/
|
||||
public void testEnterProximity_noexpire() throws Exception {
|
||||
doTestEnterProximity(-1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper variant for testing enter proximity scenario
|
||||
* TODO: add additional parameters as more scenarios are added
|
||||
*
|
||||
* @param expiration - expiry of proximity alert
|
||||
*/
|
||||
private void doTestEnterProximity(long expiration) throws Exception {
|
||||
// update location to outside proximity range
|
||||
synchronousSendLocation(30, 30);
|
||||
registerProximityListener(0, 0, 1000, expiration);
|
||||
sendLocation(0, 0);
|
||||
waitForAlert();
|
||||
assertProximityType(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests basic proximity alert when exiting proximity
|
||||
*/
|
||||
public void testExitProximity() throws Exception {
|
||||
// first do enter proximity scenario
|
||||
doTestEnterProximity(-1);
|
||||
|
||||
// now update to trigger exit proximity proximity
|
||||
mIntentReceiver.clearReceivedIntents();
|
||||
sendLocation(20, 20);
|
||||
waitForAlert();
|
||||
assertProximityType(false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers the proximity intent receiver
|
||||
*/
|
||||
private void registerProximityListener(double latitude, double longitude,
|
||||
float radius, long expiration) {
|
||||
String intentKey = "testProximity";
|
||||
Intent proximityIntent = new Intent(intentKey);
|
||||
mPendingIntent = PendingIntent.getBroadcast(getContext(), 0,
|
||||
proximityIntent, PendingIntent.FLAG_CANCEL_CURRENT);
|
||||
mIntentReceiver = new TestIntentReceiver(intentKey);
|
||||
|
||||
mLocationManager.addProximityAlert(latitude, longitude, radius,
|
||||
expiration, mPendingIntent);
|
||||
|
||||
getContext().registerReceiver(mIntentReceiver,
|
||||
mIntentReceiver.getFilter());
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Blocks until proximity intent notification is received
|
||||
* @throws InterruptedException
|
||||
*/
|
||||
private void waitForAlert() throws InterruptedException {
|
||||
Log.d(LOG_TAG, "Waiting for proximity update");
|
||||
synchronized (mIntentReceiver) {
|
||||
mIntentReceiver.wait(PROXIMITY_WAIT_TIME);
|
||||
}
|
||||
|
||||
assertNotNull("Did not receive proximity alert",
|
||||
mIntentReceiver.getLastReceivedIntent());
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts that the received intent had the enter proximity property set as
|
||||
* expected
|
||||
* @param expectedEnterProximity - true if enter proximity expected, false if
|
||||
* exit expected
|
||||
*/
|
||||
private void assertProximityType(boolean expectedEnterProximity)
|
||||
throws Exception {
|
||||
boolean proximityTest = mIntentReceiver.getLastReceivedIntent().
|
||||
getBooleanExtra(LocationManager.KEY_PROXIMITY_ENTERING,
|
||||
!expectedEnterProximity);
|
||||
assertEquals("proximity alert not set to expected enter proximity value",
|
||||
expectedEnterProximity, proximityTest);
|
||||
}
|
||||
|
||||
/**
|
||||
* Synchronous variant of sendLocation
|
||||
*/
|
||||
private void synchronousSendLocation(final double latitude,
|
||||
final double longitude)
|
||||
throws InterruptedException {
|
||||
sendLocation(latitude, longitude, this);
|
||||
// wait for location to be set
|
||||
synchronized (this) {
|
||||
wait(UPDATE_LOCATION_WAIT_TIME);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Asynchronously update the mock location provider without notification
|
||||
*/
|
||||
private void sendLocation(final double latitude, final double longitude) {
|
||||
sendLocation(latitude, longitude, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Asynchronously update the mock location provider with given latitude and
|
||||
* longitude
|
||||
*
|
||||
* @param latitude - update location
|
||||
* @param longitude - update location
|
||||
* @param observer - optionally, object to notify when update is sent.If
|
||||
* null, no update will be sent
|
||||
*/
|
||||
private void sendLocation(final double latitude, final double longitude,
|
||||
final Object observer) {
|
||||
Thread locationUpdater = new Thread() {
|
||||
@Override
|
||||
public void run() {
|
||||
Location loc = new Location(PROVIDER_NAME);
|
||||
loc.setLatitude(latitude);
|
||||
loc.setLongitude(longitude);
|
||||
|
||||
loc.setTime(java.lang.System.currentTimeMillis());
|
||||
Log.d(LOG_TAG, "Sending update for " + PROVIDER_NAME);
|
||||
mLocationManager.setTestProviderLocation(PROVIDER_NAME, loc);
|
||||
if (observer != null) {
|
||||
synchronized (observer) {
|
||||
observer.notify();
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
locationUpdater.start();
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper class that receives a proximity intent and notifies the main class
|
||||
* when received
|
||||
*/
|
||||
private static class TestIntentReceiver extends BroadcastReceiver {
|
||||
|
||||
private String mExpectedAction;
|
||||
private Intent mLastReceivedIntent;
|
||||
|
||||
public TestIntentReceiver(String expectedAction) {
|
||||
mExpectedAction = expectedAction;
|
||||
mLastReceivedIntent = null;
|
||||
}
|
||||
|
||||
public IntentFilter getFilter() {
|
||||
IntentFilter filter = new IntentFilter(mExpectedAction);
|
||||
return filter;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
if (intent != null && mExpectedAction.equals(intent.getAction())) {
|
||||
Log.d(LOG_TAG, "Intent Received: " + intent.toString());
|
||||
mLastReceivedIntent = intent;
|
||||
synchronized (this) {
|
||||
notify();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Intent getLastReceivedIntent() {
|
||||
return mLastReceivedIntent;
|
||||
}
|
||||
|
||||
public void clearReceivedIntents() {
|
||||
mLastReceivedIntent = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,54 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2006 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.internal.telephony;
|
||||
|
||||
import com.android.internal.telephony.AdnRecordTest;
|
||||
import com.android.internal.telephony.gsm.GSMPhoneTest;
|
||||
import com.android.internal.telephony.GsmAlphabetTest;
|
||||
import com.android.internal.telephony.SMSDispatcherTest;
|
||||
import com.android.internal.telephony.SimPhoneBookTest;
|
||||
import com.android.internal.telephony.SimSmsTest;
|
||||
import com.android.internal.telephony.SimUtilsTest;
|
||||
|
||||
import junit.framework.TestSuite;
|
||||
|
||||
/**
|
||||
* To run these tests:
|
||||
* $ mmm java/tests && adb sync
|
||||
* $ adb shell am instrument -w \
|
||||
* -e class com.android.internal.telephony.TelephonyTests \
|
||||
* android.core/android.test.InstrumentationTestRunner
|
||||
*/
|
||||
public class TelephonyTests {
|
||||
public static TestSuite suite() {
|
||||
TestSuite suite = new TestSuite(TelephonyTests.class.getName());
|
||||
|
||||
suite.addTestSuite(PhoneNumberWatcherTest.class);
|
||||
suite.addTestSuite(ATResponseParserTest.class);
|
||||
suite.addTestSuite(PhoneNumberUtilsTest.class);
|
||||
suite.addTestSuite(SMSDispatcherTest.class);
|
||||
//suite.addTestSuite(GSMPhoneTest.class);
|
||||
suite.addTestSuite(AdnRecordTest.class);
|
||||
suite.addTestSuite(GsmAlphabetTest.class);
|
||||
suite.addTestSuite(SimUtilsTest.class);
|
||||
suite.addTestSuite(SimPhoneBookTest.class);
|
||||
suite.addTestSuite(SimSmsTest.class);
|
||||
suite.addTestSuite(TelephonyUtilsTest.class);
|
||||
|
||||
return suite;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user