summaryrefslogtreecommitdiffstats
path: root/toolkit/components/passwordmgr/test/unit/test_legacy_empty_formSubmitURL.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/passwordmgr/test/unit/test_legacy_empty_formSubmitURL.js')
-rw-r--r--toolkit/components/passwordmgr/test/unit/test_legacy_empty_formSubmitURL.js107
1 files changed, 0 insertions, 107 deletions
diff --git a/toolkit/components/passwordmgr/test/unit/test_legacy_empty_formSubmitURL.js b/toolkit/components/passwordmgr/test/unit/test_legacy_empty_formSubmitURL.js
deleted file mode 100644
index 4e16aa267..000000000
--- a/toolkit/components/passwordmgr/test/unit/test_legacy_empty_formSubmitURL.js
+++ /dev/null
@@ -1,107 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Tests the legacy case of a login store containing entries that have an empty
- * string in the formSubmitURL field.
- *
- * In normal conditions, for the purpose of login autocomplete, HTML forms are
- * identified using both the prePath of the URI on which they are located, and
- * the prePath of the URI where the data will be submitted. This is represented
- * by the hostname and formSubmitURL properties of the stored nsILoginInfo.
- *
- * When a new login for use in forms is saved (after the user replies to the
- * password prompt), it is always stored with both the hostname and the
- * formSubmitURL (that will be equal to the hostname when the form has no
- * "action" attribute).
- *
- * When the same form is displayed again, the password is autocompleted. If
- * there is another form on the same site that submits to a different site, it
- * is considered a different form, so the password is not autocompleted, but a
- * new password can be stored for the other form.
- *
- * However, the login database might contain data for an nsILoginInfo that has a
- * valid hostname, but an empty formSubmitURL. This means that the login
- * applies to all forms on the site, regardless of where they submit data to.
- *
- * A site can have at most one such login, and in case it is present, then it is
- * not possible to store separate logins for forms on the same site that submit
- * data to different sites.
- *
- * The only way to have such condition is to be using logins that were initially
- * saved by a very old version of the browser, or because of data manually added
- * by an extension in an old version.
- */
-
-"use strict";
-
-// Tests
-
-/**
- * Adds a login with an empty formSubmitURL, then it verifies that no other
- * form logins can be added for the same host.
- */
-add_task(function test_addLogin_wildcard()
-{
- let loginInfo = TestData.formLogin({ hostname: "http://any.example.com",
- formSubmitURL: "" });
- Services.logins.addLogin(loginInfo);
-
- // Normal form logins cannot be added anymore.
- loginInfo = TestData.formLogin({ hostname: "http://any.example.com" });
- Assert.throws(() => Services.logins.addLogin(loginInfo), /already exists/);
-
- // Authentication logins can still be added.
- loginInfo = TestData.authLogin({ hostname: "http://any.example.com" });
- Services.logins.addLogin(loginInfo);
-
- // Form logins can be added for other hosts.
- loginInfo = TestData.formLogin({ hostname: "http://other.example.com" });
- Services.logins.addLogin(loginInfo);
-});
-
-/**
- * Verifies that findLogins, searchLogins, and countLogins include all logins
- * that have an empty formSubmitURL in the store, even when a formSubmitURL is
- * specified.
- */
-add_task(function test_search_all_wildcard()
-{
- // Search a given formSubmitURL on any host.
- let matchData = newPropertyBag({ formSubmitURL: "http://www.example.com" });
- do_check_eq(Services.logins.searchLogins({}, matchData).length, 2);
-
- do_check_eq(Services.logins.findLogins({}, "", "http://www.example.com",
- null).length, 2);
-
- do_check_eq(Services.logins.countLogins("", "http://www.example.com",
- null), 2);
-
- // Restrict the search to one host.
- matchData.setProperty("hostname", "http://any.example.com");
- do_check_eq(Services.logins.searchLogins({}, matchData).length, 1);
-
- do_check_eq(Services.logins.findLogins({}, "http://any.example.com",
- "http://www.example.com",
- null).length, 1);
-
- do_check_eq(Services.logins.countLogins("http://any.example.com",
- "http://www.example.com",
- null), 1);
-});
-
-/**
- * Verifies that specifying an empty string for formSubmitURL in searchLogins
- * includes only logins that have an empty formSubmitURL in the store.
- */
-add_task(function test_searchLogins_wildcard()
-{
- let logins = Services.logins.searchLogins({},
- newPropertyBag({ formSubmitURL: "" }));
-
- let loginInfo = TestData.formLogin({ hostname: "http://any.example.com",
- formSubmitURL: "" });
- LoginTestUtils.assertLoginListsEqual(logins, [loginInfo]);
-});