| 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);
|
| }
|
|
|
|
|