chromium/chrome/browser/ui/webui/ash/diagnostics_dialog_unittest.cc

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

#include "chrome/browser/ui/webui/ash/diagnostics_dialog.h"

#include "base/memory/raw_ptr.h"
#include "chrome/browser/ui/webui/ash/system_web_dialog_delegate.h"
#include "components/session_manager/core/session_manager.h"
#include "testing/gtest/include/gtest/gtest.h"

namespace ash {

class DiagnosticsDialogTest : public testing::Test {
 public:
  DiagnosticsDialogTest() = default;

  DiagnosticsDialogTest(const DiagnosticsDialogTest&) = delete;
  DiagnosticsDialogTest& operator=(const DiagnosticsDialogTest&) = delete;

  ~DiagnosticsDialogTest() override = default;

  void InitializeDialog(DiagnosticsDialog::DiagnosticsPage page =
                            DiagnosticsDialog::DiagnosticsPage::kDefault) {
    diagnostics_dialog = new DiagnosticsDialog(page);
  }

 protected:
  raw_ptr<DiagnosticsDialog> diagnostics_dialog;

 private:
  session_manager::SessionManager session_manager_;
};

// Test that the Diagnostics dialog can be found once initialized.
TEST_F(DiagnosticsDialogTest, FindInstance) {
  InitializeDialog();
  EXPECT_EQ(diagnostics_dialog,
            SystemWebDialogDelegate::FindInstance(kDiagnosticsDialogId));
}

}  // namespace ash