chromium/chrome/android/junit/src/org/chromium/chrome/browser/password_manager/settings/ExportWarningDialogFragmentTest.java

// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

package org.chromium.chrome.browser.password_manager.settings;

import androidx.fragment.app.FragmentActivity;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.annotation.Config;

import org.chromium.base.test.BaseRobolectricTestRunner;
import org.chromium.components.browser_ui.test.BrowserUiDummyFragmentActivity;

/**
 * Tests for the confirmation dialog used by the "Save passwords" settings page during exporting
 * passwords.
 */
@RunWith(BaseRobolectricTestRunner.class)
@Config(manifest = Config.NONE)
public class ExportWarningDialogFragmentTest {
    /**
     * Ensure that dismissing the dialog is safe even if it was not initialized properly. This
     * models dismissing after the dialog is re-created by Android upon bringing a previously kiled
     * Chrome into foreground.
     */
    @Test
    public void testDismissWithoutInit() {
        FragmentActivity testActivity =
                Robolectric.buildActivity(BrowserUiDummyFragmentActivity.class).setup().get();

        ExportWarningDialogFragment exportWarningDialogFragment = new ExportWarningDialogFragment();
        // No initialization, just show and dismiss.
        exportWarningDialogFragment.show(testActivity.getSupportFragmentManager(), null);
        exportWarningDialogFragment.dismiss();
        // There should be no crash.
    }
}