| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "chrome/browser/autofill/form_structure.h" | 5 #include "chrome/browser/autofill/form_structure.h" |
| 6 | 6 |
| 7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
| 8 #include "base/string_util.h" | 8 #include "base/string_util.h" |
| 9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
| 10 #include "chrome/browser/autofill/autofill_metrics.h" | 10 #include "chrome/browser/autofill/autofill_metrics.h" |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 52 return os; | 52 return os; |
| 53 } | 53 } |
| 54 | 54 |
| 55 } // namespace content | 55 } // namespace content |
| 56 | 56 |
| 57 class FormStructureTest { | 57 class FormStructureTest { |
| 58 public: | 58 public: |
| 59 static std::string Hash64Bit(const std::string& str) { | 59 static std::string Hash64Bit(const std::string& str) { |
| 60 return FormStructure::Hash64Bit(str); | 60 return FormStructure::Hash64Bit(str); |
| 61 } | 61 } |
| 62 |
| 63 static void SetPageDetails(FormStructure* form, |
| 64 int page_number, |
| 65 int total_pages) { |
| 66 form->current_page_number_ = page_number; |
| 67 form->total_pages_ = total_pages; |
| 68 } |
| 62 }; | 69 }; |
| 63 | 70 |
| 64 TEST(FormStructureTest, FieldCount) { | 71 TEST(FormStructureTest, FieldCount) { |
| 65 FormData form; | 72 FormData form; |
| 66 form.method = ASCIIToUTF16("post"); | 73 form.method = ASCIIToUTF16("post"); |
| 67 | 74 |
| 68 FormFieldData field; | 75 FormFieldData field; |
| 69 field.label = ASCIIToUTF16("username"); | 76 field.label = ASCIIToUTF16("username"); |
| 70 field.name = ASCIIToUTF16("username"); | 77 field.name = ASCIIToUTF16("username"); |
| 71 field.form_control_type = "text"; | 78 field.form_control_type = "text"; |
| 72 form.fields.push_back(field); | 79 form.fields.push_back(field); |
| 73 | 80 |
| 74 field.label = ASCIIToUTF16("password"); | 81 field.label = ASCIIToUTF16("password"); |
| 75 field.name = ASCIIToUTF16("password"); | 82 field.name = ASCIIToUTF16("password"); |
| 76 field.form_control_type = "password"; | 83 field.form_control_type = "password"; |
| 77 form.fields.push_back(field); | 84 form.fields.push_back(field); |
| 78 | 85 |
| 79 field.label = string16(); | 86 field.label = string16(); |
| 80 field.name = ASCIIToUTF16("Submit"); | 87 field.name = ASCIIToUTF16("Submit"); |
| 81 field.form_control_type = "submit"; | 88 field.form_control_type = "submit"; |
| 82 form.fields.push_back(field); | 89 form.fields.push_back(field); |
| 83 | 90 |
| 84 FormStructure form_structure(form); | 91 FormStructure form_structure(form); |
| 85 | 92 |
| 86 // All fields are counted. | 93 // All fields are counted. |
| 87 EXPECT_EQ(3U, form_structure.field_count()); | 94 EXPECT_EQ(3U, form_structure.field_count()); |
| 88 } | 95 } |
| 89 | 96 |
| 97 TEST(FormStructureTest, AutofillFlowInfo) { |
| 98 FormData form; |
| 99 form.method = ASCIIToUTF16("post"); |
| 100 |
| 101 FormFieldData field; |
| 102 field.label = ASCIIToUTF16("username"); |
| 103 field.name = ASCIIToUTF16("username"); |
| 104 field.form_control_type = "text"; |
| 105 form.fields.push_back(field); |
| 106 |
| 107 FormStructure form_structure(form); |
| 108 EXPECT_FALSE(form_structure.IsStartOfAutofillableFlow()); |
| 109 EXPECT_FALSE(form_structure.IsInAutofillableFlow()); |
| 110 |
| 111 FormStructureTest::SetPageDetails(&form_structure, -1, 0); |
| 112 EXPECT_FALSE(form_structure.IsStartOfAutofillableFlow()); |
| 113 EXPECT_FALSE(form_structure.IsInAutofillableFlow()); |
| 114 |
| 115 FormStructureTest::SetPageDetails(&form_structure, 0, 0); |
| 116 EXPECT_FALSE(form_structure.IsStartOfAutofillableFlow()); |
| 117 EXPECT_FALSE(form_structure.IsInAutofillableFlow()); |
| 118 |
| 119 FormStructureTest::SetPageDetails(&form_structure, 0, 1); |
| 120 EXPECT_TRUE(form_structure.IsStartOfAutofillableFlow()); |
| 121 EXPECT_TRUE(form_structure.IsInAutofillableFlow()); |
| 122 |
| 123 FormStructureTest::SetPageDetails(&form_structure, 1, 2); |
| 124 EXPECT_FALSE(form_structure.IsStartOfAutofillableFlow()); |
| 125 EXPECT_TRUE(form_structure.IsInAutofillableFlow()); |
| 126 |
| 127 FormStructureTest::SetPageDetails(&form_structure, 2, 2); |
| 128 EXPECT_FALSE(form_structure.IsStartOfAutofillableFlow()); |
| 129 EXPECT_FALSE(form_structure.IsInAutofillableFlow()); |
| 130 } |
| 131 |
| 90 TEST(FormStructureTest, AutofillCount) { | 132 TEST(FormStructureTest, AutofillCount) { |
| 91 FormData form; | 133 FormData form; |
| 92 form.method = ASCIIToUTF16("post"); | 134 form.method = ASCIIToUTF16("post"); |
| 93 | 135 |
| 94 FormFieldData field; | 136 FormFieldData field; |
| 95 field.label = ASCIIToUTF16("username"); | 137 field.label = ASCIIToUTF16("username"); |
| 96 field.name = ASCIIToUTF16("username"); | 138 field.name = ASCIIToUTF16("username"); |
| 97 field.form_control_type = "text"; | 139 field.form_control_type = "text"; |
| 98 form.fields.push_back(field); | 140 form.fields.push_back(field); |
| 99 | 141 |
| (...skipping 1987 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2087 field.form_control_type = "submit"; | 2129 field.form_control_type = "submit"; |
| 2088 form.fields.push_back(field); | 2130 form.fields.push_back(field); |
| 2089 | 2131 |
| 2090 EXPECT_EQ(form, FormStructure(form).ToFormData()); | 2132 EXPECT_EQ(form, FormStructure(form).ToFormData()); |
| 2091 | 2133 |
| 2092 // Currently |FormStructure(form_data)ToFormData().user_submitted| is always | 2134 // Currently |FormStructure(form_data)ToFormData().user_submitted| is always |
| 2093 // false. This forces a future author that changes this to update this test. | 2135 // false. This forces a future author that changes this to update this test. |
| 2094 form.user_submitted = true; | 2136 form.user_submitted = true; |
| 2095 EXPECT_NE(form, FormStructure(form).ToFormData()); | 2137 EXPECT_NE(form, FormStructure(form).ToFormData()); |
| 2096 } | 2138 } |
| OLD | NEW |