summaryrefslogtreecommitdiffstats
path: root/mobile/android/tests/browser/chrome/test_about_logins.html
diff options
context:
space:
mode:
Diffstat (limited to 'mobile/android/tests/browser/chrome/test_about_logins.html')
-rw-r--r--mobile/android/tests/browser/chrome/test_about_logins.html106
1 files changed, 106 insertions, 0 deletions
diff --git a/mobile/android/tests/browser/chrome/test_about_logins.html b/mobile/android/tests/browser/chrome/test_about_logins.html
new file mode 100644
index 000000000..8e7b404fd
--- /dev/null
+++ b/mobile/android/tests/browser/chrome/test_about_logins.html
@@ -0,0 +1,106 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=1136477
+Migrated from Robocop: https://bugzilla.mozilla.org/show_bug.cgi?id=1184186
+-->
+<head>
+ <meta charset="utf-8">
+ <title>Test for Bug 1136477</title>
+ <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
+ <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SpawnTask.js"></script>
+ <link rel="stylesheet" type="text/css" href="chrome://global/skin"/>
+ <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"/>
+ <script type="application/javascript;version=1.8" src="head.js"></script>
+ <script type="application/javascript;version=1.8">
+
+ "use strict";
+
+ const { interfaces: Ci, utils: Cu } = Components;
+
+ Cu.import("resource://gre/modules/AppConstants.jsm");
+ Cu.import("resource://gre/modules/Services.jsm");
+
+ const LOGIN_FIELDS = {
+ hostname: "http://example.org/tests/robocop/robocop_blank_01.html",
+ formSubmitUrl: "",
+ realmAny: null,
+ username: "username1",
+ password: "password1",
+ usernameField: "",
+ passwordField: ""
+ };
+
+ const LoginInfo = Components.Constructor("@mozilla.org/login-manager/loginInfo;1", "nsILoginInfo", "init");
+
+ function add_login(login) {
+ let newLogin = new LoginInfo(login.hostname,
+ login.formSubmitUrl,
+ login.realmAny,
+ login.username,
+ login.password,
+ login.usernameField,
+ login.passwordField);
+
+ Services.logins.addLogin(newLogin);
+ }
+
+ add_task(function* test_passwords_list() {
+ add_login(LOGIN_FIELDS);
+
+ // Load about:logins.
+ let BrowserApp = Services.wm.getMostRecentWindow("navigator:browser").BrowserApp;
+ let browser = BrowserApp.addTab("about:logins", { selected: true, parentId: BrowserApp.selectedTab.id }).browser;
+
+ yield promiseBrowserEvent(browser, "load");
+
+ let logins_list_parent = browser.contentDocument.getElementById("logins-list").parentNode;
+
+ let waitForLoginToBeAdded = new Promise((resolve) => {
+ let observer = new MutationObserver((mutations) => {
+ for (let mutation of mutations) {
+ for (let node of mutation.addedNodes) {
+ if (node.id == 'logins-list') {
+ info("Received mutation replacing 'logins-list'");
+ resolve();
+ return;
+ }
+ }
+ }
+ info("Skipping spurious mutation not replacing 'logins-list'");
+ });
+ observer.observe(logins_list_parent, {
+ childList: true,
+ });
+ info("Now waiting for mutation to replace 'logins-list'");
+ });
+
+ yield waitForLoginToBeAdded;
+
+ let logins_list = browser.contentDocument.getElementById("logins-list");
+
+ // Test that the (single) entry added in setup is correct.
+ let hostname = logins_list.querySelector(".hostname");
+ is(hostname.textContent, LOGIN_FIELDS.hostname, "hostname is correct");
+
+ let username = logins_list.querySelector(".username");
+ is(username.textContent, LOGIN_FIELDS.username, "username is correct");
+
+ // Cleanup: close about:logins, opened in password_setup()
+ BrowserApp.closeTab(BrowserApp.selectedTab);
+ });
+
+ </script>
+</head>
+<body>
+<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1136477">Mozilla Bug 1136477</a>
+<br>
+<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1184186">Migrated from Robocop testAboutLogins</a>
+<p id="display"></p>
+<div id="content" style="display: none">
+
+</div>
+<pre id="test">
+</pre>
+</body>
+</html>