diff options
| author | 2017-06-20 15:20:21 +0000 | |
|---|---|---|
| committer | 2017-06-20 15:20:21 +0000 | |
| commit | 981412fe86738ae075b69653a3055dc1b68bd3ed (patch) | |
| tree | 10bf95d7d8d486f237c7799c57645a2ead5d865b | |
| parent | a411d3281f0f20bce1c021cad42d5a9e1ca10a33 (diff) | |
| parent | 0cdbff8d205d6353b83e285563c6185be4b4ebb1 (diff) | |
Merge "Track TimeZoneDistroInstaller method changes" am: ba6b96d978 am: 7ab9d93fa4 am: 7f5e9bd68c
am: 0cdbff8d20
Change-Id: I01645db1838416f8b7af222266a145abbcb728df
3 files changed, 24 insertions, 12 deletions
diff --git a/services/core/java/com/android/server/timezone/RulesManagerService.java b/services/core/java/com/android/server/timezone/RulesManagerService.java index bbb77826a4e0..58bdeb9d11ec 100644 --- a/services/core/java/com/android/server/timezone/RulesManagerService.java +++ b/services/core/java/com/android/server/timezone/RulesManagerService.java @@ -20,6 +20,7 @@ import com.android.internal.annotations.VisibleForTesting; import com.android.server.SystemService; import com.android.timezone.distro.DistroException; import com.android.timezone.distro.DistroVersion; +import com.android.timezone.distro.TimeZoneDistro; import com.android.timezone.distro.StagedDistroOperation; import android.app.timezone.Callback; @@ -224,7 +225,8 @@ public final class RulesManagerService extends IRulesManager.Stub { try { byte[] distroBytes = RulesManagerService.this.mFileDescriptorHelper.readFully(mTimeZoneDistro); - int installerResult = mInstaller.stageInstallWithErrorCode(distroBytes); + TimeZoneDistro distro = new TimeZoneDistro(distroBytes); + int installerResult = mInstaller.stageInstallWithErrorCode(distro); int resultCode = mapInstallerResultToApiCode(installerResult); sendFinishedStatus(mCallback, resultCode); diff --git a/services/core/java/com/android/server/updates/TzDataInstallReceiver.java b/services/core/java/com/android/server/updates/TzDataInstallReceiver.java index 3c73c88b4f5c..2be69ac68219 100644 --- a/services/core/java/com/android/server/updates/TzDataInstallReceiver.java +++ b/services/core/java/com/android/server/updates/TzDataInstallReceiver.java @@ -16,6 +16,8 @@ package com.android.server.updates; +import com.android.timezone.distro.TimeZoneDistro; + import android.util.Slog; import java.io.File; @@ -46,7 +48,8 @@ public class TzDataInstallReceiver extends ConfigUpdateInstallReceiver { @Override protected void install(byte[] content, int version) throws IOException { - boolean valid = installer.install(content); + TimeZoneDistro distro = new TimeZoneDistro(content); + boolean valid = installer.install(distro); Slog.i(TAG, "Timezone data install valid for this device: " + valid); // Even if !valid, we call super.install(). Only in the event of an exception should we // not. If we didn't do this we could attempt to install repeatedly. diff --git a/services/tests/servicestests/src/com/android/server/timezone/RulesManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/timezone/RulesManagerServiceTest.java index b6983fa58f8f..86116a9237bf 100644 --- a/services/tests/servicestests/src/com/android/server/timezone/RulesManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/timezone/RulesManagerServiceTest.java @@ -17,6 +17,7 @@ package com.android.server.timezone; import com.android.timezone.distro.DistroVersion; +import com.android.timezone.distro.TimeZoneDistro; import com.android.timezone.distro.StagedDistroOperation; import org.junit.Before; @@ -403,14 +404,16 @@ public class RulesManagerServiceTest { verifyNoInstallerCallsMade(); verifyNoPackageTrackerCallsMade(); + TimeZoneDistro expectedDistro = new TimeZoneDistro(expectedContent); + // Set up the installer. - configureStageInstallExpectation(expectedContent, TimeZoneDistroInstaller.INSTALL_SUCCESS); + configureStageInstallExpectation(expectedDistro, TimeZoneDistroInstaller.INSTALL_SUCCESS); // Simulate the async execution. mFakeExecutor.simulateAsyncExecutionOfLastCommand(); // Verify the expected calls were made to other components. - verifyStageInstallCalled(expectedContent); + verifyStageInstallCalled(expectedDistro); verifyPackageTrackerCalled(token, true /* success */); // Check the callback was called. @@ -436,14 +439,16 @@ public class RulesManagerServiceTest { verifyNoInstallerCallsMade(); callback.assertNoResultReceived(); + TimeZoneDistro expectedDistro = new TimeZoneDistro(expectedContent); + // Set up the installer. - configureStageInstallExpectation(expectedContent, TimeZoneDistroInstaller.INSTALL_SUCCESS); + configureStageInstallExpectation(expectedDistro, TimeZoneDistroInstaller.INSTALL_SUCCESS); // Simulate the async execution. mFakeExecutor.simulateAsyncExecutionOfLastCommand(); // Verify the expected calls were made to other components. - verifyStageInstallCalled(expectedContent); + verifyStageInstallCalled(expectedDistro); verifyPackageTrackerCalled(null /* expectedToken */, true /* success */); // Check the callback was received. @@ -471,15 +476,17 @@ public class RulesManagerServiceTest { verifyNoInstallerCallsMade(); callback.assertNoResultReceived(); + TimeZoneDistro expectedDistro = new TimeZoneDistro(expectedContent); + // Set up the installer. configureStageInstallExpectation( - expectedContent, TimeZoneDistroInstaller.INSTALL_FAIL_VALIDATION_ERROR); + expectedDistro, TimeZoneDistroInstaller.INSTALL_FAIL_VALIDATION_ERROR); // Simulate the async execution. mFakeExecutor.simulateAsyncExecutionOfLastCommand(); // Verify the expected calls were made to other components. - verifyStageInstallCalled(expectedContent); + verifyStageInstallCalled(expectedDistro); // Validation failure is treated like a successful check: repeating it won't improve things. boolean expectedSuccess = true; @@ -780,9 +787,9 @@ public class RulesManagerServiceTest { .thenThrow(new IOException("Simulated failure")); } - private void configureStageInstallExpectation(byte[] expectedContent, int resultCode) + private void configureStageInstallExpectation(TimeZoneDistro expected, int resultCode) throws Exception { - when(mMockTimeZoneDistroInstaller.stageInstallWithErrorCode(eq(expectedContent))) + when(mMockTimeZoneDistroInstaller.stageInstallWithErrorCode(eq(expected))) .thenReturn(resultCode); } @@ -790,8 +797,8 @@ public class RulesManagerServiceTest { doReturn(success).when(mMockTimeZoneDistroInstaller).stageUninstall(); } - private void verifyStageInstallCalled(byte[] expectedContent) throws Exception { - verify(mMockTimeZoneDistroInstaller).stageInstallWithErrorCode(eq(expectedContent)); + private void verifyStageInstallCalled(TimeZoneDistro expected) throws Exception { + verify(mMockTimeZoneDistroInstaller).stageInstallWithErrorCode(eq(expected)); verifyNoMoreInteractions(mMockTimeZoneDistroInstaller); reset(mMockTimeZoneDistroInstaller); } |