<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="400" height="300" viewBox="0 0 600 500"
     xmlns="http://www.w3.org/2000/svg" version="1.1" onload="test()">
<script>

var logOffset = 40;
var logOffsetIncrement = 40
function log(message)
{
    var t = document.createElementNS("http://www.w3.org/2000/svg", "text");
    t.appendChild(document.createTextNode(message));
    t.setAttribute('y', logOffset);
    t.setAttribute('x', 0);
    logOffset += logOffsetIncrement;
    document.getElementById("console").appendChild(t);
}

function expect(expected, actual)
{
    var msg = "Expected " + expected + ", got " + actual + ": ";
    if (expected == actual)
        log(msg + "PASS");
    else
        log(msg + "FAIL");
}

function createTitleElement(title)
{
    var t = document.createElementNS("http://www.w3.org/2000/svg", 'title');
    t.appendChild(document.createTextNode(title));
    return t;
}

function test()
{
    if (window.layoutTestController)
        layoutTestController.dumpAsText();

    expect('', document.title);
    document.documentElement.appendChild(createTitleElement('First title'));
    expect('First title', document.title);
    document.documentElement.appendChild(createTitleElement('Second title'));
    expect('First title', document.title);
}
</script>
<g id="console">
</g>
</svg>
