#include <vector>
#include "base/format_macros.h"
-#include "base/metrics/field_trial.h"
#include "base/strings/string16.h"
-#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/test/base/chrome_render_view_test.h"
#include "components/autofill/core/common/autofill_data_validation.h"
#include "components/autofill/core/common/form_data.h"
#include "components/autofill/core/common/web_element_descriptor.h"
-#include "components/variations/entropy_provider.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/WebKit/public/platform/WebString.h"
#include "third_party/WebKit/public/platform/WebVector.h"
class FormAutofillTest : public ChromeRenderViewTest {
public:
FormAutofillTest() : ChromeRenderViewTest() {}
- virtual ~FormAutofillTest() {}
+ ~FormAutofillTest() override {}
void ExpectLabels(const char* html,
const std::vector<base::string16>& labels,
ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame);
FormCache form_cache;
- std::vector<FormData> forms;
- form_cache.ExtractNewForms(*web_frame, &forms);
+ std::vector<FormData> forms = form_cache.ExtractNewForms(*web_frame);
ASSERT_EQ(1U, forms.size());
const FormData& form = forms[0];
ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame);
FormCache form_cache;
- std::vector<FormData> forms;
- form_cache.ExtractNewForms(*web_frame, &forms);
+ std::vector<FormData> forms = form_cache.ExtractNewForms(*web_frame);
ASSERT_EQ(1U, forms.size());
// Get the input element we want to find.
EXPECT_EQ(field_case.should_be_autofilled, element.isAutofilled());
}
+ static void FillFormForAllFieldsWrapper(const FormData& form,
+ const WebInputElement& element) {
+ FillFormForAllElements(form, element.form());
+ }
+
static void FillFormIncludingNonFocusableElementsWrapper(
const FormData& form,
const WebFormControlElement& element) {
FormFieldData result;
WebFormControlElementToFormField(element, autofill::EXTRACT_OPTIONS, &result);
- EXPECT_EQ(0U, result.option_values.size());
- EXPECT_EQ(0U, result.option_contents.size());
+ EXPECT_TRUE(result.option_values.empty());
+ EXPECT_TRUE(result.option_contents.empty());
}
// We should be able to extract a <textarea> field.
{ "malicious", "text", "x-max-data-length-exceeded" },
};
- for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_cases); ++i) {
+ for (size_t i = 0; i < arraysize(test_cases); ++i) {
WebElement web_element = frame->document().getElementById(
ASCIIToUTF16(test_cases[i].element_id));
WebFormControlElement element = web_element.to<WebFormControlElement>();
ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame);
FormCache form_cache;
- std::vector<FormData> forms;
- form_cache.ExtractNewForms(*web_frame, &forms);
+ std::vector<FormData> forms = form_cache.ExtractNewForms(*web_frame);
ASSERT_EQ(2U, forms.size());
// First form.
ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame);
FormCache form_cache;
- std::vector<FormData> forms;
- form_cache.ExtractNewForms(*web_frame, &forms);
+ std::vector<FormData> forms = form_cache.ExtractNewForms(*web_frame);
ASSERT_EQ(1U, forms.size());
- forms.clear();
// Second call should give nothing as there are no new forms.
- form_cache.ExtractNewForms(*web_frame, &forms);
- ASSERT_EQ(0U, forms.size());
+ forms = form_cache.ExtractNewForms(*web_frame);
+ ASSERT_TRUE(forms.empty());
// Append to the current form will re-extract.
ExecuteJavaScript(
"document.getElementById('testform').appendChild(newInput);");
msg_loop_.RunUntilIdle();
- form_cache.ExtractNewForms(*web_frame, &forms);
+ forms = form_cache.ExtractNewForms(*web_frame);
ASSERT_EQ(1U, forms.size());
const std::vector<FormFieldData>& fields = forms[0].fields;
msg_loop_.RunUntilIdle();
web_frame = GetMainFrame();
- form_cache.ExtractNewForms(*web_frame, &forms);
+ forms = form_cache.ExtractNewForms(*web_frame);
ASSERT_EQ(1U, forms.size());
const std::vector<FormFieldData>& fields2 = forms[0].fields;
ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame);
FormCache form_cache;
- std::vector<FormData> forms;
- form_cache.ExtractNewForms(*web_frame, &forms);
- EXPECT_EQ(0U, forms.size());
+ std::vector<FormData> forms = form_cache.ExtractNewForms(*web_frame);
+ ASSERT_TRUE(forms.empty());
}
// We should not report additional forms for empty forms.
ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame);
FormCache form_cache;
- std::vector<FormData> forms;
- form_cache.ExtractNewForms(*web_frame, &forms);
- EXPECT_EQ(0U, forms.size());
+ std::vector<FormData> forms = form_cache.ExtractNewForms(*web_frame);
+ ASSERT_TRUE(forms.empty());
}
// We should not report additional forms for empty forms.
ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame);
FormCache form_cache;
- std::vector<FormData> forms;
- form_cache.ExtractNewForms(*web_frame, &forms);
- EXPECT_EQ(0U, forms.size());
+ std::vector<FormData> forms = form_cache.ExtractNewForms(*web_frame);
+ ASSERT_TRUE(forms.empty());
}
// We should not extract a form if it has too few fillable fields.
ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame);
FormCache form_cache;
- std::vector<FormData> forms;
- form_cache.ExtractNewForms(*web_frame, &forms);
- EXPECT_EQ(0U, forms.size());
+ std::vector<FormData> forms = form_cache.ExtractNewForms(*web_frame);
+ ASSERT_TRUE(forms.empty());
}
TEST_F(FormAutofillTest, WebFormElementToFormDataAutocomplete) {
ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame);
FormCache form_cache;
- std::vector<FormData> forms;
- form_cache.ExtractNewForms(*web_frame, &forms);
+ std::vector<FormData> forms = form_cache.ExtractNewForms(*web_frame);
ASSERT_EQ(1U, forms.size());
// Get the input element we want to find.
ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame);
FormCache form_cache;
- std::vector<FormData> forms;
- form_cache.ExtractNewForms(*web_frame, &forms);
+ std::vector<FormData> forms = form_cache.ExtractNewForms(*web_frame);
ASSERT_EQ(1U, forms.size());
// Get the textarea element we want to find.
ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame);
FormCache form_cache;
- std::vector<FormData> forms;
- form_cache.ExtractNewForms(*web_frame, &forms);
+ std::vector<FormData> forms = form_cache.ExtractNewForms(*web_frame);
ASSERT_EQ(1U, forms.size());
// Get the input element we want to find.
ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame);
FormCache form_cache;
- std::vector<FormData> forms;
- form_cache.ExtractNewForms(*web_frame, &forms);
+ std::vector<FormData> forms = form_cache.ExtractNewForms(*web_frame);
ASSERT_EQ(1U, forms.size());
// Get the input element we want to find.
ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame);
FormCache form_cache;
- std::vector<FormData> forms;
- form_cache.ExtractNewForms(*web_frame, &forms);
+ std::vector<FormData> forms = form_cache.ExtractNewForms(*web_frame);
ASSERT_EQ(1U, forms.size());
// Get the input element we want to find.
ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame);
FormCache form_cache;
- std::vector<FormData> forms;
- form_cache.ExtractNewForms(*web_frame, &forms);
+ std::vector<FormData> forms = form_cache.ExtractNewForms(*web_frame);
ASSERT_EQ(2U, forms.size());
// Get the input element we want to find.
ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame);
FormCache form_cache;
- std::vector<FormData> forms;
- form_cache.ExtractNewForms(*web_frame, &forms);
+ std::vector<FormData> forms = form_cache.ExtractNewForms(*web_frame);
ASSERT_EQ(1U, forms.size());
// Get the input element we want to find.
ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame);
FormCache form_cache;
- std::vector<FormData> forms;
- form_cache.ExtractNewForms(*web_frame, &forms);
+ std::vector<FormData> forms = form_cache.ExtractNewForms(*web_frame);
ASSERT_EQ(1U, forms.size());
// Set the auto-filled attribute.
ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame);
FormCache form_cache;
- std::vector<FormData> forms;
- form_cache.ExtractNewForms(*web_frame, &forms);
+ std::vector<FormData> forms = form_cache.ExtractNewForms(*web_frame);
ASSERT_EQ(1U, forms.size());
// Set the auto-filled attribute.
ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame);
FormCache form_cache;
- std::vector<FormData> forms;
- form_cache.ExtractNewForms(*web_frame, &forms);
+ std::vector<FormData> forms = form_cache.ExtractNewForms(*web_frame);
ASSERT_EQ(1U, forms.size());
// Set the auto-filled attribute.
ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame);
FormCache form_cache;
- std::vector<FormData> forms;
- form_cache.ExtractNewForms(*web_frame, &forms);
+ std::vector<FormData> forms = form_cache.ExtractNewForms(*web_frame);
ASSERT_EQ(1U, forms.size());
// Set the auto-filled attribute.
ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame);
FormCache form_cache;
- std::vector<FormData> forms;
- form_cache.ExtractNewForms(*web_frame, &forms);
+ std::vector<FormData> forms = form_cache.ExtractNewForms(*web_frame);
ASSERT_EQ(1U, forms.size());
// Set the auto-filled attribute.
ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame);
FormCache form_cache;
- std::vector<FormData> forms;
- form_cache.ExtractNewForms(*web_frame, &forms);
+ std::vector<FormData> forms = form_cache.ExtractNewForms(*web_frame);
ASSERT_EQ(1U, forms.size());
// Set the autofilled attribute.
ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame);
FormCache form_cache;
- std::vector<FormData> forms;
- form_cache.ExtractNewForms(*web_frame, &forms);
+ std::vector<FormData> forms = form_cache.ExtractNewForms(*web_frame);
ASSERT_EQ(1U, forms.size());
WebInputElement firstname =
expected.max_length = 0;
EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields[2]);
}
+
} // namespace autofill