DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (5b81998bb7ab)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
<!DOCTYPE HTML>
<html>
<head>
  <title>Test for Login Manager</title>
  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>  
  <script type="text/javascript" src="pwmgr_common.js"></script>
  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
Login Manager test: 444968
<p id="display"></p>
<div id="content" style="display: none">
  <!-- first 3 forms have matching user+pass and pass-only logins -->

  <!-- user+pass form. -->
  <form id="form1" action="http://bug444968-1">
    <input  type="text"     name="uname">
    <input  type="password" name="pword">
    <button type="submit">Submit</button>
  </form>

  <!-- password-only form. -->
  <form id="form2" action="http://bug444968-1">
    <input  type="password" name="pword">
    <button type="submit">Submit</button>
  </form>

  <!-- user+pass form, username prefilled -->
  <form id="form3" action="http://bug444968-1">
    <input  type="text"     name="uname" value="testuser1A">
    <input  type="password" name="pword">
    <button type="submit">Submit</button>
  </form>


  <!-- next 4 forms have matching user+pass (2x) and pass-only (1x) logins -->

  <!-- user+pass form. -->
  <form id="form4" action="http://bug444968-2">
    <input  type="text"     name="uname">
    <input  type="password" name="pword">
    <button type="submit">Submit</button>
  </form>

  <!-- password-only form. -->
  <form id="form5" action="http://bug444968-2">
    <input  type="password" name="pword">
    <button type="submit">Submit</button>
  </form>

  <!-- user+pass form, username prefilled -->
  <form id="form6" action="http://bug444968-2">
    <input  type="text"     name="uname" value="testuser2A">
    <input  type="password" name="pword">
    <button type="submit">Submit</button>
  </form>

  <!-- user+pass form, username prefilled -->
  <form id="form7" action="http://bug444968-2">
    <input  type="text"     name="uname" value="testuser2C">
    <input  type="password" name="pword">
    <button type="submit">Submit</button>
  </form>

</div>
<pre id="test">
<script class="testbody" type="text/javascript">

/* Test for Login Manager: 444968 (password-only forms should prefer a
 * password-only login when present )
 */
commonInit();

netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');

const Ci = Components.interfaces;
const Cc = Components.classes;
pwmgr = Cc["@mozilla.org/login-manager;1"].
        getService(Ci.nsILoginManager);

login1A  = Cc["@mozilla.org/login-manager/loginInfo;1"].
           createInstance(Ci.nsILoginInfo);
login1B  = Cc["@mozilla.org/login-manager/loginInfo;1"].
           createInstance(Ci.nsILoginInfo);
login2A  = Cc["@mozilla.org/login-manager/loginInfo;1"].
           createInstance(Ci.nsILoginInfo);
login2B  = Cc["@mozilla.org/login-manager/loginInfo;1"].
           createInstance(Ci.nsILoginInfo);
login2C  = Cc["@mozilla.org/login-manager/loginInfo;1"].
           createInstance(Ci.nsILoginInfo);

login1A.init("http://mochi.test:8888", "http://bug444968-1", null,
            "testuser1A", "testpass1A", "", "");
login1B.init("http://mochi.test:8888", "http://bug444968-1", null,
            "", "testpass1B", "", "");

login2A.init("http://mochi.test:8888", "http://bug444968-2", null,
            "testuser2A", "testpass2A", "", "");
login2B.init("http://mochi.test:8888", "http://bug444968-2", null,
            "", "testpass2B", "", "");
login2C.init("http://mochi.test:8888", "http://bug444968-2", null,
            "testuser2C", "testpass2C", "", "");

pwmgr.addLogin(login1A);
pwmgr.addLogin(login1B);
pwmgr.addLogin(login2A);
pwmgr.addLogin(login2B);
pwmgr.addLogin(login2C);

function startTest() {
  netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');

  checkForm(1, "testuser1A", "testpass1A");
  checkForm(2, "testpass1B");
  checkForm(3, "testuser1A", "testpass1A");

  checkUnmodifiedForm(4); // 2 logins match
  checkForm(5, "testpass2B");
  checkForm(6, "testuser2A", "testpass2A");
  checkForm(7, "testuser2C", "testpass2C");

  pwmgr.removeLogin(login1A);
  pwmgr.removeLogin(login1B);
  pwmgr.removeLogin(login2A);
  pwmgr.removeLogin(login2B);
  pwmgr.removeLogin(login2C);
 
  SimpleTest.finish();
}

window.onload = startTest;

SimpleTest.waitForExplicitFinish();

</script>
</pre>
</body>
</html>