280 Commits

Author SHA1 Message Date
Makoto Onuki
8e34203c41 Add getApplicationContext to the mock implementation.
So that it'll be compatible with Loaders, which uses this method.
(Otherwise MockContext.getApplicationContext(), which just throws
an exception, will be used.)

Change-Id: I529b60466cf086b514fcddbef4583d1c5b750b9c
2010-09-07 14:27:25 -07:00
Dianne Hackborn
2394c164a7 am ec438e14: am 361199b5: Add PackageManager API to get information about a provider component.
Merge commit 'ec438e1448ebc578ee5a4c4beb1e26292cdedd6e'

* commit 'ec438e1448ebc578ee5a4c4beb1e26292cdedd6e':
  Add PackageManager API to get information about a provider component.
2010-08-31 19:06:25 -07:00
Dianne Hackborn
361199b5e7 Add PackageManager API to get information about a provider component.
Kind-of useful when all you have is a ComponentName.

Change-Id: I9a99f12daabb29e97e882e09c43ca0df70c00651
2010-08-31 18:59:04 -07:00
Dianne Hackborn
23fdaf6fb6 Add new ContentProvider for doing conversions to data streams.
This introduces basic infrastructure that should allow content
providers holding complex data to perform on-demand conversion
of their data to streams of various types.  It is achieved through
two new content provider APIs, one to interrogate the possible
stream MIME types the provider can return, and the other to
request a stream of data in a particular MIME type.

Because implementations of this will often need to do on-demand
data conversion, there is also a utility intoduced in ContentProvider
for subclasses to easily run a function to write data into a
pipe that is read by the client.

This feature is mostly intended for cut and paste and drag and
drop, as the complex data interchange allowing the source and
destination to negotiate data types and copy (possible large)
data between them.  However because it is fundamental facility
of ContentProvider, it can be used in other places, such as for
more advanced GET_CONTENT data exchanges.

An example implementation of this would be in ContactsProvider,
which can now provider a data stream when a client opens certain
pieces of it data, to return data as flat text, a vcard, or other
format.

Change-Id: I58627ea4ed359aa7cf2c66274adb18306c209cb2
2010-08-08 18:49:31 -07:00
Brian Carlstrom
3c7c351a62 Tracking merge of dalvik-dev to gingerbread
git cherry-pick --no-commit f77cf7f0
git cherry-pick --no-commit c8f503b5285e30c1a881d0ba860ba9021f57d113
git cherry-pick --no-commit 570bb561
git cherry-pick --no-commit e2417541
git cherry-pick --no-commit e4d81f25bd4dc1a5c909b56ab56a56406290da30
git cherry-pick --no-commit 5e8a587d

Change-Id: I101a385d43f3e0f4ce5352217f92ef67a3908c88
2010-08-04 23:47:38 -07:00
Vasu Nori
b6d1437f32 fix build breakage
eclipse doesn't complain but our build does..

Change-Id: If0289b68e91e7eb2ae7a9b7bd90d5cb6b728e944
2010-08-04 18:05:00 -07:00
Vasu Nori
0c9e14aa4a add shutdown() to ContentProvider & call in ProviderTestCase*.tearDown
Change-Id: I3dd69b6907d68b7c1184139f22297ab92337f043
2010-08-04 13:34:34 -07:00
Jeff Hamilton
ebd19e0f48 Add LoaderTestCase that makes it easier to test Loaders.
Change-Id: I4e91d6767cfd5cc61d7893e9cd71e963e42601a4
2010-07-27 14:03:00 -05:00
Joe Malin
d93f4e5b70 Merge "DO NOT MERGE Doc Change: Javadoc for test case classes" into gingerbread 2010-07-13 09:46:38 -07:00
Brett Chabot
bbfe0b2264 am 243f7f85: am f6120cf4: Merge "Improve InstrumentationTestRunner exception handling." into gingerbread
Merge commit '243f7f85ea9e57716590b9cf355e55d1f0236fce'

* commit '243f7f85ea9e57716590b9cf355e55d1f0236fce':
  Improve InstrumentationTestRunner exception handling.
2010-07-08 19:10:29 -07:00
Kenny Root
511d9ec363 am 0a21801f: am a5402dab: Merge "OBB API for PackageManager" into gingerbread
Merge commit '0a21801f5fae22cd5e1b3e9f1c1405c744e24c9b'

* commit '0a21801f5fae22cd5e1b3e9f1c1405c744e24c9b':
  OBB API for PackageManager
2010-07-08 19:09:06 -07:00
Brett Chabot
f6120cf431 Merge "Improve InstrumentationTestRunner exception handling." into gingerbread 2010-07-08 14:09:21 -07:00
Brett Chabot
31e7ce762c Improve InstrumentationTestRunner exception handling.
This commit fixes two somewhat related problems:
  - Attempting to run a method which does not exist caused a runtime
