Index: components/autofill/content/renderer/renderer_save_password_progress_logger_unittest.cc |
diff --git a/components/autofill/content/renderer/renderer_save_password_progress_logger_unittest.cc b/components/autofill/content/renderer/renderer_save_password_progress_logger_unittest.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f46df5b48bdb6253021b6d6fb0661da16ad9c3e8 |
--- /dev/null |
+++ b/components/autofill/content/renderer/renderer_save_password_progress_logger_unittest.cc |
@@ -0,0 +1,54 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "components/autofill/content/renderer/renderer_save_password_progress_logger.h" |
+ |
+#include "components/autofill/content/common/autofill_messages.h" |
+#include "ipc/ipc_test_sink.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
+ |
+namespace autofill { |
+ |
+namespace { |
+ |
+const char kTestText[] = "test"; |
+ |
+class TestLogger : public RendererSavePasswordProgressLogger { |
+ public: |
+ TestLogger() : RendererSavePasswordProgressLogger(&sink_, 0) {} |
+ |
+ using RendererSavePasswordProgressLogger::SendLog; |
+ |
+ // Searches for an |AutofillHostMsg_RecordSavePasswordProgress| message in the |
+ // queue of sent IPC messages. If none is present, returns false. Otherwise, |
+ // extracts the first |AutofillHostMsg_RecordSavePasswordProgress| message, |
+ // fills the output parameter with the value of the message's parameter, and |
+ // clears the queue of sent messages. |
+ bool GetLogMessage(std::string* log) { |
+ const uint32 kMsgID = AutofillHostMsg_RecordSavePasswordProgress::ID; |
+ const IPC::Message* message = sink_.GetFirstMessageMatching(kMsgID); |
+ if (!message) |
+ return false; |
+ Tuple1<std::string> param; |
+ AutofillHostMsg_RecordSavePasswordProgress::Read(message, ¶m); |
+ *log = param.a; |
+ sink_.ClearMessages(); |
+ return true; |
+ } |
+ |
+ private: |
+ IPC::TestSink sink_; |
+}; |
+ |
+} // namespace |
+ |
+TEST(RendererSavePasswordProgressLoggerTest, SendLog) { |
+ TestLogger logger; |
+ logger.SendLog(kTestText); |
+ std::string sent_log; |
+ EXPECT_TRUE(logger.GetLogMessage(&sent_log)); |
+ EXPECT_EQ(kTestText, sent_log); |
+} |
+ |
+} // namespace autofill |