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

Side by Side Diff: components/autofill/content/renderer/renderer_save_password_progress_logger_unittest.cc

Issue 2274783002: Revert of [Autofill] Migrate ContentPasswordManagerDriver<-->Password{Autofill,Generation}Agent IPCs to mojo. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/optional.h"
6 #include "base/run_loop.h"
7 #include "components/autofill/content/public/interfaces/autofill_driver.mojom.h"
8 #include "components/autofill/content/renderer/renderer_save_password_progress_l ogger.h" 5 #include "components/autofill/content/renderer/renderer_save_password_progress_l ogger.h"
9 #include "mojo/public/cpp/bindings/binding.h"
10 6
7 #include <stdint.h>
8
9 #include <tuple>
10
11 #include "components/autofill/content/common/autofill_messages.h"
12 #include "ipc/ipc_test_sink.h"
11 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
12 14
13 namespace autofill { 15 namespace autofill {
14 16
15 namespace { 17 namespace {
16 18
17 const char kTestText[] = "test"; 19 const char kTestText[] = "test";
18 20
19 class FakeContentPasswordManagerDriver : public mojom::PasswordManagerDriver { 21 class TestLogger : public RendererSavePasswordProgressLogger {
20 public: 22 public:
21 FakeContentPasswordManagerDriver() 23 TestLogger() : RendererSavePasswordProgressLogger(&sink_, 0) {}
22 : called_record_save_(false), binding_(this) {}
23 ~FakeContentPasswordManagerDriver() override {}
24 24
25 mojom::PasswordManagerDriverPtr CreateInterfacePtrAndBind() { 25 using RendererSavePasswordProgressLogger::SendLog;
26 return binding_.CreateInterfacePtrAndBind();
27 }
28 26
27 // Searches for an |AutofillHostMsg_RecordSavePasswordProgress| message in the
28 // queue of sent IPC messages. If none is present, returns false. Otherwise,
29 // extracts the first |AutofillHostMsg_RecordSavePasswordProgress| message,
30 // fills the output parameter with the value of the message's parameter, and
31 // clears the queue of sent messages.
29 bool GetLogMessage(std::string* log) { 32 bool GetLogMessage(std::string* log) {
30 if (!called_record_save_) 33 const uint32_t kMsgID = AutofillHostMsg_RecordSavePasswordProgress::ID;
34 const IPC::Message* message = sink_.GetFirstMessageMatching(kMsgID);
35 if (!message)
31 return false; 36 return false;
32 37 std::tuple<std::string> param;
33 EXPECT_TRUE(log_); 38 AutofillHostMsg_RecordSavePasswordProgress::Read(message, &param);
34 *log = *log_; 39 *log = std::get<0>(param);
40 sink_.ClearMessages();
35 return true; 41 return true;
36 } 42 }
37 43
38 private: 44 private:
39 // autofill::mojom::PasswordManagerDriver: 45 IPC::TestSink sink_;
40 void PasswordFormsParsed(
41 const std::vector<autofill::PasswordForm>& forms) override {}
42
43 void PasswordFormsRendered(
44 const std::vector<autofill::PasswordForm>& visible_forms,
45 bool did_stop_loading) override {}
46
47 void PasswordFormSubmitted(
48 const autofill::PasswordForm& password_form) override {}
49
50 void InPageNavigation(const autofill::PasswordForm& password_form) override {}
51
52 void PresaveGeneratedPassword(
53 const autofill::PasswordForm& password_form) override {}
54
55 void PasswordNoLongerGenerated(
56 const autofill::PasswordForm& password_form) override {}
57
58 void ShowPasswordSuggestions(int key,
59 base::i18n::TextDirection text_direction,
60 const base::string16& typed_username,
61 int options,
62 const gfx::RectF& bounds) override {}
63
64 void PasswordAutofillAgentConstructed() override {}
65
66 void RecordSavePasswordProgress(const std::string& log) override {
67 called_record_save_ = true;
68 log_ = log;
69 }
70
71 void SaveGenerationFieldDetectedByClassifier(
72 const autofill::PasswordForm& password_form,
73 const base::string16& generation_field) override {}
74
75 // Records whether RecordSavePasswordProgress() gets called.
76 bool called_record_save_;
77 // Records data received via RecordSavePasswordProgress() call.
78 base::Optional<std::string> log_;
79
80 mojo::Binding<mojom::PasswordManagerDriver> binding_;
81 };
82
83 class TestLogger : public RendererSavePasswordProgressLogger {
84 public:
85 TestLogger(mojom::PasswordManagerDriver* driver)
86 : RendererSavePasswordProgressLogger(driver) {}
87
88 using RendererSavePasswordProgressLogger::SendLog;
89 }; 46 };
90 47
91 } // namespace 48 } // namespace
92 49
93 TEST(RendererSavePasswordProgressLoggerTest, SendLog) { 50 TEST(RendererSavePasswordProgressLoggerTest, SendLog) {
94 base::MessageLoop loop; 51 TestLogger logger;
95 FakeContentPasswordManagerDriver fake_driver;
96 mojom::PasswordManagerDriverPtr driver_ptr =
97 fake_driver.CreateInterfacePtrAndBind();
98 TestLogger logger(driver_ptr.get());
99 logger.SendLog(kTestText); 52 logger.SendLog(kTestText);
100
101 base::RunLoop().RunUntilIdle();
102 std::string sent_log; 53 std::string sent_log;
103 EXPECT_TRUE(fake_driver.GetLogMessage(&sent_log)); 54 EXPECT_TRUE(logger.GetLogMessage(&sent_log));
104 EXPECT_EQ(kTestText, sent_log); 55 EXPECT_EQ(kTestText, sent_log);
105 } 56 }
106 57
107 } // namespace autofill 58 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698