summaryrefslogtreecommitdiffstats
path: root/chrome/browser/autofill/autofill_xml_parser_unittest.cc
diff options
context:
space:
mode:
authorahutter@chromium.org <ahutter@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-24 19:11:43 +0000
committerahutter@chromium.org <ahutter@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-24 19:11:43 +0000
commit7c5935da3205b7079f30ee004f9deb4121b41e61 (patch)
treeccf5218049a91d7b265089ae7c9026d872627b51 /chrome/browser/autofill/autofill_xml_parser_unittest.cc
parent0a6e4cc655a9628af04d8fca319ec044e4f18e64 (diff)
downloadchromium_src-7c5935da3205b7079f30ee004f9deb4121b41e61.zip
chromium_src-7c5935da3205b7079f30ee004f9deb4121b41e61.tar.gz
chromium_src-7c5935da3205b7079f30ee004f9deb4121b41e61.tar.bz2
Extracting advance element details from Autofill server XML response.
BUG= Review URL: https://chromiumcodereview.appspot.com/12051017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@178625 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/autofill/autofill_xml_parser_unittest.cc')
-rw-r--r--chrome/browser/autofill/autofill_xml_parser_unittest.cc58
1 files changed, 57 insertions, 1 deletions
diff --git a/chrome/browser/autofill/autofill_xml_parser_unittest.cc b/chrome/browser/autofill/autofill_xml_parser_unittest.cc
index 616fa9b..19cca97 100644
--- a/chrome/browser/autofill/autofill_xml_parser_unittest.cc
+++ b/chrome/browser/autofill/autofill_xml_parser_unittest.cc
@@ -168,7 +168,9 @@ TEST(AutofillQueryXmlParserTest, ParseAutofillFlow) {
std::string xml = "<autofillqueryresponse>"
"<field autofilltype=\"55\"/>"
- "<autofill_flow page_no=\"1\" total_pages=\"10\"/>"
+ "<autofill_flow page_no=\"1\" total_pages=\"10\">"
+ "<page_advance_button id=\"foo\"/>"
+ "</autofill_flow>"
"</autofillqueryresponse>";
scoped_ptr<AutofillQueryXmlParser> parse_handler(
@@ -180,6 +182,60 @@ TEST(AutofillQueryXmlParserTest, ParseAutofillFlow) {
EXPECT_EQ(1U, field_infos.size());
EXPECT_EQ(1, parse_handler->current_page_number());
EXPECT_EQ(10, parse_handler->total_pages());
+ EXPECT_EQ("foo", parse_handler->proceed_element_descriptor()->descriptor);
+ EXPECT_EQ(autofill::WebElementDescriptor::ID,
+ parse_handler->proceed_element_descriptor()->retrieval_method);
+
+ // Clear |field_infos| for the next test;
+ field_infos.clear();
+
+ // Test css_selector as page_advance_button.
+ xml = "<autofillqueryresponse>"
+ "<field autofilltype=\"55\"/>"
+ "<autofill_flow page_no=\"1\" total_pages=\"10\">"
+ "<page_advance_button css_selector=\"[name=&quot;foo&quot;]\"/>"
+ "</autofill_flow>"
+ "</autofillqueryresponse>";
+
+ parse_handler.reset(new AutofillQueryXmlParser(&field_infos,
+ &upload_required,
+ &experiment_id));
+ parser.reset(new buzz::XmlParser(parse_handler.get()));
+ parser->Parse(xml.c_str(), xml.length(), true);
+ EXPECT_TRUE(parse_handler->succeeded());
+ EXPECT_EQ(1U, field_infos.size());
+ EXPECT_EQ(1, parse_handler->current_page_number());
+ EXPECT_EQ(10, parse_handler->total_pages());
+ EXPECT_EQ("[name=\"foo\"]",
+ parse_handler->proceed_element_descriptor()->descriptor);
+ EXPECT_EQ(autofill::WebElementDescriptor::CSS_SELECTOR,
+ parse_handler->proceed_element_descriptor()->retrieval_method);
+
+ // Clear |field_infos| for the next test;
+ field_infos.clear();
+
+ // Test first attribute is always the one set.
+ xml = "<autofillqueryresponse>"
+ "<field autofilltype=\"55\"/>"
+ "<autofill_flow page_no=\"1\" total_pages=\"10\">"
+ "<page_advance_button css_selector=\"[name=&quot;foo&quot;]\""
+ " id=\"foo\"/>"
+ "</autofill_flow>"
+ "</autofillqueryresponse>";
+
+ parse_handler.reset(new AutofillQueryXmlParser(&field_infos,
+ &upload_required,
+ &experiment_id));
+ parser.reset(new buzz::XmlParser(parse_handler.get()));
+ parser->Parse(xml.c_str(), xml.length(), true);
+ EXPECT_TRUE(parse_handler->succeeded());
+ EXPECT_EQ(1U, field_infos.size());
+ EXPECT_EQ(1, parse_handler->current_page_number());
+ EXPECT_EQ(10, parse_handler->total_pages());
+ EXPECT_EQ("[name=\"foo\"]",
+ parse_handler->proceed_element_descriptor()->descriptor);
+ EXPECT_EQ(autofill::WebElementDescriptor::CSS_SELECTOR,
+ parse_handler->proceed_element_descriptor()->retrieval_method);
}
// Test badly formed XML queries.