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

Unified Diff: components/autofill/content/renderer/renderer_save_password_progress_logger_unittest.cc

Issue 2216463002: [Autofill] Migrate ContentPasswordManagerDriver<-->Password{Autofill,Generation}Agent IPCs to mojo. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address nit from Vaclav Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
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 73c2bd82ce4a0645c8841bb729a07277cb6e9f4c..874f534e8ade4c8ebf7fbc7681115aba6a6f0670 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,14 +2,12 @@
// 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 {
@@ -18,40 +16,91 @@ namespace {
const char kTestText[] = "test";
-class TestLogger : public RendererSavePasswordProgressLogger {
+class FakeContentPasswordManagerDriver : public mojom::PasswordManagerDriver {
public:
- TestLogger() : RendererSavePasswordProgressLogger(&sink_, 0) {}
+ FakeContentPasswordManagerDriver()
+ : called_record_save_(false), binding_(this) {}
+ ~FakeContentPasswordManagerDriver() override {}
- using RendererSavePasswordProgressLogger::SendLog;
+ mojom::PasswordManagerDriverPtr CreateInterfacePtrAndBind() {
+ return binding_.CreateInterfacePtrAndBind();
+ }
- // 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_t kMsgID = AutofillHostMsg_RecordSavePasswordProgress::ID;
- const IPC::Message* message = sink_.GetFirstMessageMatching(kMsgID);
- if (!message)
+ if (!called_record_save_)
return false;
- std::tuple<std::string> param;
- AutofillHostMsg_RecordSavePasswordProgress::Read(message, &param);
- *log = std::get<0>(param);
- sink_.ClearMessages();
+
+ EXPECT_TRUE(log_);
+ *log = *log_;
return true;
}
private:
- IPC::TestSink sink_;
+ // 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;
};
} // namespace
TEST(RendererSavePasswordProgressLoggerTest, SendLog) {
- TestLogger logger;
+ base::MessageLoop loop;
+ FakeContentPasswordManagerDriver fake_driver;
+ mojom::PasswordManagerDriverPtr driver_ptr =
+ fake_driver.CreateInterfacePtrAndBind();
+ TestLogger logger(driver_ptr.get());
logger.SendLog(kTestText);
+
+ base::RunLoop().RunUntilIdle();
std::string sent_log;
- EXPECT_TRUE(logger.GetLogMessage(&sent_log));
+ EXPECT_TRUE(fake_driver.GetLogMessage(&sent_log));
EXPECT_EQ(kTestText, sent_log);
}

Powered by Google App Engine
This is Rietveld 408576698