summaryrefslogtreecommitdiffstats
path: root/3rdparty/ezyang/htmlpurifier/smoketests/innerHTML.js
blob: 74ccbb68896840c73412f72d564d29ceb5b27a66 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
var alphabet = 'a!`=[]\\;\':"/<> &';

var out             = document.getElementById('out');
var testContainer   = document.getElementById('testContainer');

function print(s) {
    out.value += s + "\n";
}

function testImage() {
    return testContainer.firstChild;
}

function test(input) {
    var count = 0;
    var oldInput, newInput;
    testContainer.innerHTML = "<img />";
    testImage().setAttribute("alt", input);
    print("------");
    print("Test input: " + input);
    do {
        oldInput = testImage().getAttribute("alt");
        var intermediate = testContainer.innerHTML;
        print("Render: " + intermediate);
        testContainer.innerHTML = intermediate;
        if (testImage() == null) {
            print("Image disappeared...");
            break;
        }
        newInput = testImage().getAttribute("alt");
        print("New value: " + newInput);
        count++;
    } while (count < 5 && newInput != oldInput);
    if (count == 5) {
        print("Failed to achieve fixpoint");
    }
    testContainer.innerHTML = "";
}

print("Go!");

test("`` ");
test("'' ");

for (var i = 0; i < alphabet.length; i++) {
    for (var j = 0; j < alphabet.length; j++) {
        test(alphabet.charAt(i) + alphabet.charAt(j));
    }
}

// document.getElementById('out').textContent = alphabet;