Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(321)

Side by Side Diff: chrome/browser/password_manager/chrome_password_manager_client_unittest.cc

Issue 228263004: Password manager internals page: Introduce logger in renderer (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Comments addressed Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/password_manager/chrome_password_manager_client.h" 5 #include "chrome/browser/password_manager/chrome_password_manager_client.h"
6 6
7 #include "chrome/test/base/chrome_render_view_host_test_harness.h" 7 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
8 #include "components/password_manager/core/browser/password_manager_logger.h" 8 #include "components/password_manager/core/browser/password_manager_logger.h"
9 #include "content/public/browser/browser_context.h" 9 #include "content/public/browser/browser_context.h"
10 #include "content/public/browser/web_contents.h" 10 #include "content/public/browser/web_contents.h"
11 #include "testing/gmock/include/gmock/gmock.h" 11 #include "testing/gmock/include/gmock/gmock.h"
12 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
13 13
14 using content::BrowserContext; 14 using content::BrowserContext;
15 using content::WebContents; 15 using content::WebContents;
16 16
17 namespace { 17 namespace {
18 18
19 const char kTestText[] = "abcd1234";
20
19 class MockPasswordManagerLogger 21 class MockPasswordManagerLogger
20 : public password_manager::PasswordManagerLogger { 22 : public password_manager::PasswordManagerLogger {
21 public: 23 public:
22 MockPasswordManagerLogger() {} 24 MockPasswordManagerLogger() {}
23 25
24 MOCK_METHOD1(LogSavePasswordProgress, void(const std::string&)); 26 MOCK_METHOD1(LogSavePasswordProgress, void(const std::string&));
25 }; 27 };
26 28
27 } // namespace 29 } // namespace
28 30
29 class ChromePasswordManagerClientTest : public ChromeRenderViewHostTestHarness { 31 class ChromePasswordManagerClientTest : public ChromeRenderViewHostTestHarness {
30 public: 32 public:
31 virtual void SetUp() OVERRIDE; 33 virtual void SetUp() OVERRIDE;
32 34
33 protected: 35 protected:
34 ChromePasswordManagerClient* GetClient(); 36 ChromePasswordManagerClient* GetClient();
37
38 testing::StrictMock<MockPasswordManagerLogger> logger;
35 }; 39 };
36 40
37 void ChromePasswordManagerClientTest::SetUp() { 41 void ChromePasswordManagerClientTest::SetUp() {
38 ChromeRenderViewHostTestHarness::SetUp(); 42 ChromeRenderViewHostTestHarness::SetUp();
39 ChromePasswordManagerClient::CreateForWebContents(web_contents()); 43 ChromePasswordManagerClient::CreateForWebContents(web_contents());
40 } 44 }
41 45
42 ChromePasswordManagerClient* ChromePasswordManagerClientTest::GetClient() { 46 ChromePasswordManagerClient* ChromePasswordManagerClientTest::GetClient() {
43 return ChromePasswordManagerClient::FromWebContents(web_contents()); 47 return ChromePasswordManagerClient::FromWebContents(web_contents());
44 } 48 }
45 49
46 TEST_F(ChromePasswordManagerClientTest, LogSavePasswordProgress) { 50 TEST_F(ChromePasswordManagerClientTest, LogSavePasswordProgressNoLogger) {
47 ChromePasswordManagerClient* client = GetClient(); 51 ChromePasswordManagerClient* client = GetClient();
48 testing::StrictMock<MockPasswordManagerLogger> logger;
49 const std::string text("abcd1234");
50 52
53 EXPECT_CALL(logger, LogSavePasswordProgress(kTestText)).Times(0);
51 // Before attaching the logger, no text should be passed. 54 // Before attaching the logger, no text should be passed.
52 client->LogSavePasswordProgress(text); 55 client->LogSavePasswordProgress(kTestText);
56 EXPECT_FALSE(client->IsLoggingActive());
57 }
58
59 TEST_F(ChromePasswordManagerClientTest, LogSavePasswordProgressAttachLogger) {
60 ChromePasswordManagerClient* client = GetClient();
53 61
54 // After attaching the logger, text should be passed. 62 // After attaching the logger, text should be passed.
55 client->SetLogger(&logger); 63 client->SetLogger(&logger);
56 EXPECT_CALL(logger, LogSavePasswordProgress(text)).Times(1); 64 EXPECT_CALL(logger, LogSavePasswordProgress(kTestText)).Times(1);
57 client->LogSavePasswordProgress(text); 65 client->LogSavePasswordProgress(kTestText);
66 EXPECT_TRUE(client->IsLoggingActive());
67 }
58 68
59 // After detaching the logger, no text should be passed again. 69 TEST_F(ChromePasswordManagerClientTest, LogSavePasswordProgressDetachLogger) {
70 ChromePasswordManagerClient* client = GetClient();
71
72 client->SetLogger(&logger);
73 // After detaching the logger, no text should be passed.
60 client->SetLogger(NULL); 74 client->SetLogger(NULL);
61 client->LogSavePasswordProgress(text); 75 EXPECT_CALL(logger, LogSavePasswordProgress(kTestText)).Times(0);
76 client->LogSavePasswordProgress(kTestText);
77 EXPECT_FALSE(client->IsLoggingActive());
62 } 78 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698