Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d6d61851 authored by Daniel Nishi's avatar Daniel Nishi Committed by Android (Google) Code Review
Browse files

Merge "Gracefully handle null volumes after forgetting." into oc-dev

parents 81f98a8f 6b37d634
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -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);
+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