Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(712)

Unified Diff: content/renderer/password_form_conversion_utils_browsertest.cc

Issue 12665003: Convert invalid WebPasswordFormData to null (rather than empty) PasswordForm. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Added test Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/renderer/password_form_conversion_utils.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/password_form_conversion_utils_browsertest.cc
diff --git a/content/renderer/password_form_conversion_utils_browsertest.cc b/content/renderer/password_form_conversion_utils_browsertest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..7a8944671c00c0b27ba8270f7d4cb61604532ceb
--- /dev/null
+++ b/content/renderer/password_form_conversion_utils_browsertest.cc
@@ -0,0 +1,91 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/string16.h"
+#include "base/utf_string_conversions.h"
+#include "content/public/common/password_form.h"
+#include "content/public/renderer/password_form_conversion_utils.h"
+#include "content/public/test/render_view_test.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/WebKit/Source/Platform/chromium/public/WebVector.h"
+#include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h"
+#include "third_party/WebKit/Source/WebKit/chromium/public/WebFormElement.h"
+#include "third_party/WebKit/Source/WebKit/chromium/public/WebPasswordFormData.h"
+
+using WebKit::WebFormElement;
+using WebKit::WebFrame;
+using WebKit::WebPasswordFormData;
+using WebKit::WebVector;
+
+namespace content {
+namespace {
+
+class PasswordFormConversionUtilsTest : public RenderViewTest {
+ public:
+ PasswordFormConversionUtilsTest() : RenderViewTest() {}
+ virtual ~PasswordFormConversionUtilsTest() {}
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(PasswordFormConversionUtilsTest);
+};
+
+} // namespace
+
+TEST_F(PasswordFormConversionUtilsTest, ValidWebFormElementToPasswordForm) {
+ LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">"
+ " <INPUT type=\"text\" name=\"username\" "
+ " id=\"username\" value=\"johnsmith\"/>"
+ " <INPUT type=\"submit\" name=\"submit\" value=\"Submit\"/>"
+ " <INPUT type=\"password\" name=\"password\" id=\"password\" "
+ " value=\"secret\"/>"
+ "</FORM>");
+
+ WebFrame* frame = GetMainFrame();
+ ASSERT_NE(static_cast<WebFrame*>(NULL), frame);
+
+ WebVector<WebFormElement> forms;
+ frame->document().forms(forms);
+ ASSERT_EQ(1U, forms.size());
+ WebPasswordFormData web_password_form(forms[0]);
+ ASSERT_EQ(true, web_password_form.isValid());
+
+ scoped_ptr<PasswordForm> password_form = CreatePasswordForm(forms[0]);
+ ASSERT_NE(static_cast<PasswordForm*>(NULL), password_form.get());
+
+ ASSERT_EQ("data:", password_form->signon_realm);
blundell 2013/03/15 16:59:18 A few issues I couldn't resolve: 1. I don't have e
Ilya Sherman 2013/03/19 19:09:15 I also don't know; but if it seems to work, then t
+ ASSERT_EQ(GURL("http://cnn.com"), password_form->action);
+ ASSERT_EQ(UTF8ToUTF16("username"), password_form->username_element);
+ ASSERT_EQ(UTF8ToUTF16("johnsmith"), password_form->username_value);
+ ASSERT_EQ(UTF8ToUTF16("password"), password_form->password_element);
+ ASSERT_EQ(UTF8ToUTF16("secret"), password_form->password_value);
+ ASSERT_EQ(PasswordForm::SCHEME_HTML, password_form->scheme);
+ ASSERT_EQ(false, password_form->ssl_valid);
+ ASSERT_EQ(false, password_form->preferred);
+ ASSERT_EQ(false, password_form->blacklisted_by_user);
+ ASSERT_EQ(PasswordForm::TYPE_MANUAL, password_form->type);
+}
+
+TEST_F(PasswordFormConversionUtilsTest, InvalidWebFormElementToPasswordForm) {
+ LoadHTML("<FORM name=\"TestForm\" action=\"invalid\" method=\"post\">"
+ " <INPUT type=\"text\" name=\"username\" "
+ " id=\"username\" value=\"johnsmith\"/>"
+ " <INPUT type=\"submit\" name=\"submit\" value=\"Submit\"/>"
+ " <INPUT type=\"password\" name=\"password\" id=\"password\" "
+ " value=\"secret\"/>"
+ "</FORM>");
+
+ WebFrame* frame = GetMainFrame();
+ ASSERT_NE(static_cast<WebFrame*>(NULL), frame);
+
+ WebVector<WebFormElement> forms;
+ frame->document().forms(forms);
+ ASSERT_EQ(1U, forms.size());
+ WebPasswordFormData web_password_form(forms[0]);
+ ASSERT_EQ(false, web_password_form.isValid());
+
+ scoped_ptr<PasswordForm> password_form = CreatePasswordForm(forms[0]);
+ ASSERT_EQ(static_cast<PasswordForm*>(NULL), password_form.get());
+}
+
+} // namespace content
« no previous file with comments | « content/renderer/password_form_conversion_utils.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698