subResources.sjs (1591B)
1 const kTwoDays = 2 * 24 * 60 * 60; 2 const kInTwoDays = new Date().getTime() + kTwoDays * 1000; 3 4 function getDateInTwoDays() { 5 let date2 = new Date(kInTwoDays); 6 let days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; 7 let months = [ 8 "Jan", 9 "Feb", 10 "Mar", 11 "Apr", 12 "May", 13 "Jun", 14 "Jul", 15 "Aug", 16 "Sep", 17 "Oct", 18 "Nov", 19 "Dec", 20 ]; 21 let day = date2.getUTCDate(); 22 if (day < 10) { 23 day = "0" + day; 24 } 25 let month = months[date2.getUTCMonth()]; 26 let year = date2.getUTCFullYear(); 27 let hour = date2.getUTCHours(); 28 if (hour < 10) { 29 hour = "0" + hour; 30 } 31 let minute = date2.getUTCMinutes(); 32 if (minute < 10) { 33 minute = "0" + minute; 34 } 35 let second = date2.getUTCSeconds(); 36 if (second < 10) { 37 second = "0" + second; 38 } 39 return ( 40 days[date2.getUTCDay()] + 41 ", " + 42 day + 43 "-" + 44 month + 45 "-" + 46 year + 47 " " + 48 hour + 49 ":" + 50 minute + 51 ":" + 52 second + 53 " GMT" 54 ); 55 } 56 57 function handleRequest(aRequest, aResponse) { 58 aResponse.setStatusLine(aRequest.httpVersion, 200); 59 60 let suffix = " path=/; domain:.mochi.test"; 61 62 if (aRequest.queryString.includes("3")) { 63 aResponse.setHeader( 64 "Set-Cookie", 65 "test3=value3; expires=Fri, 02-Jan-2037 00:00:01 GMT;" + suffix 66 ); 67 } else if (aRequest.queryString.includes("4")) { 68 let date2 = getDateInTwoDays(); 69 70 aResponse.setHeader( 71 "Set-Cookie", 72 "test4=value4; expires=" + date2 + ";" + suffix 73 ); 74 } 75 76 aResponse.setHeader("Content-Type", "text/javascript", false); 77 aResponse.write("42;"); 78 }