@@ -170,11 +170,10 @@ private IPackageManager getIPm() {
170170 return ipm ;
171171 }
172172
173- public boolean invokeInstallPackage (Uri packageURI , int flags , GenericReceiver receiver ) {
173+ public void invokeInstallPackage (Uri packageURI , int flags , GenericReceiver receiver ,
174+ boolean shouldSucceed ) {
174175 PackageInstallObserver observer = new PackageInstallObserver ();
175- final boolean received = false ;
176176 mContext .registerReceiver (receiver , receiver .filter );
177- final boolean DEBUG = true ;
178177 try {
179178 // Wait on observer
180179 synchronized (observer ) {
@@ -192,10 +191,24 @@ public boolean invokeInstallPackage(Uri packageURI, int flags, GenericReceiver r
192191 if (!observer .isDone ()) {
193192 fail ("Timed out waiting for packageInstalled callback" );
194193 }
195- if (observer .returnCode != PackageManager .INSTALL_SUCCEEDED ) {
196- Log .i (TAG , "Failed to install with error code = " + observer .returnCode );
197- return false ;
194+
195+ if (shouldSucceed ) {
196+ if (observer .returnCode != PackageManager .INSTALL_SUCCEEDED ) {
197+ fail ("Package installation should have succeeded, but got code "
198+ + observer .returnCode );
199+ }
200+ } else {
201+ if (observer .returnCode == PackageManager .INSTALL_SUCCEEDED ) {
202+ fail ("Package installation should fail" );
203+ }
204+
205+ /*
206+ * We'll never expect get a notification since we
207+ * shouldn't succeed.
208+ */
209+ return ;
198210 }
211+
199212 // Verify we received the broadcast
200213 waitTime = 0 ;
201214 while ((!receiver .isDone ()) && (waitTime < MAX_WAIT_TIME ) ) {
@@ -209,7 +222,6 @@ public boolean invokeInstallPackage(Uri packageURI, int flags, GenericReceiver r
209222 if (!receiver .isDone ()) {
210223 fail ("Timed out waiting for PACKAGE_ADDED notification" );
211224 }
212- return receiver .received ;
213225 }
214226 }
215227 } finally {
@@ -588,7 +600,7 @@ private void installFromRawResource(InstallParams ip,
588600 }
589601 } else {
590602 InstallReceiver receiver = new InstallReceiver (pkg .packageName );
591- assertTrue ( invokeInstallPackage (packageURI , flags , receiver ) );
603+ invokeInstallPackage (packageURI , flags , receiver , true );
592604 // Verify installed information
593605 assertInstall (pkg , flags , expInstallLocation );
594606 }
@@ -705,13 +717,9 @@ private void sampleReplaceFromRawResource(int flags) {
705717 receiver = new InstallReceiver (ip .pkg .packageName );
706718 }
707719 try {
708- try {
709- assertEquals (invokeInstallPackage (ip .packageURI , flags , receiver ), replace );
710- if (replace ) {
711- assertInstall (ip .pkg , flags , ip .pkg .installLocation );
712- }
713- } catch (Exception e ) {
714- failStr ("Failed with exception : " + e );
720+ invokeInstallPackage (ip .packageURI , flags , receiver , replace );
721+ if (replace ) {
722+ assertInstall (ip .pkg , flags , ip .pkg .installLocation );
715723 }
716724 } finally {
717725 cleanUpInstall (ip );
@@ -1244,7 +1252,7 @@ public void testReplaceFlagInternalSdcard() {
12441252 GenericReceiver receiver = new ReplaceReceiver (ip .pkg .packageName );
12451253 int replaceFlags = rFlags | PackageManager .INSTALL_REPLACE_EXISTING ;
12461254 try {
1247- assertEquals ( invokeInstallPackage (ip .packageURI , replaceFlags , receiver ) , true );
1255+ invokeInstallPackage (ip .packageURI , replaceFlags , receiver , true );
12481256 assertInstall (ip .pkg , rFlags , ip .pkg .installLocation );
12491257 } catch (Exception e ) {
12501258 failStr ("Failed with exception : " + e );
@@ -1271,7 +1279,7 @@ public void testReplaceFlagSdcardInternal() {
12711279 GenericReceiver receiver = new ReplaceReceiver (ip .pkg .packageName );
12721280 int replaceFlags = rFlags | PackageManager .INSTALL_REPLACE_EXISTING ;
12731281 try {
1274- assertEquals ( invokeInstallPackage (ip .packageURI , replaceFlags , receiver ) , true );
1282+ invokeInstallPackage (ip .packageURI , replaceFlags , receiver , true );
12751283 assertInstall (ip .pkg , iFlags , ip .pkg .installLocation );
12761284 } catch (Exception e ) {
12771285 failStr ("Failed with exception : " + e );
0 commit comments