#ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_FORM_TEST_UTILS_H_
#define COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_FORM_TEST_UTILS_H_
#include <optional>
#include <vector>
#include "components/autofill/core/browser/autofill_field.h"
#include "components/autofill/core/browser/field_types.h"
#include "components/autofill/core/common/autocomplete_parsing_util.h"
#include "components/autofill/core/common/form_data.h"
#include "components/autofill/core/common/form_field_data.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace autofill {
namespace test {
namespace {
constexpr char kFormUrl[] = …;
constexpr char kFormActionUrl[] = …;
}
namespace internal {
template <typename = void>
struct FieldDescription { … };
template <typename = void>
struct FormDescription { … };
template <typename = void>
struct TestFormFlags { … };
template <typename = void>
struct ExpectedFieldTypeValues { … };
template <typename = void>
struct FormStructureTestCase { … };
}
FieldDescription;
FormDescription;
FormStructureTestCase;
testing::Message DescribeFormData(const FormData& form_data);
FormFieldData CreateFieldByRole(FieldType role);
FormFieldData GetFormFieldData(const FieldDescription& fd);
FormData GetFormData(const FormDescription& test_form_attributes);
FormData GetFormData(const std::vector<FieldType>& field_types);
std::vector<FieldType> GetHeuristicTypes(
const FormDescription& form_description);
std::vector<FieldType> GetServerTypes(const FormDescription& form_description);
class FormStructureTest : public testing::Test { … };
}
}
#endif