Commit 573390bf authored by ziran.sun@samsung.com's avatar ziran.sun@samsung.com

Clear the suggested value while setting value for <select> element.

R=isherman@chromium.org, tkent@chromium.org
BUG=380603

Review URL: https://codereview.chromium.org/319443003

git-svn-id: svn://svn.chromium.org/blink/trunk@175768 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent c8759657
......@@ -14,6 +14,10 @@ After setting suggestedValue:
| "internals.suggestedValue(input): suggested value"
| "input.selectionStart: 0"
| "input.selectionEnd: 0"
| "textarea.value: initial value"
| "internals.suggestedValue(textarea): suggested value"
| "select.value: "
| "internals.suggestedValue(select): TX"
After setting value:
| <input>
......@@ -29,4 +33,8 @@ After setting value:
| "internals.suggestedValue(input): "
| "input.selectionStart: 9"
| "input.selectionEnd: 9"
| "textarea.value: new value"
| "internals.suggestedValue(textarea): "
| "select.value: CA"
| "internals.suggestedValue(select): "
| "PASS"
......@@ -2,11 +2,17 @@
<html>
<body>
<p id="description">This test setting a value clears suggested value.</p>
<pre><input id="test" type="text" value="initial value"></pre>
<pre><input id="test" type="text" value="initial value"><br>
<textarea id="textarea"></textarea><br>
<select id="select"><option>CA</option><option>TX</option></select></pre>
<script src="../../resources/dump-as-markup.js"></script>
<script>
var input = document.getElementById('test');
var textarea = document.getElementById('textarea');
textarea.value = "initial value";
var select = document.getElementById('select');
select.selectedIndex = -1;
var result = document.getElementById('result');
if (!window.internals)
testFailed('This test requires internals object');
......@@ -15,6 +21,8 @@ else {
input.selectionStart = input.selectionEnd = 0;
internals.setSuggestedValue(input, 'suggested value');
internals.setSuggestedValue(textarea, 'suggested value');
internals.setSuggestedValue(select, 'TX');
Markup.description(document.getElementById('description').textContent)
......@@ -30,16 +38,36 @@ else {
addTextResult('internals.suggestedValue(input)');
addTextResult('input.selectionStart');
addTextResult('input.selectionEnd');
addTextResult('textarea.value');
addTextResult('internals.suggestedValue(textarea)');
addTextResult('select.value');
addTextResult('internals.suggestedValue(select)');
}
function getSelectedValues(select) {
var selectedValues = [];
for (var i = 0; i < select.options.length; i++) {
var option = select.options[i];
if (option.selected)
selectedValues.push(option.value);
}
return selectedValues.join(',');
}
log();
Markup.dump(input.parentNode, 'After setting suggestedValue');
input.value = 'new value';
textarea.value = 'new value';
select.value = 'CA';
log();
var innerTextValue = internals.shadowRoot(input).firstChild.innerText;
addText(innerTextValue == 'new value' ? 'PASS' : 'FAIL');
var innerTextAreaValue = internals.shadowRoot(textarea).firstChild.innerText;
var selectedValues = getSelectedValues(select);
addText(innerTextValue == 'new value' &&
innerTextAreaValue == 'new value' &&
selectedValues == 'CA' ? 'PASS' : 'FAIL');
Markup.dump(input.parentNode, 'After setting value');
}
......
......@@ -258,6 +258,7 @@ void HTMLSelectElement::setValue(const String &value, bool sendEvents)
}
int previousSelectedIndex = selectedIndex();
setSuggestedIndex(-1);
setSelectedIndex(optionIndex);
if (sendEvents && previousSelectedIndex != selectedIndex()) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment