#include "chrome/browser/ui/passwords/credential_leak_dialog_controller_impl.h"
#include <memory>
#include "base/test/metrics/histogram_tester.h"
#include "base/test/scoped_feature_list.h"
#include "base/test/task_environment.h"
#include "chrome/browser/ui/passwords/password_dialog_prompts.h"
#include "chrome/browser/ui/passwords/passwords_leak_dialog_delegate_mock.h"
#include "components/password_manager/core/browser/leak_detection_dialog_utils.h"
#include "components/password_manager/core/browser/password_manager_metrics_util.h"
#include "components/password_manager/core/common/password_manager_features.h"
#include "components/ukm/test_ukm_recorder.h"
#include "services/metrics/public/cpp/ukm_builders.h"
#include "services/metrics/public/cpp/ukm_source_id.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "url/gurl.h"
namespace {
constexpr ukm::SourceId kTestSourceId = …;
CreateLeakType;
IsReused;
IsSaved;
IsSyncing;
LeakDialogDismissalReason;
LeakDialogMetricsRecorder;
LeakDialogType;
StrictMock;
UkmEntry;
constexpr char kUrl[] = …;
constexpr char16_t kUsername[] = …;
class MockCredentialLeakPrompt : public CredentialLeakPrompt { … };
class CredentialLeakDialogControllerTest : public testing::Test { … };
void CheckUkmMetricsExpectations(
ukm::TestAutoSetUkmRecorder& recorder,
LeakDialogType expected_dialog_type,
LeakDialogDismissalReason expected_dismissal_reason) { … }
TEST_F(CredentialLeakDialogControllerTest, CredentialLeakDialogClose) { … }
TEST_F(CredentialLeakDialogControllerTest, CredentialLeakDialogOk) { … }
TEST_F(CredentialLeakDialogControllerTest, CredentialLeakDialogCancel) { … }
TEST_F(CredentialLeakDialogControllerTest, CredentialLeakDialogCheckPasswords) { … }
}