기여 목록 / 8503476
Migrate devtools/security/security-blocked-mixed-content.js to a unit test
DevToolstestdevtools/devtools-frontendIn Review
security-blocked-mixed-content.js의 검증을 DevTools unit test로 옮겨,
페이지 navigation 시 차단된 mixed content 설명이 제거되는지 확인했습니다.
문제 설명
기존 Chromium 웹 테스트는 navigation 전후의 DOM 출력을 기대 결과와 비교했습니다. DevTools unit test에는 차단 설명을 표시하는 검증이 있었지만, navigation 후 제거되는지는 확인하지 않았습니다.
해결 내용
SecurityPanel.test.ts의 기존 blocked mixed content 테스트를 확장했습니다.- 설명과 request 링크를 검증한 뒤
navigate(getMainFrame(target))를 호출했습니다. - navigation 후
.security-explanation이 비어 있는지 확인하고, 테스트 이름에 navigation 검증을 반영했습니다.
전체 코드 diff는 다음과 같습니다.
diff --git a/front_end/panels/security/SecurityPanel.test.ts b/front_end/panels/security/SecurityPanel.test.ts
index 889b29a..d2ea171 100644
--- a/front_end/panels/security/SecurityPanel.test.ts
+++ b/front_end/panels/security/SecurityPanel.test.ts
@@ -864,7 +864,7 @@
assert.strictEqual(unknownOriginElement.textContent, 'https://does-not-resolve.test');
});
- it('shows an explanation for blocked mixed content', () => {
+ it('shows an explanation for blocked mixed content and clears it on navigation', () => {
const securityPanel = Security.SecurityPanel.SecurityPanel.instance({forceNew: true});
renderElementIntoDOM(securityPanel);
const securityModel = target.model(Security.SecurityModel.SecurityModel);
@@ -899,6 +899,11 @@
const requestsLink = querySelectorErrorOnMissing(explanation, 'button.security-mixed-content');
assert.strictEqual(requestsLink.textContent, 'View 1 request in Network panel');
assert.strictEqual(requestsLink.getAttribute('role'), 'link');
+
+ // Test that the explanations are cleared on navigation. Regression test for https://crbug.com/601944.
+ navigate(getMainFrame(target));
+
+ assert.isEmpty(securityPanel.mainView.contentElement.querySelectorAll('.security-explanation'));
});
it('replaces active and passive mixed content reload prompts with request links when requests are recorded', () => {테스트 방법
기존 설명 표시 검증에 navigation 후 제거 검증을 추가했습니다. Gerrit에서 patchset 2의 CQ 실행 통과를 확인했습니다. 현재 리뷰 중입니다.
배운 점
기존 테스트와 준비 과정·검증이 겹치면 해당 테스트를 확장해 중복을 줄일 수 있습니다. navigation 전후 상태를 함께 확인해야 이전 페이지의 설명이 남는 회귀도 검증할 수 있습니다.