header-referrer.js (1296B)
1 const RESOURCES_DIR = "/html/semantics/links/downloading-resources/resources/"; 2 3 function testReferrerHeader(expectedReferrer) { 4 let id = self.token(); 5 let testUrl = RESOURCES_DIR + "inspect-header.py?header=referer&cmd=put&id=" + id; 6 7 promise_test(function(test) { 8 const anchor = document.getElementById("a"); 9 anchor.setAttribute("ping", testUrl); 10 anchor.click(); 11 return pollResult(id) .then(result => { 12 assert_equals(result, expectedReferrer, "Correct referrer header result"); 13 }); 14 }, "Test referer header " + RESOURCES_DIR); 15 } 16 17 // Sending a ping is an asynchronous and non-blocking request to a web server. 18 // We may have to create a poll loop to get result from server 19 function pollResult(id) { 20 let checkUrl = RESOURCES_DIR + "inspect-header.py?header=referer&cmd=get&id=" + id; 21 22 return new Promise(resolve => { 23 function checkResult() { 24 fetch(checkUrl).then( 25 function(response) { 26 assert_equals(response.status, 200, "Inspect header response's status is 200"); 27 let result = response.headers.get("x-request-referer"); 28 29 if (result != undefined) { 30 resolve(result); 31 } else { 32 step_timeout(checkResult.bind(this), 100); 33 } 34 }); 35 } 36 37 checkResult(); 38 }); 39 40 }