forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			87 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /* Any copyright is dedicated to the Public Domain.
 | |
|  * http://creativecommons.org/publicdomain/zero/1.0/ */
 | |
| 
 | |
| "use strict";
 | |
| 
 | |
| const TYPE_CA = 1;
 | |
| const TYPE_USER = 2;
 | |
| const TYPE_EMAIL = 4;
 | |
| const TYPE_SERVER = 8;
 | |
| 
 | |
| add_task(async function test_dbItemDisplayed() {
 | |
|   await BrowserTestUtils.openNewForegroundTab(gBrowser, () => {
 | |
|     gBrowser.selectedTab = BrowserTestUtils.addTab(
 | |
|       gBrowser,
 | |
|       "about:certificate"
 | |
|     );
 | |
|   });
 | |
| 
 | |
|   let categories = [
 | |
|     {
 | |
|       type: TYPE_CA,
 | |
|       tabName: "Authorities",
 | |
|       id: "ca",
 | |
|     },
 | |
|     {
 | |
|       type: TYPE_USER,
 | |
|       tabName: "Your Certificates",
 | |
|       id: "mine",
 | |
|     },
 | |
|     {
 | |
|       type: TYPE_EMAIL,
 | |
|       tabName: "People",
 | |
|       id: "people",
 | |
|     },
 | |
|     {
 | |
|       type: TYPE_SERVER,
 | |
|       tabName: "Servers",
 | |
|       id: "servers",
 | |
|     },
 | |
|   ];
 | |
| 
 | |
|   let certdb = Cc["@mozilla.org/security/x509certdb;1"].getService(
 | |
|     Ci.nsIX509CertDB
 | |
|   );
 | |
|   Assert.ok(certdb, "certdb not null");
 | |
|   let certcache = certdb.getCerts();
 | |
|   Assert.ok(certcache, "certcache not null");
 | |
| 
 | |
|   for (let cert of certcache) {
 | |
|     let category = categories.find(({ type }) => type & cert.certType);
 | |
| 
 | |
|     await SpecialPowers.spawn(
 | |
|       gBrowser.selectedBrowser,
 | |
|       [cert.displayName, category],
 | |
|       async function(displayName, category) {
 | |
|         let aboutCertificateSection = await ContentTaskUtils.waitForCondition(
 | |
|           () => {
 | |
|             return content.document.querySelector("about-certificate-section");
 | |
|           },
 | |
|           "Found aboutCertificateSection."
 | |
|         );
 | |
| 
 | |
|         let tab = aboutCertificateSection.shadowRoot.querySelector(
 | |
|           `.certificate-tabs #certificate-viewer-tab-${category.id}`
 | |
|         );
 | |
|         Assert.ok(tab, `${category.tabName} tab should exist.`);
 | |
|         tab.click();
 | |
| 
 | |
|         let certificateItems = aboutCertificateSection.shadowRoot.querySelector(
 | |
|           `.info-groups #certificate-viewer-tab-${category.id}`
 | |
|         );
 | |
| 
 | |
|         let listItems = certificateItems.shadowRoot.querySelectorAll(
 | |
|           "list-item"
 | |
|         );
 | |
| 
 | |
|         let item = Array.from(listItems).find(
 | |
|           i =>
 | |
|             i.shadowRoot.querySelector(".item-name").textContent == displayName
 | |
|         );
 | |
|         Assert.ok(item, `${displayName} should be listed`);
 | |
|       }
 | |
|     );
 | |
|   }
 | |
| 
 | |
|   gBrowser.removeCurrentTab(); // closes about:certificate
 | |
| });
 | 