exception which stopped the test run. Change this so the runner reports
an individual test failure instead
  - A runtime exception during the test run would cause it to stop
completely, with no information dumped to the logcat or stdout. Now
exceptions are trapped and reported to stdout.

Also added associated unit tests to test these two conditions.

Related bug 2812262.

Change-Id: I383f9b9bad99f14cb51071800fa9bdbf6a6a1119
2010-07-07 17:33:22 -07:00
Kenny Root
93565c4b32 OBB API for PackageManager
Simple API for tracking .obb files associated with packages. Stores the
path in the PackageSettings. No verification of file content is done
now since the PackageManagerService can't read the SD card where these
files will likely live.

Change-Id: Ibeaf26ba0526b6d60f401137e58f46ee9faff39e
2010-07-07 09:57:51 -07:00
Joe Malin
87e98cda1c DO NOT MERGE Doc Change: Javadoc for test case classes
Change-Id: I21b78a84ee1345a98631dcaab937a10b4fa4344d

Original change was SHA1 7d433aabb731a790fc8d06d260c826751215113f
2010-07-02 17:52:37 -07:00
Joe Malin
7d433aabb7 Javadoc for test case classes
Change-Id: Ibfa035cfe9091a81fca8bd0a6c141ec26c2de139
2010-06-29 15:03:58 -07:00
Evan Millar
25f3ab4ee7 Manual merge of change 53051 from master (DO NOT MERGE)
Change-Id: Ia4697a15cb874f25849655994e10aa88ae60b328
2010-06-18 16:19:26 -07:00
Makoto Onuki
f6b979a04f Fix UnsupportedOperationException from MockContext.
Added the new variant of openOrCreateDatabase to RenamingDelegatingContext too.

Bug 2739822

Change-Id: I65868d0975e0a0a87ade6b5a0d625b96676af0ba
2010-06-04 16:14:42 -07:00
Vasu Nori
74f170f946 new API in Context. on openDatabase, new param DatabaseErrorHandler
add new method openOrCreateDatabase in Context.java to allow
callers specify a DatabaseErrorHandler object to be used when
database corruption occurs.
add new constructor in SQLiteOpenHelper to accept DatabaseErrorHandler
as an additional param to be used when SQLiteDatabase instance is
created.

Change-Id: I912a0202a74510f9ca0206dd8101c4abab9102ae
2010-06-03 12:38:11 -07:00
Vasu Nori
8b0dd7da36 add API to Cursor to get column value type
Change-Id: I3ef1bcdb2eb1c45f68e829ccb6e3ecde28076591
2010-06-02 17:40:41 -07:00
Evan Millar
71be4b5ed9 Bring ServiceTestCase in line with current Service APIs and remove unnecessary asserts.
-Updated onStart() call to onStartCommand()
-Removed asserts that disallowed starting an already bound service and vice versa, since
 that is a valid Service usage pattern.

Change-Id: I79804aef5319a590c74fca54fc990954f7c3fdaa
2010-06-01 13:55:50 -07:00
Jeff Hamilton
e26867793b Remove the unused modification APIs from MockCursor. They shouldn't have been public in the first place.
Change-Id: I2932e5287f838f72acdc4c0c1fd5601ffa8c3f84
2010-05-13 23:44:10 -05:00
Jesse Wilson
c8f503b528 Moving junit out of core.jar and into core-junit.jar.
Change-Id: I38b585044aaa0f0ef5a243a33d942ab0e490f8f1
2010-05-12 22:05:07 -07:00
Brett Chabot
631447c604 Merge "Add test runner log when test case class is not loaded." 2010-04-26 10:30:56 -07:00
Brett Chabot
bb469fe3da Add test runner log when test case class is not loaded.
The test runner will only load TestCase classes that have a public
constructor with either no params or a single String parameter.

This is fairly subtle behavior and can be difficult to catch. This change
adds a log message when a TestCase class is not loaded, and adds some
associated unit tests.

Change-Id: I6fc63e4179c949620f5773e0ae134f99905a6fb2
2010-04-23 16:29:00 -07:00
Adam Powell
81cd2e90cc Logo attribute for manifest and PackageManager methods to fetch it
Change-Id: I2c5ac44a4e2af982a616b2012901d7395013b19f
2010-04-23 15:49:07 -07:00
Dianne Hackborn
d7c096845d Package manager optimizations.
Addresses:
Issue #2550648: PackageManagerService setComponentEnabledSetting unconditionally
writes Settings xml
Issue #2549084: Make PackageManager.addPermission have async version

