diff options
author | ahutter@chromium.org <ahutter@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-24 19:11:43 +0000 |
---|---|---|
committer | ahutter@chromium.org <ahutter@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-24 19:11:43 +0000 |
commit | 7c5935da3205b7079f30ee004f9deb4121b41e61 (patch) | |
tree | ccf5218049a91d7b265089ae7c9026d872627b51 /chrome/browser/autofill/autofill_xml_parser_unittest.cc | |
parent | 0a6e4cc655a9628af04d8fca319ec044e4f18e64 (diff) | |
download | chromium_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.cc | 58 |
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="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); + + // 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="foo"]\"" + " 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. |