save_password_progress_logger_unittest.cc revision c5cede9ae108bb15f6b7a8aea21c7e1fefa2834c
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 3// found in the LICENSE file. 4 5#include "components/autofill/core/common/save_password_progress_logger.h" 6 7#include <limits> 8 9#include "base/bind.h" 10#include "base/logging.h" 11#include "base/memory/scoped_ptr.h" 12#include "base/strings/stringprintf.h" 13#include "base/strings/utf_string_conversions.h" 14#include "components/autofill/core/common/password_form.h" 15#include "testing/gtest/include/gtest/gtest.h" 16#include "url/gurl.h" 17 18using base::UTF8ToUTF16; 19 20namespace autofill { 21 22namespace { 23 24const char kTestString[] = "Test"; 25 26class TestLogger : public SavePasswordProgressLogger { 27 public: 28 bool LogsContainSubstring(const std::string& substring) { 29 return accumulated_log_.find(substring) != std::string::npos; 30 } 31 32 std::string accumulated_log() { return accumulated_log_; } 33 34 private: 35 virtual void SendLog(const std::string& log) OVERRIDE { 36 accumulated_log_.append(log); 37 } 38 39 std::string accumulated_log_; 40}; 41 42}; // namespace 43 44TEST(SavePasswordProgressLoggerTest, LogPasswordForm) { 45 TestLogger logger; 46 PasswordForm form; 47 form.action = GURL("http://example.org/verysecret?verysecret"); 48 form.password_value = UTF8ToUTF16("verysecret"); 49 form.username_value = UTF8ToUTF16("verysecret"); 50 logger.LogPasswordForm(kTestString, form); 51 SCOPED_TRACE(testing::Message() << "Log string = [" 52 << logger.accumulated_log() << "]"); 53 EXPECT_TRUE(logger.LogsContainSubstring(kTestString)); 54 EXPECT_TRUE(logger.LogsContainSubstring("http://example.org")); 55 EXPECT_FALSE(logger.LogsContainSubstring("verysecret")); 56} 57 58TEST(SavePasswordProgressLoggerTest, LogHTMLForm) { 59 TestLogger logger; 60 logger.LogHTMLForm(kTestString, 61 "form_name", 62 "form_method", 63 GURL("http://example.org/verysecret?verysecret")); 64 SCOPED_TRACE(testing::Message() << "Log string = [" 65 << logger.accumulated_log() << "]"); 66 EXPECT_TRUE(logger.LogsContainSubstring(kTestString)); 67 EXPECT_TRUE(logger.LogsContainSubstring("form_name")); 68 EXPECT_TRUE(logger.LogsContainSubstring("form_method")); 69 EXPECT_TRUE(logger.LogsContainSubstring("http://example.org")); 70 EXPECT_FALSE(logger.LogsContainSubstring("verysecret")); 71} 72 73TEST(SavePasswordProgressLoggerTest, LogURL) { 74 TestLogger logger; 75 logger.LogURL(kTestString, GURL("http://example.org/verysecret?verysecret")); 76 SCOPED_TRACE(testing::Message() << "Log string = [" 77 << logger.accumulated_log() << "]"); 78 EXPECT_TRUE(logger.LogsContainSubstring(kTestString)); 79 EXPECT_TRUE(logger.LogsContainSubstring("http://example.org")); 80 EXPECT_FALSE(logger.LogsContainSubstring("verysecret")); 81} 82 83TEST(SavePasswordProgressLoggerTest, LogBooleanTrue) { 84 TestLogger logger; 85 logger.LogBoolean(kTestString, true); 86 SCOPED_TRACE(testing::Message() << "Log string = [" 87 << logger.accumulated_log() << "]"); 88 EXPECT_TRUE(logger.LogsContainSubstring(kTestString)); 89 EXPECT_TRUE(logger.LogsContainSubstring("true")); 90} 91 92TEST(SavePasswordProgressLoggerTest, LogBooleanFalse) { 93 TestLogger logger; 94 logger.LogBoolean(kTestString, false); 95 SCOPED_TRACE(testing::Message() << "Log string = [" 96 << logger.accumulated_log() << "]"); 97 EXPECT_TRUE(logger.LogsContainSubstring(kTestString)); 98 EXPECT_TRUE(logger.LogsContainSubstring("false")); 99} 100 101TEST(SavePasswordProgressLoggerTest, LogSignedNumber) { 102 TestLogger logger; 103 int signed_number = -12345; 104 logger.LogNumber(kTestString, signed_number); 105 SCOPED_TRACE(testing::Message() << "Log string = [" 106 << logger.accumulated_log() << "]"); 107 EXPECT_TRUE(logger.LogsContainSubstring(kTestString)); 108 EXPECT_TRUE(logger.LogsContainSubstring("-12345")); 109} 110 111TEST(SavePasswordProgressLoggerTest, LogUnsignedNumber) { 112 TestLogger logger; 113 size_t unsigned_number = 654321; 114 logger.LogNumber(kTestString, unsigned_number); 115 SCOPED_TRACE(testing::Message() << "Log string = [" 116 << logger.accumulated_log() << "]"); 117 EXPECT_TRUE(logger.LogsContainSubstring(kTestString)); 118 EXPECT_TRUE(logger.LogsContainSubstring("654321")); 119} 120 121TEST(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 129TEST(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 137TEST(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 145TEST(SavePasswordProgressLoggerTest, LogMessage) { 146 TestLogger logger; 147 logger.LogMessage(kTestString); 148 SCOPED_TRACE(testing::Message() << "Log string = [" 149 << logger.accumulated_log() << "]"); 150 EXPECT_TRUE(logger.LogsContainSubstring(kTestString)); 151} 152 153} // namespace autofill 154