Also make the writing of settings when changing the preferred activities to use
the same async mechanism, and fiddle with thread priorities in the background
thread to go up to foreground priority when holding the lock to write settings
and a few other places.  (At some point we should really clean this up to never
acquire the main lock while in the background.)

Change-Id: Ib2b7632543f6fb3f92a225518579f3b2d15e1413
2010-03-30 13:34:43 -07:00
Brett Chabot
89c0ef4aba Add -e package description to InstrumentationTestRunner javadoc.
Bug 2528316

Change-Id: Ic707115e40a18521e0d57ee12f43df96be7033f2
2010-03-19 11:40:50 -07:00
Kenny Root
10362ab9d6 Add missing license notices on test classes
Change number and file origin info

34691-p9 frameworks/base/test-runner/src/android/test/ProviderTestCase2.java
48099-p9 frameworks/base/test-runner/src/android/test/RenamingDelegatingContext.java
40550-p9 frameworks/base/test-runner/src/android/test/BundlePrinter.java
87783-p9 frameworks/base/test-runner/src/android/test/IsolatedContext.java
34691-p9 frameworks/base/test-runner/src/android/test/ProviderTestCase.java

Change-Id: I1fea36db24e73f91ffdf43b84ff73be55478b53a
2010-03-12 11:14:55 -08:00
Brad Fitzpatrick
1877d0158b Add "call" method on ContentProvider.
This permits implementing interfaces which are faster than using
remote Cursors.  It then uses it for Settings & SettingProvider, which
together account for ~50% of total ContentProvider event loop stalls
across Froyo dogfooders.

For fetching Settings this looks like it should reduce average
Settings lookup from 10 ms to 0.4 ms on Sholes, once the
SettingsProvider serves most gets from in-memory cache.  Currently it
brings the Sholes average down from 10ms to 2.5 ms while still using
SQLite queries on each get.
2010-03-05 12:08:39 -08:00
Paul Westbrook
69120a73d0 Bug 2306842
Since MockAccountManager was passing null to the AccountManager
constructor, unit tests where the AccountManager attempts to call
the AccountManagerService were crashing.

Now the getAccountsByTypeAndFeatures and blockingGetAuthToken
(which are the calls that the Gmail unit tests call) call a small
stub

At some point, all of the other AccountManager calls should be stubbed
out
2010-02-26 18:24:29 -08:00
Doug Zongker
0375fa12c7 fix error in javadoc
The "@link LargeTest" is broken since it doesn't know where that class is.

Change-Id: Ie15e40bac8a1965427e351926b2208775e79cb13
2010-02-23 12:36:06 -08:00
Brett Chabot
88e03a9736 Add ability to run tests restricted to given annotation.
And ability to exclude tests with given annotation.

Also fix class cast compile warning in emma output method.

Bug 2239240

Change-Id: I56273a51a8c58a690680bdb612615fab69e6e13f
2010-02-22 18:08:35 -08:00
Brett Chabot
08d13c3cbb Fix code coverage output message when running tests in non-raw mode.
Bug 2082804
2010-02-20 18:38:30 -08:00
Brett Chabot
e70f61b116 Retry test-runner tests move.
This time change the frameworks makefile so it only includes test-runner/src
in the public API.
2010-02-20 17:29:05 -08:00
Suchi Amalapurapu
8946dd3355 Move package from internal to external and vice versa. 2010-02-19 14:20:54 -08:00
Suchi Amalapurapu
642b7c0f19 Merge "Include install location preference when installing packages. Changes include Add new remote call in default container service to determine install location. Rename INSTALL_ON_SDCARD Remove recommentAppInstall method Add some additional flags used in remote stubs. Move check for protected apps prior to copy. Unit tests" 2010-02-16 09:23:51 -08:00
Suchi Amalapurapu
5b993ce7bc Include install location preference when installing packages.
Changes include
Add new remote call in default container service to determine
install location.
Rename INSTALL_ON_SDCARD
Remove recommentAppInstall method
Add some additional flags used in remote stubs.
Move check for protected apps prior to copy.
Unit tests

DefaultContainerService first parses the file uri(if content uri is specified
it returns a default install internal only value) and returns
a recommended location. Based on which the temporary id is determined
either a file name or a container id and the file is copied there.
This is then later renamed during install.
Todo's light weight parsing of package when determining location since we
just need the install location attribute only when finding out
recomended location. This will also enable to move the check for
updated system apps(cannot be on sdcard) prior to copying.
2010-02-12 18:50:47 -08:00
Brett Chabot
90762d35a9 Modify ActivityInstrumentationTestCase2 to not require hardcoded package name.
Deprecate old constructor.

