| Index: components/autofill/core/browser/autofill_assistant_unittest.cc
|
| diff --git a/components/autofill/core/browser/autofill_assistant_unittest.cc b/components/autofill/core/browser/autofill_assistant_unittest.cc
|
| index 4e972773b1628d119ffc05f133105a0a4cf4a4d1..3364c6f92fd2eeefe8476afe40710f1872f917e0 100644
|
| --- a/components/autofill/core/browser/autofill_assistant_unittest.cc
|
| +++ b/components/autofill/core/browser/autofill_assistant_unittest.cc
|
| @@ -145,34 +145,79 @@ TEST_F(AutofillAssistantTest, CanShowCreditCardAssist_FeatureOn) {
|
| }
|
|
|
| // Tests that with the feature enabled and proper input,
|
| -// CanShowCreditCardAssist() behaves as expected for secure vs insecure
|
| -// contexts.
|
| +// CanShowCreditCardAssist() behaves as expected for secure contexts.
|
| +TEST_F(AutofillAssistantTest, CanShowCreditCardAssist_FeatureOn_Secure) {
|
| + EnableAutofillCreditCardAssist();
|
| +
|
| + // Can be shown if the context is secure.
|
| + FormData form = CreateValidCreditCardFormData();
|
| + std::unique_ptr<FormStructure> form_structure(new FormStructure(form));
|
| + form_structure->DetermineHeuristicTypes();
|
| +
|
| + std::vector<std::unique_ptr<FormStructure>> form_structures;
|
| + form_structures.push_back(std::move(form_structure));
|
| + EXPECT_TRUE(autofill_assistant_.CanShowCreditCardAssist(form_structures));
|
| +}
|
| +
|
| +// Tests that with the feature enabled and proper input,
|
| +// CanShowCreditCardAssist() behaves as expected for insecure contexts.
|
| TEST_F(AutofillAssistantTest, CanShowCreditCardAssist_FeatureOn_NotSecure) {
|
| EnableAutofillCreditCardAssist();
|
|
|
| - {
|
| - // Cannot be shown if the context is not secure.
|
| - FormData form = CreateValidCreditCardFormData();
|
| - form.action = GURL("http://myform.com");
|
| - form.action = GURL("http://myform.com/submit");
|
| - std::unique_ptr<FormStructure> form_structure(new FormStructure(form));
|
| - form_structure->DetermineHeuristicTypes();
|
| + // Cannot be shown if the context is not secure.
|
| + FormData form = CreateValidCreditCardFormData();
|
| + form.origin = GURL("http://myform.com");
|
| + form.action = GURL("http://myform.com/submit");
|
| + std::unique_ptr<FormStructure> form_structure(new FormStructure(form));
|
| + form_structure->DetermineHeuristicTypes();
|
|
|
| - std::vector<std::unique_ptr<FormStructure>> form_structures;
|
| - form_structures.push_back(std::move(form_structure));
|
| - EXPECT_FALSE(autofill_assistant_.CanShowCreditCardAssist(form_structures));
|
| - }
|
| + std::vector<std::unique_ptr<FormStructure>> form_structures;
|
| + form_structures.push_back(std::move(form_structure));
|
| + EXPECT_FALSE(autofill_assistant_.CanShowCreditCardAssist(form_structures));
|
| +}
|
|
|
| - {
|
| - // Can be shown if the context is secure.
|
| - FormData form = CreateValidCreditCardFormData();
|
| - std::unique_ptr<FormStructure> form_structure(new FormStructure(form));
|
| - form_structure->DetermineHeuristicTypes();
|
| +TEST_F(AutofillAssistantTest, CanShowCreditCardAssist_FeatureOn_Javascript) {
|
| + EnableAutofillCreditCardAssist();
|
|
|
| - std::vector<std::unique_ptr<FormStructure>> form_structures;
|
| - form_structures.push_back(std::move(form_structure));
|
| - EXPECT_TRUE(autofill_assistant_.CanShowCreditCardAssist(form_structures));
|
| - }
|
| + // Can be shown if the context is secure and the form action is a javascript
|
| + // function (which is a valid url).
|
| + FormData form = CreateValidCreditCardFormData();
|
| + form.action = GURL("javascript:alert('hello');");
|
| + std::unique_ptr<FormStructure> form_structure(new FormStructure(form));
|
| + form_structure->DetermineHeuristicTypes();
|
| +
|
| + std::vector<std::unique_ptr<FormStructure>> form_structures;
|
| + form_structures.push_back(std::move(form_structure));
|
| + EXPECT_TRUE(autofill_assistant_.CanShowCreditCardAssist(form_structures));
|
| +}
|
| +
|
| +TEST_F(AutofillAssistantTest, CanShowCreditCardAssist_FeatureOn_WeirdJs) {
|
| + EnableAutofillCreditCardAssist();
|
| +
|
| + // Can be shown if the context is secure and the form action is a javascript
|
| + // function that may or may not be valid.
|
| + FormData form = CreateValidCreditCardFormData();
|
| + form.action = GURL("javascript:myFunc");
|
| + std::unique_ptr<FormStructure> form_structure(new FormStructure(form));
|
| + form_structure->DetermineHeuristicTypes();
|
| +
|
| + std::vector<std::unique_ptr<FormStructure>> form_structures;
|
| + form_structures.push_back(std::move(form_structure));
|
| + EXPECT_TRUE(autofill_assistant_.CanShowCreditCardAssist(form_structures));
|
| +}
|
| +
|
| +TEST_F(AutofillAssistantTest, CanShowCreditCardAssist_FeatureOn_EmptyAction) {
|
| + EnableAutofillCreditCardAssist();
|
| +
|
| + // Can be shown if the context is secure and the form action is empty.
|
| + FormData form = CreateValidCreditCardFormData();
|
| + form.action = GURL();
|
| + std::unique_ptr<FormStructure> form_structure(new FormStructure(form));
|
| + form_structure->DetermineHeuristicTypes();
|
| +
|
| + std::vector<std::unique_ptr<FormStructure>> form_structures;
|
| + form_structures.push_back(std::move(form_structure));
|
| + EXPECT_TRUE(autofill_assistant_.CanShowCreditCardAssist(form_structures));
|
| }
|
|
|
| TEST_F(AutofillAssistantTest, ShowAssistForCreditCard_ValidCard_CancelCvc) {
|
|
|