@Test public void registerSessionCallback_sessionSucceeds() throws Exception { PackageInstaller.SessionCallback mockCallback = mock(PackageInstaller.SessionCallback.class); packageInstaller.registerSessionCallback(mockCallback, new Handler()); int sessionId = packageInstaller.createSession(createSessionParams("packageName")); verify(mockCallback).onCreated(sessionId); PackageInstaller.Session session = packageInstaller.openSession(sessionId); OutputStream outputStream = session.openWrite("filename", 0, 0); outputStream.close(); session.commit(new IntentSender(ReflectionHelpers.createNullProxy(IIntentSender.class))); shadowOf(packageInstaller).setSessionProgress(sessionId, 50.0f); verify(mockCallback).onProgressChanged(sessionId, 50.0f); verify(mockCallback).onFinished(sessionId, true); }
@Override public void run() { callbackInfo.callback.onFinished(sessionId, success); } });
@Override public void run() { callbackInfo.callback.onFinished(sessionId, false); } });
@Override public void run() { callbackInfo.callback.onFinished(sessionId, false); } });
@Override public void run() { callbackInfo.callback.onProgressChanged(sessionId, progress); } });
@Override public void run() { callbackInfo.callback.onCreated(sessionInfo.sessionId); } });
@Override public void run() { callbackInfo.callback.onFinished(sessionId, success); } });
@Override public void run() { callbackInfo.callback.onCreated(sessionInfo.sessionId); } });
@Override public void run() { callbackInfo.callback.onProgressChanged(sessionId, progress); } });
@Override public void run() { callbackInfo.callback.onCreated(sessionInfo.sessionId); } });
@Override public void run() { callbackInfo.callback.onProgressChanged(sessionId, progress); } });
@Override public void run() { callbackInfo.callback.onFinished(sessionId, success); } });
@Test public void packageInstallerCreateAndAbandonSession() throws Exception { PackageInstaller.SessionCallback mockCallback = mock(PackageInstaller.SessionCallback.class); packageInstaller.registerSessionCallback(mockCallback, new Handler()); int sessionId = packageInstaller.createSession(createSessionParams("packageName")); PackageInstaller.SessionInfo sessionInfo = packageInstaller.getSessionInfo(sessionId); assertThat(sessionInfo.isActive()).isTrue(); assertThat(sessionInfo.appPackageName).isEqualTo("packageName"); packageInstaller.abandonSession(sessionId); assertThat(packageInstaller.getSessionInfo(sessionId)).isNull(); assertThat(packageInstaller.getAllSessions()).isEmpty(); verify(mockCallback).onCreated(sessionId); verify(mockCallback).onFinished(sessionId, false); }
@Override public void run() { callbackInfo.callback.onProgressChanged(sessionId, progress); } });
@Override public void run() { callbackInfo.callback.onFinished(sessionId, success); } });
@Override public void run() { callbackInfo.callback.onCreated(sessionInfo.sessionId); } });
@Test public void registerSessionCallback_sessionFails() throws Exception { PackageInstaller.SessionCallback mockCallback = mock(PackageInstaller.SessionCallback.class); packageInstaller.registerSessionCallback(mockCallback, new Handler()); int sessionId = packageInstaller.createSession(createSessionParams("packageName")); verify(mockCallback).onCreated(sessionId); PackageInstaller.Session session = packageInstaller.openSession(sessionId); OutputStream outputStream = session.openWrite("filename", 0, 0); outputStream.close(); session.abandon(); assertThat(packageInstaller.getAllSessions()).isEmpty(); verify(mockCallback).onFinished(sessionId, false); }
@Override public void run() { callbackInfo.callback.onFinished(sessionId, false); } });