Loading src/com/android/settings/deviceinfo/PrivateVolumeForget.java +10 −0 Original line number Diff line number Diff line Loading @@ -53,8 +53,18 @@ public class PrivateVolumeForget extends SettingsPreferenceFragment { Bundle savedInstanceState) { final StorageManager storage = getActivity().getSystemService(StorageManager.class); final String fsUuid = getArguments().getString(VolumeRecord.EXTRA_FS_UUID); // Passing null will crash the StorageManager, so let's early exit. if (fsUuid == null) { getActivity().finish(); return null; } mRecord = storage.findRecordByUuid(fsUuid); if (mRecord == null) { getActivity().finish(); return null; } final View view = inflater.inflate(R.layout.storage_internal_forget, container, false); final TextView body = (TextView) view.findViewById(R.id.body); final Button confirm = (Button) view.findViewById(R.id.confirm); Loading tests/unit/src/com/android/settings/deviceinfo/PrivateVolumeForgetTest.java 0 → 100644 +52 −0 Original line number Diff line number Diff line /* * 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; import android.content.Intent; import android.content.Context; import android.os.storage.VolumeRecord; import android.support.test.InstrumentationRegistry; import android.support.test.filters.SmallTest; import android.support.test.rule.ActivityTestRule; import android.support.test.runner.AndroidJUnit4; import com.android.settings.Settings; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; @RunWith(AndroidJUnit4.class) @SmallTest public class PrivateVolumeForgetTest { @Rule public ActivityTestRule<Settings.PrivateVolumeForgetActivity> mActivityRule = new ActivityTestRule<>(Settings.PrivateVolumeForgetActivity.class, true, true); @Test public void test_invalidSetupDoesNotCrashSettings() { Context targetContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); Intent intent = new Intent(targetContext, Settings.PrivateVolumeForgetActivity.class); intent.putExtra(VolumeRecord.EXTRA_FS_UUID, "totally-fake-uuid-doesnt-even-fit-format"); mActivityRule.launchActivity(intent); // Should exit gracefully without crashing. } } No newline at end of file Loading
src/com/android/settings/deviceinfo/PrivateVolumeForget.java +10 −0 Original line number Diff line number Diff line Loading @@ -53,8 +53,18 @@ public class PrivateVolumeForget extends SettingsPreferenceFragment { Bundle savedInstanceState) { final StorageManager storage = getActivity().getSystemService(StorageManager.class); final String fsUuid = getArguments().getString(VolumeRecord.EXTRA_FS_UUID); // Passing null will crash the StorageManager, so let's early exit. if (fsUuid == null) { getActivity().finish(); return null; } mRecord = storage.findRecordByUuid(fsUuid); if (mRecord == null) { getActivity().finish(); return null; } final View view = inflater.inflate(R.layout.storage_internal_forget, container, false); final TextView body = (TextView) view.findViewById(R.id.body); final Button confirm = (Button) view.findViewById(R.id.confirm); Loading
tests/unit/src/com/android/settings/deviceinfo/PrivateVolumeForgetTest.java 0 → 100644 +52 −0 Original line number Diff line number Diff line /* * 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; import android.content.Intent; import android.content.Context; import android.os.storage.VolumeRecord; import android.support.test.InstrumentationRegistry; import android.support.test.filters.SmallTest; import android.support.test.rule.ActivityTestRule; import android.support.test.runner.AndroidJUnit4; import com.android.settings.Settings; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; @RunWith(AndroidJUnit4.class) @SmallTest public class PrivateVolumeForgetTest { @Rule public ActivityTestRule<Settings.PrivateVolumeForgetActivity> mActivityRule = new ActivityTestRule<>(Settings.PrivateVolumeForgetActivity.class, true, true); @Test public void test_invalidSetupDoesNotCrashSettings() { Context targetContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); Intent intent = new Intent(targetContext, Settings.PrivateVolumeForgetActivity.class); intent.putExtra(VolumeRecord.EXTRA_FS_UUID, "totally-fake-uuid-doesnt-even-fit-format"); mActivityRule.launchActivity(intent); // Should exit gracefully without crashing. } } No newline at end of file