test-helper.js (1869B)
1 // META: script=../../html/browsers/browsing-the-web/back-forward-cache/resources/rc-helper.js 2 3 async function assertNotRestoredReasonsEquals( 4 remoteContextHelper, url, src, id, name, reasons, children) { 5 let result = await remoteContextHelper.executeScript(() => { 6 return performance.getEntriesByType('navigation')[0].notRestoredReasons; 7 }); 8 assertReasonsStructEquals( 9 result, url, src, id, name, reasons, children); 10 } 11 12 function assertReasonsStructEquals( 13 result, url, src, id, name, reasons, children) { 14 assert_equals(result.url, url); 15 assert_equals(result.src, src); 16 assert_equals(result.id, id); 17 assert_equals(result.name, name); 18 19 // Reasons should match. 20 let expected = new Set(reasons); 21 let actual = new Set(result.reasons); 22 matchReasons(extractReason(expected), extractReason(actual)); 23 24 // Children should match. 25 if (children == null) { 26 assert_equals(result.children, children); 27 } else { 28 for (let j = 0; j < children.length; j++) { 29 assertReasonsStructEquals( 30 result.children[j], children[j].url, 31 children[j].src, children[j].id, children[j].name, children[j].reasons, 32 children[j].children); 33 } 34 } 35 } 36 37 function ReasonsInclude(reasons, targetReason) { 38 for (const reason of reasons) { 39 if (reason.reason == targetReason) { 40 return true; 41 } 42 } 43 return false; 44 } 45 46 // Requires: 47 // - /websockets/constants.sub.js in the test file and pass the domainPort 48 // constant here. 49 async function useWebSocket(remoteContextHelper) { 50 let return_value = await remoteContextHelper.executeScript((domain) => { 51 return new Promise((resolve) => { 52 var webSocketInNotRestoredReasonsTests = new WebSocket(domain + '/echo'); 53 webSocketInNotRestoredReasonsTests.onopen = () => { resolve(42); }; 54 }); 55 }, [SCHEME_DOMAIN_PORT]); 56 assert_equals(return_value, 42); 57 }