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

Side by Side Diff: components/autofill/core/common/save_password_progress_logger_unittest.cc

Issue 235623002: Password manager internals page: Improve security (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Pass a string16 by a const ref 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
« no previous file with comments | « components/autofill/core/common/save_password_progress_logger.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "components/autofill/core/common/save_password_progress_logger.h" 5 #include "components/autofill/core/common/save_password_progress_logger.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
11 #include "base/memory/scoped_ptr.h" 11 #include "base/memory/scoped_ptr.h"
12 #include "base/strings/stringprintf.h" 12 #include "base/strings/stringprintf.h"
13 #include "base/strings/utf_string_conversions.h" 13 #include "base/strings/utf_string_conversions.h"
14 #include "components/autofill/core/common/password_form.h" 14 #include "components/autofill/core/common/password_form.h"
15 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
16 #include "url/gurl.h" 16 #include "url/gurl.h"
17 17
18 using base::UTF8ToUTF16; 18 using base::UTF8ToUTF16;
19 19
20 namespace autofill { 20 namespace autofill {
21 21
22 namespace { 22 namespace {
23 23
24 const char kTestString[] = "Test"; 24 const char kTestString[] = "Message"; // Corresponds to STRING_MESSAGE.
25 25
26 class TestLogger : public SavePasswordProgressLogger { 26 class TestLogger : public SavePasswordProgressLogger {
27 public: 27 public:
28 bool LogsContainSubstring(const std::string& substring) { 28 bool LogsContainSubstring(const std::string& substring) {
29 return accumulated_log_.find(substring) != std::string::npos; 29 return accumulated_log_.find(substring) != std::string::npos;
30 } 30 }
31 31
32 std::string accumulated_log() { return accumulated_log_; } 32 std::string accumulated_log() { return accumulated_log_; }
33 33
34 private: 34 private:
35 virtual void SendLog(const std::string& log) OVERRIDE { 35 virtual void SendLog(const std::string& log) OVERRIDE {
36 accumulated_log_.append(log); 36 accumulated_log_.append(log);
37 } 37 }
38 38
39 std::string accumulated_log_; 39 std::string accumulated_log_;
40 }; 40 };
41 41
42 }; // namespace 42 }; // namespace
43 43
44 TEST(SavePasswordProgressLoggerTest, LogPasswordForm) { 44 TEST(SavePasswordProgressLoggerTest, LogPasswordForm) {
45 TestLogger logger; 45 TestLogger logger;
46 PasswordForm form; 46 PasswordForm form;
47 form.action = GURL("http://example.org/verysecret?verysecret"); 47 form.action = GURL("http://example.org/verysecret?verysecret");
48 form.password_element = UTF8ToUTF16("pwdelement");
48 form.password_value = UTF8ToUTF16("verysecret"); 49 form.password_value = UTF8ToUTF16("verysecret");
49 form.username_value = UTF8ToUTF16("verysecret"); 50 form.username_value = UTF8ToUTF16("verysecret");
50 logger.LogPasswordForm(kTestString, form); 51 logger.LogPasswordForm(SavePasswordProgressLogger::STRING_MESSAGE, form);
51 SCOPED_TRACE(testing::Message() << "Log string = [" 52 SCOPED_TRACE(testing::Message() << "Log string = ["
52 << logger.accumulated_log() << "]"); 53 << logger.accumulated_log() << "]");
53 EXPECT_TRUE(logger.LogsContainSubstring(kTestString)); 54 EXPECT_TRUE(logger.LogsContainSubstring(kTestString));
55 EXPECT_TRUE(logger.LogsContainSubstring("pwdelement"));
54 EXPECT_TRUE(logger.LogsContainSubstring("http://example.org")); 56 EXPECT_TRUE(logger.LogsContainSubstring("http://example.org"));
55 EXPECT_FALSE(logger.LogsContainSubstring("verysecret")); 57 EXPECT_FALSE(logger.LogsContainSubstring("verysecret"));
56 } 58 }
57 59
60 TEST(SavePasswordProgressLoggerTest, LogPasswordFormElementID) {
61 // Test filtering element IDs.
62 TestLogger logger;
63 PasswordForm form;
64 const std::string kHTMLInside("Username <script> element");
65 const std::string kHTMLInsideExpected("username script element");
66 const std::string kIPAddressInside("y128.0.0.1Y");
67 const std::string kIPAddressInsideExpected("y128 0 0 1y");
68 const std::string kSpecialCharsInside("X@#a$%B&*c()D;:e+!x");
69 const std::string kSpecialCharsInsideExpected("x a b c d e x");
70 form.username_element = UTF8ToUTF16(kHTMLInside);
71 form.password_element = UTF8ToUTF16(kIPAddressInside);
72 form.old_password_element = UTF8ToUTF16(kSpecialCharsInside);
73 logger.LogPasswordForm(SavePasswordProgressLogger::STRING_MESSAGE, form);
74 SCOPED_TRACE(testing::Message() << "Log string = ["
75 << logger.accumulated_log() << "]");
76 EXPECT_TRUE(logger.LogsContainSubstring(kTestString));
77 EXPECT_FALSE(logger.LogsContainSubstring(kHTMLInside));
78 EXPECT_TRUE(logger.LogsContainSubstring(kHTMLInsideExpected));
79 EXPECT_FALSE(logger.LogsContainSubstring(kIPAddressInside));
80 EXPECT_TRUE(logger.LogsContainSubstring(kIPAddressInsideExpected));
81 EXPECT_FALSE(logger.LogsContainSubstring(kSpecialCharsInside));
82 EXPECT_TRUE(logger.LogsContainSubstring(kSpecialCharsInsideExpected));
83 }
84
58 TEST(SavePasswordProgressLoggerTest, LogHTMLForm) { 85 TEST(SavePasswordProgressLoggerTest, LogHTMLForm) {
59 TestLogger logger; 86 TestLogger logger;
60 logger.LogHTMLForm(kTestString, 87 logger.LogHTMLForm(SavePasswordProgressLogger::STRING_MESSAGE,
61 "form_name", 88 "form_name",
62 "form_method", 89 "post",
63 GURL("http://example.org/verysecret?verysecret")); 90 GURL("http://example.org/verysecret?verysecret"));
64 SCOPED_TRACE(testing::Message() << "Log string = [" 91 SCOPED_TRACE(testing::Message() << "Log string = ["
65 << logger.accumulated_log() << "]"); 92 << logger.accumulated_log() << "]");
66 EXPECT_TRUE(logger.LogsContainSubstring(kTestString)); 93 EXPECT_TRUE(logger.LogsContainSubstring(kTestString));
67 EXPECT_TRUE(logger.LogsContainSubstring("form_name")); 94 EXPECT_TRUE(logger.LogsContainSubstring("form_name"));
68 EXPECT_TRUE(logger.LogsContainSubstring("form_method")); 95 EXPECT_TRUE(logger.LogsContainSubstring("POST"));
69 EXPECT_TRUE(logger.LogsContainSubstring("http://example.org")); 96 EXPECT_TRUE(logger.LogsContainSubstring("http://example.org"));
70 EXPECT_FALSE(logger.LogsContainSubstring("verysecret")); 97 EXPECT_FALSE(logger.LogsContainSubstring("verysecret"));
71 } 98 }
72 99
73 TEST(SavePasswordProgressLoggerTest, LogURL) { 100 TEST(SavePasswordProgressLoggerTest, LogURL) {
74 TestLogger logger; 101 TestLogger logger;
75 logger.LogURL(kTestString, GURL("http://example.org/verysecret?verysecret")); 102 logger.LogURL(SavePasswordProgressLogger::STRING_MESSAGE,
103 GURL("http://example.org/verysecret?verysecret"));
76 SCOPED_TRACE(testing::Message() << "Log string = [" 104 SCOPED_TRACE(testing::Message() << "Log string = ["
77 << logger.accumulated_log() << "]"); 105 << logger.accumulated_log() << "]");
78 EXPECT_TRUE(logger.LogsContainSubstring(kTestString)); 106 EXPECT_TRUE(logger.LogsContainSubstring(kTestString));
79 EXPECT_TRUE(logger.LogsContainSubstring("http://example.org")); 107 EXPECT_TRUE(logger.LogsContainSubstring("http://example.org"));
80 EXPECT_FALSE(logger.LogsContainSubstring("verysecret")); 108 EXPECT_FALSE(logger.LogsContainSubstring("verysecret"));
81 } 109 }
82 110
83 TEST(SavePasswordProgressLoggerTest, LogBooleanTrue) { 111 TEST(SavePasswordProgressLoggerTest, LogBooleanTrue) {
84 TestLogger logger; 112 TestLogger logger;
85 logger.LogBoolean(kTestString, true); 113 logger.LogBoolean(SavePasswordProgressLogger::STRING_MESSAGE, true);
86 SCOPED_TRACE(testing::Message() << "Log string = [" 114 SCOPED_TRACE(testing::Message() << "Log string = ["
87 << logger.accumulated_log() << "]"); 115 << logger.accumulated_log() << "]");
88 EXPECT_TRUE(logger.LogsContainSubstring(kTestString)); 116 EXPECT_TRUE(logger.LogsContainSubstring(kTestString));
89 EXPECT_TRUE(logger.LogsContainSubstring("true")); 117 EXPECT_TRUE(logger.LogsContainSubstring("true"));
90 } 118 }
91 119
92 TEST(SavePasswordProgressLoggerTest, LogBooleanFalse) { 120 TEST(SavePasswordProgressLoggerTest, LogBooleanFalse) {
93 TestLogger logger; 121 TestLogger logger;
94 logger.LogBoolean(kTestString, false); 122 logger.LogBoolean(SavePasswordProgressLogger::STRING_MESSAGE, false);
95 SCOPED_TRACE(testing::Message() << "Log string = [" 123 SCOPED_TRACE(testing::Message() << "Log string = ["
96 << logger.accumulated_log() << "]"); 124 << logger.accumulated_log() << "]");
97 EXPECT_TRUE(logger.LogsContainSubstring(kTestString)); 125 EXPECT_TRUE(logger.LogsContainSubstring(kTestString));
98 EXPECT_TRUE(logger.LogsContainSubstring("false")); 126 EXPECT_TRUE(logger.LogsContainSubstring("false"));
99 } 127 }
100 128
101 TEST(SavePasswordProgressLoggerTest, LogSignedNumber) { 129 TEST(SavePasswordProgressLoggerTest, LogSignedNumber) {
102 TestLogger logger; 130 TestLogger logger;
103 int signed_number = -12345; 131 int signed_number = -12345;
104 logger.LogNumber(kTestString, signed_number); 132 logger.LogNumber(SavePasswordProgressLogger::STRING_MESSAGE, signed_number);
105 SCOPED_TRACE(testing::Message() << "Log string = [" 133 SCOPED_TRACE(testing::Message() << "Log string = ["
106 << logger.accumulated_log() << "]"); 134 << logger.accumulated_log() << "]");
107 EXPECT_TRUE(logger.LogsContainSubstring(kTestString)); 135 EXPECT_TRUE(logger.LogsContainSubstring(kTestString));
108 EXPECT_TRUE(logger.LogsContainSubstring("-12345")); 136 EXPECT_TRUE(logger.LogsContainSubstring("-12345"));
109 } 137 }
110 138
111 TEST(SavePasswordProgressLoggerTest, LogUnsignedNumber) { 139 TEST(SavePasswordProgressLoggerTest, LogUnsignedNumber) {
112 TestLogger logger; 140 TestLogger logger;
113 size_t unsigned_number = 654321; 141 size_t unsigned_number = 654321;
114 logger.LogNumber(kTestString, unsigned_number); 142 logger.LogNumber(SavePasswordProgressLogger::STRING_MESSAGE, unsigned_number);
115 SCOPED_TRACE(testing::Message() << "Log string = [" 143 SCOPED_TRACE(testing::Message() << "Log string = ["
116 << logger.accumulated_log() << "]"); 144 << logger.accumulated_log() << "]");
117 EXPECT_TRUE(logger.LogsContainSubstring(kTestString)); 145 EXPECT_TRUE(logger.LogsContainSubstring(kTestString));
118 EXPECT_TRUE(logger.LogsContainSubstring("654321")); 146 EXPECT_TRUE(logger.LogsContainSubstring("654321"));
119 } 147 }
120 148
121 TEST(SavePasswordProgressLoggerTest, LogFinalDecisionSave) {
122 TestLogger logger;
123 logger.LogFinalDecision(SavePasswordProgressLogger::DECISION_SAVE);
124 SCOPED_TRACE(testing::Message() << "Log string = ["
125 << logger.accumulated_log() << "]");
126 EXPECT_TRUE(logger.LogsContainSubstring("SAVE"));
127 }
128
129 TEST(SavePasswordProgressLoggerTest, LogFinalDecisionAsk) {
130 TestLogger logger;
131 logger.LogFinalDecision(SavePasswordProgressLogger::DECISION_ASK);
132 SCOPED_TRACE(testing::Message() << "Log string = ["
133 << logger.accumulated_log() << "]");
134 EXPECT_TRUE(logger.LogsContainSubstring("ASK"));
135 }
136
137 TEST(SavePasswordProgressLoggerTest, LogFinalDecisionDrop) {
138 TestLogger logger;
139 logger.LogFinalDecision(SavePasswordProgressLogger::DECISION_DROP);
140 SCOPED_TRACE(testing::Message() << "Log string = ["
141 << logger.accumulated_log() << "]");
142 EXPECT_TRUE(logger.LogsContainSubstring("DROP"));
143 }
144
145 TEST(SavePasswordProgressLoggerTest, LogMessage) { 149 TEST(SavePasswordProgressLoggerTest, LogMessage) {
146 TestLogger logger; 150 TestLogger logger;
147 logger.LogMessage(kTestString); 151 logger.LogMessage(SavePasswordProgressLogger::STRING_MESSAGE);
148 SCOPED_TRACE(testing::Message() << "Log string = [" 152 SCOPED_TRACE(testing::Message() << "Log string = ["
149 << logger.accumulated_log() << "]"); 153 << logger.accumulated_log() << "]");
150 EXPECT_TRUE(logger.LogsContainSubstring(kTestString)); 154 EXPECT_TRUE(logger.LogsContainSubstring(kTestString));
151 } 155 }
152 156
153 } // namespace autofill 157 } // namespace autofill
OLDNEW
« no previous file with comments | « components/autofill/core/common/save_password_progress_logger.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698