rspec/index.html

69 lines
2.9 KiB
HTML
Raw Normal View History

2020-06-23 08:14:54 +02:00
<!doctype html>
<html lang="en">
2020-06-22 17:34:10 +02:00
<head>
2020-06-23 08:14:54 +02:00
<meta charset="utf-8">
<title>Test Http Request From JS</title>
</head>
<body onload="init()">
<h1>Test Http Request From JS</h1>
<div id="div-result"></div>
2020-06-22 17:34:10 +02:00
</body>
2020-06-23 09:16:16 +02:00
<script src="asciidoctor/asciidoctor.js"></script>
2020-06-23 08:14:54 +02:00
<script>
function init() {
2020-06-23 09:16:16 +02:00
const asciiDoctor = Asciidoctor();
2020-06-23 08:14:54 +02:00
const github_v3 ="application/vnd.github.v3.html";
const divResult = document.getElementById("div-result");
const requestDataList = [
2020-06-23 09:16:16 +02:00
{ url: "https://sonarsource.github.io/rspec/rules/S3457/see.adoc", accept: "*", data: null },
2020-06-23 08:14:54 +02:00
{ url: "https://sonarsource.github.io/rspec/rules/S3457/java/rule.adoc", accept: "*", data: null },
2020-06-23 14:40:50 +02:00
{ url: "https://raw.githubusercontent.com/SonarSource/rspec/master/rules/S3457/java/rule.adoc", accept: "*", data: null },
2020-06-23 08:14:54 +02:00
{ url: "https://raw.githubusercontent.com/SonarSource/sonar-java/master/.github/workflows/dogfood.yml", accept: "*", data: null },
{ url: "https://api.github.com/repos/SonarSource/sonar-java/branches", accept: github_v3, data: null }
];
for (let i = 0; i < requestDataList.length; i++) {
const requestData = requestDataList[i];
try {
const xhr = new XMLHttpRequest();
divResult.innerText = divResult.innerText + "Call " + requestData.url + "\n";
xhr.open('GET', requestData.url);
xhr.setRequestHeader("Accept", requestData.accept);
if (requestData.type) {
xhr.setRequestHeader("Content-Type", requestData.type);
}
xhr.onreadystatechange = function() {
let requestState = "Request " + requestData.url + " readyState: " + xhr.readyState;
if(xhr.readyState === 4) {
requestState += " status: " + xhr.status;
if (xhr.status === 200) {
requestState += "\n----------------------\n" +
xhr.getAllResponseHeaders() +
"\n" +
xhr.responseText +
"\n----------------------\n";
2020-06-23 09:16:16 +02:00
if (requestData.url.endsWith(".adoc")) {
2020-06-23 14:32:26 +02:00
const baseDir = requestData.url.replace(/\/[^/]*$/, "/");
const opts = {safe: 'safe', base_dir: baseDir, attributes: { } };
let html = asciiDoctor.convert(xhr.responseText, opts);
2020-06-23 09:16:16 +02:00
requestState += html + "\n----------------------\n";
}
2020-06-23 08:14:54 +02:00
}
}
divResult.innerText = divResult.innerText + requestState + "\n";
}
xhr.send(requestData.data);
} catch (e) {
let exceptionMessage = "";
if (e.message) {
exceptionMessage += e.message;
}
if (e.stack) {
exceptionMessage += ' | stack: ' + e.stack;
}
divResult.innerText = divResult.innerText + "Exception while calling " + requestData.url + "\n" + exceptionMessage + "\n";
}
}
}
</script>
2020-06-22 17:34:10 +02:00
</html>