Migrate devtools/security/security-explanation-ordering.js to a unit test Verify that informational security explanations are shown after regular explanations. Bug: 351056469 Change-Id: I77e900f1cbcf0e5f5d36f1c332fc2736d487fb47 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/8603988 Reviewed-by: Mathias Bynens <mathias@chromium.org> Commit-Queue: Hojeong Park <parkhj062@gmail.com> Reviewed-by: Danil Somsikov <dsv@chromium.org>
diff --git a/front_end/panels/security/SecurityPanel.test.ts b/front_end/panels/security/SecurityPanel.test.ts index 7f7eb89..111b113 100644 --- a/front_end/panels/security/SecurityPanel.test.ts +++ b/front_end/panels/security/SecurityPanel.test.ts
@@ -960,6 +960,24 @@ assert.strictEqual(unknownOriginElement.textContent, 'https://does-not-resolve.test'); }); + it('shows informational explanations after regular explanations', () => { + const securityPanel = Security.SecurityPanel.SecurityPanel.instance({forceNew: true}); + renderElementIntoDOM(securityPanel); + const securityModel = target.model(Security.SecurityModel.SecurityModel); + assert.exists(securityModel); + + const pageVisibleSecurityState = new Security.SecurityModel.PageVisibleSecurityState( + Protocol.Security.SecurityState.Secure, null, null, ['pkp-bypassed']); + securityModel.dispatchEventToListeners(Security.SecurityModel.Events.VisibleSecurityStateChanged, + pageVisibleSecurityState); + + const titles = securityPanel.mainView.contentElement.querySelectorAll('.security-explanation-title'); + assert.deepEqual(Array.from(titles, title => title.textContent), [ + 'Resources - all served securely', + 'Certificate - Public-Key-Pinning bypassed', + ]); + }); + it('shows an explanation for blocked mixed content and clears it on navigation', () => { const securityPanel = Security.SecurityPanel.SecurityPanel.instance({forceNew: true}); renderElementIntoDOM(securityPanel);