Bug 2440167
2010-02-12 11:09:26 -08:00
Dianne Hackborn
470969346d Add APIs for mapping between new and current package names.
This will allow Market and others to find out what the "real" name
of a package is, when it is currently running under the old name of
a previously installed version.
2010-02-11 20:02:20 -08:00
Paul Westbrook
1048108f1f Fix some Gmail tests
The SSLSessionCache attempts to create a directory through the context
In MockContext, this throws an UnsupportedOperationExcetion

This CL changes MockContext2 in ProviderTestCase2 to allow getDir
to be called, but the directory is named so it will be seperated from
a directory created by a regular context
2010-02-11 14:09:10 -08:00
Suchi Amalapurapu
117818e4f1 Add new manifest option for install location
Change recommendAppInstallLocation api
add code to parse new attribute.
Define flags in PackageInfo
Add new settings attributes for enabling setting and value for install location
Some tests
The policy for install location: if explicitly set in manifest as internal only we try to install the app only on internal storage. if set to preferExternal, we try to install it on sdcard if possible. If not we fall back to internal.
If the user enables setting SET_INSTALL_LOCATION(which will always
be set to false in final release builds) and sets a prefered location, we try
to honour it.
2010-02-10 08:59:08 -08:00
Mike Lockwood
d03ff94fe5 Clean up interface between LocationManagerService and the location providers:
LocationManagerService now uses new Java interface LocationProviderInterface
rather than LocationProviderProxy to refer to location providers internally.

LocationProviderProxy and the ILocationProvider binder interface are only
used for location providers implemented as services (NetworkLocationProvider)

Built-in location providers (GpsLocationProvider and mock providers) now just
implement LocationProviderInterface rather than using a Binder interface and proxy object.

Delete obsolete and unused TestLocationProvider class.

Change-Id: Id800e7c1864f7c666f8e37125c05896493b9c8c4
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-02-10 09:41:25 -05:00
Dianne Hackborn
e83cefcef0 New external storage APIs.
This implements the spec for external storage organization, and
properly reflects how the media scanner organizes the files it finds.

Also includes package manager support for removing app private
files from external storage when the application is uninstalled.

For the new APIs and paths, the main place to look is Environment
and Context.
2010-02-09 14:20:55 -08:00
Fred Quintana
53bd2522ca - change the SyncManager to retry MANUAL syncs that encounter a soft error
- make the sync dump handle the case where there are no accounts
- fix a bug that caused the SyncManager to burn up CPU in the system process

The following was implemented:

scheduler offers:
 - settings to disable sync
 - retries of certain errors
 - backoffs

want a way to control these when scheduling a sync
 - "ignore_settings"
 - "ignore initial backoff"
 - "manual" : ignore settings, ignore initial backoff
 - "do not retry"

- need to change the default behavior of not retrying manual syncs to retry regardless
2010-02-08 16:54:43 -08:00
The Android Open Source Project
5d36c46d2d am ad9bcb22: merge from open-source master
Merge commit 'ad9bcb22d05fbf130ac64254abd51a137e9a3d3f'

* commit 'ad9bcb22d05fbf130ac64254abd51a137e9a3d3f':
  Fix x coordinate of the ACTION_UP event in TouchUtils.drag() method
  Fixed Android animation framework, for using interpolators that do not start at 0.0f
  Fix for GPS engines without separate session and engine status events.
  Be tolerant of GPS session and engine on status messages arriving out of order.
  GpsLocationProvider: Do not release wakelock until the GPS engine is fully off
2010-02-08 09:17:10 -08:00
The Android Open Source Project
ad9bcb22d0 merge from open-source master 2010-02-05 13:55:16 -08:00
Marc Capdevielle
8621cfa43f Fix x coordinate of the ACTION_UP event in TouchUtils.drag() method
The ACTION_UP event was fired at the "fromX" position instead of being
fired at the "toX" position which is the current value of local var "x".

This bug had no real impact as the VelocityTracker always ignores the last
MotionEvent when it received more than 3 events...
2010-02-05 19:28:23 +01:00
Oscar Montemayor
539d3c475f Apps on SD card project.
Refactored recommendAppInstallLocation(..) method in PackageManager by making it an instance method.
Since PackageManager has only abstarct instance methods, moved implementation to ApplicationContext.ApplicationPackageManager class, in line with the rest of the method
implementations. Tah way, chage is consistent with best coding practices.
Also MockPackageManager received the additional method.
2010-01-29 15:28:42 -08:00
Fred Quintana
717f0eb34b am 029074ff: fix build
Merge commit '029074ff0fca198676997c7453cfffa932361081' into eclair-mr2-plus-aosp

* commit '029074ff0fca198676997c7453cfffa932361081':
  fix build
2009-12-10 10:45:22 -08:00