78 lines
1.6 KiB
JavaScript
78 lines
1.6 KiB
JavaScript
const kTwoDays = 2 * 24 * 60 * 60;
|
|
const kInTwoDays = new Date().getTime() + kTwoDays * 1000;
|
|
|
|
function getDateInTwoDays() {
|
|
let date2 = new Date(kInTwoDays);
|
|
let days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
|
|
let months = [
|
|
"Jan",
|
|
"Feb",
|
|
"Mar",
|
|
"Apr",
|
|
"May",
|
|
"Jun",
|
|
"Jul",
|
|
"Aug",
|
|
"Sep",
|
|
"Oct",
|
|
"Nov",
|
|
"Dec",
|
|
];
|
|
let day = date2.getUTCDate();
|
|
if (day < 10) {
|
|
day = "0" + day;
|
|
}
|
|
let month = months[date2.getUTCMonth()];
|
|
let year = date2.getUTCFullYear();
|
|
let hour = date2.getUTCHours();
|
|
if (hour < 10) {
|
|
hour = "0" + hour;
|
|
}
|
|
let minute = date2.getUTCMinutes();
|
|
if (minute < 10) {
|
|
minute = "0" + minute;
|
|
}
|
|
let second = date2.getUTCSeconds();
|
|
if (second < 10) {
|
|
second = "0" + second;
|
|
}
|
|
return (
|
|
days[date2.getUTCDay()] +
|
|
", " +
|
|
day +
|
|
"-" +
|
|
month +
|
|
"-" +
|
|
year +
|
|
" " +
|
|
hour +
|
|
":" +
|
|
minute +
|
|
":" +
|
|
second +
|
|
" GMT"
|
|
);
|
|
}
|
|
|
|
function handleRequest(aRequest, aResponse) {
|
|
aResponse.setStatusLine(aRequest.httpVersion, 200);
|
|
|
|
let suffix = " path=/; domain:.mochi.test";
|
|
|
|
if (aRequest.queryString.includes("3")) {
|
|
aResponse.setHeader(
|
|
"Set-Cookie",
|
|
"test3=value3; expires=Fri, 02-Jan-2037 00:00:01 GMT;" + suffix
|
|
);
|
|
} else if (aRequest.queryString.includes("4")) {
|
|
let date2 = getDateInTwoDays();
|
|
|
|
aResponse.setHeader(
|
|
"Set-Cookie",
|
|
"test4=value4; expires=" + date2 + ";" + suffix
|
|
);
|
|
}
|
|
|
|
aResponse.setHeader("Content-Type", "text/javascript", false);
|
|
aResponse.write("42;");
|
|
}
|