<!DOCTYPE html>
<script src="../../../resources/js-test.js"></script>
<script>
if (window.internals)
    internals.settings.setLangAttributeAwareFormControlUIEnabled(true);
else
    debug('Require testRunner.');
</script>

<input id="input-ar" lang="ar-eg" type="number">
<input id="input-fr" lang="fr-fr" type="number">
<input id="input-en" lang="en-us" type="number">

<script>
function displayValueForKeyInput(inputElement, keyInputs) {
    inputElement.value = '';
    inputElement.focus();
    document.execCommand('InsertText', false, keyInputs);
    inputElement.select();
    return window.getSelection().toString();
}

debug('Arabic number input should accept ASCII digits and Arabic digits, and reject others.');
var arabicInput = document.getElementById('input-ar');
shouldBeEqualToString('displayValueForKeyInput(arabicInput, "123.4")', '123.4');
shouldBeEqualToString('displayValueForKeyInput(arabicInput, "1.23E+19")', '1.23E+19');
shouldBeEqualToString('displayValueForKeyInput(arabicInput, "1.23e-1")', '1.23e-1');
shouldBeEqualToString('displayValueForKeyInput(arabicInput, "\u0661\u0669\u0660")', '\u0661\u0669\u0660');
shouldBeEqualToString('displayValueForKeyInput(arabicInput, "acdef")', 'e');

debug('');
debug('French number input should accept ASCII digits, comma, and full stop.');
var frenchInput = document.getElementById('input-fr');
shouldBeEqualToString('displayValueForKeyInput(frenchInput, "1234.56")', '1234.56');
shouldBeEqualToString('displayValueForKeyInput(frenchInput, "1234,56")', '1234.56');

debug('');
debug('English number input should accept ASCII digits and full stop, and no comma.');
var englishInput = document.getElementById('input-en');
shouldBeEqualToString('displayValueForKeyInput(englishInput, "1234.56")', '1234.56');
shouldBeEqualToString('displayValueForKeyInput(englishInput, "-1234,56")', '-123456');
shouldBeEqualToString('displayValueForKeyInput(englishInput, " abcdef ")', 'e');
</script>
</body>