rspec/index.html
2020-06-23 09:16:22 +02:00

72 lines
2.9 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<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>
</body>
<script src="asciidoctor/asciidoctor.js"></script>
<script>
function init() {
const asciiDoctor = Asciidoctor();
const github_v3 ="application/vnd.github.v3.html";
const divResult = document.getElementById("div-result");
const requestDataList = [
{ url: "https://sonarsource.github.io/rspec/rules/S3457/see.adoc", accept: "*", data: null },
{ url: "https://sonarsource.github.io/rspec/rules/S3457/java/rule.adoc", accept: "*", data: null },
{ 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";
if (requestData.url.endsWith(".adoc")) {
let html = asciiDoctor.convert(xhr.responseText, { attributes: { 'allow-uri-read': true } });
requestState += html + "\n----------------------\n";
}
}
}
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";
}
}
const doc = asciiDoctor.loadFile("rspec/rules/S3457/java/rule.adoc");
divResult.innerText = divResult.innerText +
"\n----------------------\n" +
doc.convert(doc, {doctype: 'inline'}) +
"\n----------------------\n";
}
</script>
</html>