<html>
<head>
<script>
function log(message)
{
var paragraph = document.createElement("p");
paragraph.appendChild(document.createTextNode(message));
document.getElementById("console").appendChild(paragraph);
}
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.createElement('title');
t.appendChild(document.createTextNode(title));
return t;
}
function test()
{
if (window.testRunner)
testRunner.dumpAsText();
var head = document.getElementsByTagName('head')[0];
expect('', document.title);
head.appendChild(createTitleElement('First title'));
expect('First title', document.title);
document.title = 'Second title';
expect('Second title', document.title);
head.appendChild(createTitleElement('Third title'));
expect('Second title', document.title);
document.title = 'Fourth title';
expect('Fourth title', document.title);
var titles = head.getElementsByTagName('title');
var expectedTitles = {1: 'Third title', 0: ''};
while (titles.length) {
titles[0].parentNode.removeChild(titles[0]);
expect(expectedTitles[titles.length], document.title);
}
head.appendChild(createTitleElement('Fifth title'));
expect('Fifth title', document.title);
}
</script>
</head>
<body>
<p>Test for <a href='http://bugs.webkit.org/show_bug.cgi?id=11692'>http://bugs.webkit.org/show_bug.cgi?id=11692</a>.
If the title has been explicitly set via document.title, any further <title> tags parsed should not effect
the document title.</p>
<hr>
<div id='console'/>
<script>
test();
</script>
</body>
</html>