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 |
index 874f534e8ade4c8ebf7fbc7681115aba6a6f0670..73c2bd82ce4a0645c8841bb729a07277cb6e9f4c 100644 |
--- a/components/autofill/content/renderer/renderer_save_password_progress_logger_unittest.cc |
+++ b/components/autofill/content/renderer/renderer_save_password_progress_logger_unittest.cc |
@@ -2,12 +2,14 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "base/optional.h" |
-#include "base/run_loop.h" |
-#include "components/autofill/content/public/interfaces/autofill_driver.mojom.h" |
#include "components/autofill/content/renderer/renderer_save_password_progress_logger.h" |
-#include "mojo/public/cpp/bindings/binding.h" |
+#include <stdint.h> |
+ |
+#include <tuple> |
+ |
+#include "components/autofill/content/common/autofill_messages.h" |
+#include "ipc/ipc_test_sink.h" |
#include "testing/gtest/include/gtest/gtest.h" |
namespace autofill { |
@@ -16,91 +18,40 @@ |
const char kTestText[] = "test"; |
-class FakeContentPasswordManagerDriver : public mojom::PasswordManagerDriver { |
+class TestLogger : public RendererSavePasswordProgressLogger { |
public: |
- FakeContentPasswordManagerDriver() |
- : called_record_save_(false), binding_(this) {} |
- ~FakeContentPasswordManagerDriver() override {} |
+ TestLogger() : RendererSavePasswordProgressLogger(&sink_, 0) {} |
- mojom::PasswordManagerDriverPtr CreateInterfacePtrAndBind() { |
- return binding_.CreateInterfacePtrAndBind(); |
- } |
+ 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) { |
- if (!called_record_save_) |
+ const uint32_t kMsgID = AutofillHostMsg_RecordSavePasswordProgress::ID; |
+ const IPC::Message* message = sink_.GetFirstMessageMatching(kMsgID); |
+ if (!message) |
return false; |
- |
- EXPECT_TRUE(log_); |
- *log = *log_; |
+ std::tuple<std::string> param; |
+ AutofillHostMsg_RecordSavePasswordProgress::Read(message, ¶m); |
+ *log = std::get<0>(param); |
+ sink_.ClearMessages(); |
return true; |
} |
private: |
- // autofill::mojom::PasswordManagerDriver: |
- void PasswordFormsParsed( |
- const std::vector<autofill::PasswordForm>& forms) override {} |
- |
- void PasswordFormsRendered( |
- const std::vector<autofill::PasswordForm>& visible_forms, |
- bool did_stop_loading) override {} |
- |
- void PasswordFormSubmitted( |
- const autofill::PasswordForm& password_form) override {} |
- |
- void InPageNavigation(const autofill::PasswordForm& password_form) override {} |
- |
- void PresaveGeneratedPassword( |
- const autofill::PasswordForm& password_form) override {} |
- |
- void PasswordNoLongerGenerated( |
- const autofill::PasswordForm& password_form) override {} |
- |
- void ShowPasswordSuggestions(int key, |
- base::i18n::TextDirection text_direction, |
- const base::string16& typed_username, |
- int options, |
- const gfx::RectF& bounds) override {} |
- |
- void PasswordAutofillAgentConstructed() override {} |
- |
- void RecordSavePasswordProgress(const std::string& log) override { |
- called_record_save_ = true; |
- log_ = log; |
- } |
- |
- void SaveGenerationFieldDetectedByClassifier( |
- const autofill::PasswordForm& password_form, |
- const base::string16& generation_field) override {} |
- |
- // Records whether RecordSavePasswordProgress() gets called. |
- bool called_record_save_; |
- // Records data received via RecordSavePasswordProgress() call. |
- base::Optional<std::string> log_; |
- |
- mojo::Binding<mojom::PasswordManagerDriver> binding_; |
-}; |
- |
-class TestLogger : public RendererSavePasswordProgressLogger { |
- public: |
- TestLogger(mojom::PasswordManagerDriver* driver) |
- : RendererSavePasswordProgressLogger(driver) {} |
- |
- using RendererSavePasswordProgressLogger::SendLog; |
+ IPC::TestSink sink_; |
}; |
} // namespace |
TEST(RendererSavePasswordProgressLoggerTest, SendLog) { |
- base::MessageLoop loop; |
- FakeContentPasswordManagerDriver fake_driver; |
- mojom::PasswordManagerDriverPtr driver_ptr = |
- fake_driver.CreateInterfacePtrAndBind(); |
- TestLogger logger(driver_ptr.get()); |
+ TestLogger logger; |
logger.SendLog(kTestText); |
- |
- base::RunLoop().RunUntilIdle(); |
std::string sent_log; |
- EXPECT_TRUE(fake_driver.GetLogMessage(&sent_log)); |
+ EXPECT_TRUE(logger.GetLogMessage(&sent_log)); |
EXPECT_EQ(kTestText, sent_log); |
} |