Index: chrome/renderer/autofill/password_generation_test_utils.cc |
diff --git a/chrome/renderer/autofill/password_generation_test_utils.cc b/chrome/renderer/autofill/password_generation_test_utils.cc |
index 455dd6c5acbfe919674ab36fac7470786a0c925f..b66a5140829fd4d5b550b9713ca3b2f491cb5bbe 100644 |
--- a/chrome/renderer/autofill/password_generation_test_utils.cc |
+++ b/chrome/renderer/autofill/password_generation_test_utils.cc |
@@ -4,8 +4,6 @@ |
#include "chrome/renderer/autofill/password_generation_test_utils.h" |
-#include <vector> |
- |
#include "base/strings/stringprintf.h" |
#include "components/autofill/content/renderer/form_autofill_util.h" |
#include "components/autofill/content/renderer/test_password_generation_agent.h" |
@@ -17,6 +15,13 @@ |
namespace autofill { |
+namespace { |
+ |
+// Events that should be triggered when Chrome fills a field. |
+const char* const kEvents[] = {"focus", "keydown", "input", |
+ "change", "keyup", "blur"}; |
+} // namespace |
+ |
void SetNotBlacklistedMessage(TestPasswordGenerationAgent* generation_agent, |
const char* form_str) { |
autofill::PasswordForm form; |
@@ -47,4 +52,28 @@ void SetAccountCreationFormsDetectedMessage( |
generation_agent->FoundFormsEligibleForGeneration(forms); |
} |
+// Creates script that registers event listeners for |element_name| field. To |
+// check whether the listeners are called, check that the variables from |
+// |variables_to_check| are set to 1. |
+std::string CreateScriptToRegisterListeners( |
+ const char* const element_name, |
+ std::vector<std::string>* variables_to_check) { |
+ DCHECK(variables_to_check); |
+ |
+ std::string all_scripts; |
+ for (const char* event : kEvents) { |
+ std::string script = base::StringPrintf( |
+ "var %1$s_%2$s_event = 0;" |
+ "document.getElementById('%1$s').on%2$s = function() {" |
+ " %1$s_%2$s_event = 1;" |
+ "};\n", |
+ element_name, event); |
+ all_scripts += script; |
+ variables_to_check->push_back( |
+ base::StringPrintf("%s_%s_event", element_name, event)); |
+ } |
+ |
+ return all_scripts; |
+} |
+ |
} // namespace autofill |