mirror of
https://github.com/kkapsner/CanvasBlocker
synced 2024-12-22 21:00:23 +01:00
Improved tests.
This commit is contained in:
parent
6fdf13bd10
commit
c5bb80bbb8
116
test/detectionTest.html
Normal file
116
test/detectionTest.html
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Detection Test</title>
|
||||||
|
<style>
|
||||||
|
.notRun {
|
||||||
|
color: lightgray;
|
||||||
|
}
|
||||||
|
.loud .status{
|
||||||
|
color: red;
|
||||||
|
}
|
||||||
|
.stealthy .status{
|
||||||
|
color: darkgreen;
|
||||||
|
}
|
||||||
|
.failed {
|
||||||
|
background-color: red;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<ul id="tests"></ul>
|
||||||
|
<script>
|
||||||
|
var addTest = (function(){
|
||||||
|
var stati = [
|
||||||
|
{className: "notRun", text: "not run"},
|
||||||
|
{className: "loud", text: "CB detected"},
|
||||||
|
{className: "stealthy", text: "CB not detected"},
|
||||||
|
{className: "failed", text: "test failed"}
|
||||||
|
];
|
||||||
|
var ul = document.getElementById("tests");
|
||||||
|
return function addTest(name, func){
|
||||||
|
var logs = [];
|
||||||
|
function log(){
|
||||||
|
for (var i = 0; i < arguments.length; i += 1){
|
||||||
|
logs.push(arguments[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var status = 0;
|
||||||
|
try {
|
||||||
|
status = func(log)? 1: 2;
|
||||||
|
}
|
||||||
|
catch (e){
|
||||||
|
status = 3;
|
||||||
|
}
|
||||||
|
var li = document.createElement("li");
|
||||||
|
li.className = stati[status].className;
|
||||||
|
var nameNode = document.createElement("span");
|
||||||
|
nameNode.className = "name";
|
||||||
|
nameNode.textContent = name;
|
||||||
|
nameNode.title = func.toString();
|
||||||
|
li.appendChild(nameNode);
|
||||||
|
li.appendChild(document.createTextNode(": "));
|
||||||
|
var statusNode = document.createElement("span");
|
||||||
|
statusNode.className = "status";
|
||||||
|
statusNode.textContent = stati[status].text;
|
||||||
|
statusNode.title = logs.join("\n");
|
||||||
|
li.appendChild(statusNode);
|
||||||
|
ul.appendChild(li);
|
||||||
|
}
|
||||||
|
}());
|
||||||
|
|
||||||
|
addTest("function length", function(){return CanvasRenderingContext2D.prototype.getImageData.length === 0;});
|
||||||
|
addTest("error provocation 1", function(log){
|
||||||
|
var canvas = document.createElement('canvas');
|
||||||
|
var ctx = canvas.getContext("2d");
|
||||||
|
var canvasBlocker = false;
|
||||||
|
try{
|
||||||
|
ctx.getImageData(0, 0, 0, 0);
|
||||||
|
}
|
||||||
|
catch (err){
|
||||||
|
try {
|
||||||
|
log(err.name);
|
||||||
|
}
|
||||||
|
catch (e){
|
||||||
|
canvasBlocker = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return canvasBlocker;
|
||||||
|
});
|
||||||
|
addTest("error provocation 2", function(log){
|
||||||
|
var canvas = document.createElement('canvas');
|
||||||
|
canvas.width = 0;
|
||||||
|
var ctx = canvas.getContext("2d");
|
||||||
|
var canvasBlocker = false;
|
||||||
|
try{
|
||||||
|
ctx.getImageData(0, 0, 1, 1);
|
||||||
|
}
|
||||||
|
catch (err){
|
||||||
|
try {
|
||||||
|
log(err.name);
|
||||||
|
}
|
||||||
|
catch (e){
|
||||||
|
canvasBlocker = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return canvasBlocker;
|
||||||
|
});
|
||||||
|
addTest("error provocation 3", function(log){
|
||||||
|
var canvasBlocker = false;
|
||||||
|
try{
|
||||||
|
CanvasRenderingContext2D.prototype.getImageData.apply(undefined, [0, 0, 1, 1]);
|
||||||
|
}
|
||||||
|
catch (err){
|
||||||
|
try {
|
||||||
|
log(err.name);
|
||||||
|
}
|
||||||
|
catch (e){
|
||||||
|
canvasBlocker = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return canvasBlocker;
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -9,12 +9,14 @@
|
|||||||
<h1>top Test</h1>
|
<h1>top Test</h1>
|
||||||
<img class="display" width="100%"><br>
|
<img class="display" width="100%"><br>
|
||||||
Hash: <span class="hash"></span>
|
Hash: <span class="hash"></span>
|
||||||
|
<button>refresh</button>
|
||||||
</div>
|
</div>
|
||||||
<div id="iframe">
|
<div id="iframe">
|
||||||
<h1>iFrame Test. Thanks to DocumentRoot.</h1>
|
<h1>iFrame Test. Thanks to DocumentRoot.</h1>
|
||||||
<img class="display" width="100%"><br>
|
<img class="display" width="100%"><br>
|
||||||
Hash: <span class="hash"></span>
|
Hash: <span class="hash"></span>
|
||||||
<iframe sandbox="allow-same-origin" style="display:none"></iframe>
|
<iframe sandbox="allow-same-origin" style="display:none"></iframe>
|
||||||
|
<button>refresh</button>
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
(function(){
|
(function(){
|
||||||
@ -33,7 +35,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
show(document.getElementById("top"), topTest());
|
show(document.getElementById("top"), topTest());
|
||||||
|
document.querySelector("#top button").addEventListener("click", function(){show(document.getElementById("top"), topTest());});
|
||||||
show(document.getElementById("iframe"), iframeTest());
|
show(document.getElementById("iframe"), iframeTest());
|
||||||
|
document.querySelector("#iframe button").addEventListener("click", function(){show(document.getElementById("iframe"), iframeTest());});
|
||||||
}());
|
}());
|
||||||
|
|
||||||
function draw(canvas){
|
function draw(canvas){
|
||||||
|
Loading…
x
Reference in New Issue
Block a user