From 890d3c766cbf171fb6199182478f5788f9caf6ea Mon Sep 17 00:00:00 2001 From: jeffreyhuang Date: Fri, 3 Nov 2017 14:08:48 -0700 Subject: [PATCH] Introduce KernelVersionDialogController - Create a controller to display data and for the kernel version field in FirmwareVersionDialogFragment Bug: 36458278 Test: make RunSettingsRoboTests -j40 Change-Id: Ie3f735e4559d8b01f67c65a1a46f1f1ad2dcdcd5 --- .../FirmwareVersionDialogFragment.java | 1 + .../KernelVersionDialogController.java | 41 +++++++++++++ .../KernelVersionDialogControllerTest.java | 57 +++++++++++++++++++ 3 files changed, 99 insertions(+) create mode 100644 src/com/android/settings/deviceinfo/firmwareversion/KernelVersionDialogController.java create mode 100644 tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/KernelVersionDialogControllerTest.java diff --git a/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionDialogFragment.java b/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionDialogFragment.java index 8343c529139..d58d999b3e2 100644 --- a/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionDialogFragment.java +++ b/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionDialogFragment.java @@ -87,5 +87,6 @@ public class FirmwareVersionDialogFragment extends InstrumentedDialogFragment { new FirmwareVersionDialogController(this).initialize(); new SecurityPatchLevelDialogController(this).initialize(); new BasebandVersionDialogController(this).initialize(); + new KernelVersionDialogController(this).initialize(); } } diff --git a/src/com/android/settings/deviceinfo/firmwareversion/KernelVersionDialogController.java b/src/com/android/settings/deviceinfo/firmwareversion/KernelVersionDialogController.java new file mode 100644 index 00000000000..c6c84f6f0e6 --- /dev/null +++ b/src/com/android/settings/deviceinfo/firmwareversion/KernelVersionDialogController.java @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2017 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.settings.deviceinfo.firmwareversion; + +import android.support.annotation.VisibleForTesting; + +import com.android.settings.R; +import com.android.settingslib.DeviceInfoUtils; + +public class KernelVersionDialogController { + + @VisibleForTesting + static int KERNEL_VERSION_VALUE_ID = R.id.kernel_version_value; + + private final FirmwareVersionDialogFragment mDialog; + + public KernelVersionDialogController(FirmwareVersionDialogFragment dialog) { + mDialog = dialog; + } + + /** + * Updates kernel version to the dialog. + */ + public void initialize() { + mDialog.setText(KERNEL_VERSION_VALUE_ID, DeviceInfoUtils.getFormattedKernelVersion()); + } +} diff --git a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/KernelVersionDialogControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/KernelVersionDialogControllerTest.java new file mode 100644 index 00000000000..c679af53d41 --- /dev/null +++ b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/KernelVersionDialogControllerTest.java @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2017 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.settings.deviceinfo.firmwareversion; + +import static com.android.settings.deviceinfo.firmwareversion.KernelVersionDialogController + .KERNEL_VERSION_VALUE_ID; + +import static org.mockito.Mockito.verify; + +import com.android.settings.TestConfig; +import com.android.settings.testutils.SettingsRobolectricTestRunner; +import com.android.settingslib.DeviceInfoUtils; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.robolectric.annotation.Config; + +@RunWith(SettingsRobolectricTestRunner.class) +@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O) +public class KernelVersionDialogControllerTest { + + @Mock + private FirmwareVersionDialogFragment mDialog; + + private KernelVersionDialogController mController; + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + mController = new KernelVersionDialogController(mDialog); + } + + @Test + public void initialize_shouldUpdateKernelVersionToDialog() { + mController.initialize(); + + verify(mDialog).setText(KERNEL_VERSION_VALUE_ID, + DeviceInfoUtils.getFormattedKernelVersion()); + } +}