forked from mirrors/gecko-dev
		
	Also remove empty `filter` query params. Differential Revision: https://phabricator.services.mozilla.com/D46551 --HG-- extra : moz-landing-system : lando
		
			
				
	
	
		
			76 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
const PREF_MANAGEMENT_URI = "signon.management.overrideURI";
 | 
						|
 | 
						|
function resetPrefs() {
 | 
						|
  Services.prefs.clearUserPref(PREF_MANAGEMENT_URI);
 | 
						|
}
 | 
						|
 | 
						|
registerCleanupFunction(resetPrefs);
 | 
						|
 | 
						|
add_task(async function test_noFilter() {
 | 
						|
  let openingFunc = () =>
 | 
						|
    LoginHelper.openPasswordManager(window, { entryPoint: "mainmenu" });
 | 
						|
  let passwordManager = await openPasswordManager(openingFunc);
 | 
						|
 | 
						|
  ok(passwordManager, "Login dialog was opened");
 | 
						|
  await passwordManager.close();
 | 
						|
  await TestUtils.waitForCondition(() => {
 | 
						|
    return Services.wm.getMostRecentWindow("Toolkit:PasswordManager") === null;
 | 
						|
  }, "Waiting for the password manager dialog to close");
 | 
						|
});
 | 
						|
 | 
						|
add_task(async function test_filter() {
 | 
						|
  // Greek IDN for example.test
 | 
						|
  let domain = "παράδειγμα.δοκιμή";
 | 
						|
  let openingFunc = () =>
 | 
						|
    LoginHelper.openPasswordManager(window, {
 | 
						|
      filterString: domain,
 | 
						|
      entryPoint: "mainmenu",
 | 
						|
    });
 | 
						|
  let passwordManager = await openPasswordManager(openingFunc, true);
 | 
						|
  is(
 | 
						|
    passwordManager.filterValue,
 | 
						|
    domain,
 | 
						|
    "search string to filter logins should match expectation"
 | 
						|
  );
 | 
						|
  await passwordManager.close();
 | 
						|
  await TestUtils.waitForCondition(() => {
 | 
						|
    return Services.wm.getMostRecentWindow("Toolkit:PasswordManager") === null;
 | 
						|
  }, "Waiting for the password manager dialog to close");
 | 
						|
});
 | 
						|
 | 
						|
add_task(async function test_management_overrideURI_noFilter() {
 | 
						|
  await SpecialPowers.pushPrefEnv({
 | 
						|
    set: [["signon.management.page.enabled", true]],
 | 
						|
  });
 | 
						|
 | 
						|
  Services.prefs.setStringPref(
 | 
						|
    PREF_MANAGEMENT_URI,
 | 
						|
    "about:logins?filter=%DOMAIN%"
 | 
						|
  );
 | 
						|
  let tabOpenPromise = BrowserTestUtils.waitForNewTab(gBrowser, "about:logins");
 | 
						|
  LoginHelper.openPasswordManager(window, { entryPoint: "mainmenu" });
 | 
						|
  let tab = await tabOpenPromise;
 | 
						|
  ok(tab, "Got the new tab");
 | 
						|
  BrowserTestUtils.removeTab(tab);
 | 
						|
  resetPrefs();
 | 
						|
});
 | 
						|
 | 
						|
add_task(async function test_management_overrideURI_filter() {
 | 
						|
  Services.prefs.setStringPref(
 | 
						|
    PREF_MANAGEMENT_URI,
 | 
						|
    "about:logins?filter=%DOMAIN%"
 | 
						|
  );
 | 
						|
  let tabOpenPromise = BrowserTestUtils.waitForNewTab(
 | 
						|
    gBrowser,
 | 
						|
    "about:logins?filter=%CF%80%CE%B1%CF%81%CE%AC%CE%B4%CE%B5%CE%B9%CE%B3%CE%BC%CE%B1.%CE%B4%CE%BF%CE%BA%CE%B9%CE%BC%CE%AE"
 | 
						|
  );
 | 
						|
  // Greek IDN for example.test
 | 
						|
  LoginHelper.openPasswordManager(window, {
 | 
						|
    filterString: "παράδειγμα.δοκιμή",
 | 
						|
    entryPoint: "mainmenu",
 | 
						|
  });
 | 
						|
  let tab = await tabOpenPromise;
 | 
						|
  ok(tab, "Got the new tab with a domain filter");
 | 
						|
  BrowserTestUtils.removeTab(tab);
 | 
						|
  resetPrefs();
 | 
						|
});
 |