<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
</head>
<body>
<p>Tests for value sanitization algorithm.</p>
<div id="console"></div>
<script>
var input;

debug('');
debug('Email with multiple:');
input = document.createElement('input');
input.multiple = true;
input.type = 'email';
input.setAttribute('value', ' tkent@chromium.org, tkent@example.!!!  ');
shouldBe('input.value', '"tkent@chromium.org,tkent@example.!!!"');
debug('Email without multiple:');
input = document.createElement('input');
input.multiple = false;
input.type = 'email';
input.setAttribute('value', ' tkent@chromium.org, tkent@example.***  \r\n');
shouldBe('input.value', '"tkent@chromium.org, tkent@example.***"');

debug('');
debug('Number:');
input = document.createElement('input');
input.setAttribute('value', '65536');
input.type = 'number';
shouldBe('input.value', '"65536"');
shouldBe('input.value = "256"; input.value', '"256"');
shouldBe('input.value = ""; input.value', '""');


debug('');
debug('Range:');
input = document.createElement('input');
input.type = 'text';
input.value = ':)';
input.type = 'range';
shouldBe('input.value', '"50"');

debug('');
debug('Text:');
var container = document.createElement('div');
document.body.appendChild(container);
container.innerHTML = '<input type="text" id="text" value="\n\r foo bar \n\r\n">';
input = document.getElementById('text');
shouldBe('input.value', '" foo bar "');
input.focus();
document.execCommand('SelectAll');
shouldBe('document.getSelection().toString()', '" foo bar "');

// FIXME: Add more sanitization tests.
// https://bugs.webkit.org/show_bug.cgi?id=37024

container.innerHTML = '';

</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>
