1c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch// found in the LICENSE file. 4c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 5c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#include "components/password_manager/core/browser/browser_save_password_progress_logger.h" 6c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 7c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#include "components/password_manager/core/browser/stub_password_manager_client.h" 8c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#include "testing/gmock/include/gmock/gmock.h" 9c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#include "testing/gtest/include/gtest/gtest.h" 10c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 11c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochnamespace password_manager { 12c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 13c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochnamespace { 14c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 15c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochconst char kTestText[] = "test"; 16c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 17c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch// The only purpose of TestLogger is to expose SendLog for the test. 18c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochclass TestLogger : public BrowserSavePasswordProgressLogger { 19c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch public: 20a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch explicit TestLogger(PasswordManagerClient* client) 21c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch : BrowserSavePasswordProgressLogger(client) {} 22c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 23c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch using BrowserSavePasswordProgressLogger::SendLog; 24c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch}; 25c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 26c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochclass MockPasswordManagerClient : public StubPasswordManagerClient { 27c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch public: 28c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch MOCK_METHOD1(LogSavePasswordProgress, void(const std::string& text)); 29c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch}; 30c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 31c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch} // namespace 32c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 33c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen MurdochTEST(BrowserSavePasswordProgressLoggerTest, SendLog) { 34c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch MockPasswordManagerClient client; 35c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch TestLogger logger(&client); 36c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch EXPECT_CALL(client, LogSavePasswordProgress(kTestText)).Times(1); 37c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch logger.SendLog(kTestText); 38c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch} 39c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 40c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch} // namespace password_manager 41