Fix text undefined error
This commit fixes the 'text is undefined' error in gr-autocomplete by setting a default value for text, as well as catching the case where text is set to undefined. This commit also disables the built-in autocomplete on the input element in the gr-autocomplete element to avoid redundancy. Bug: Issue 4276 Change-Id: Ia4d084068da223d10273110a402690e3b0af2e94
This commit is contained in:
@@ -55,7 +55,8 @@ limitations under the License.
|
|||||||
bind-value="{{text}}"
|
bind-value="{{text}}"
|
||||||
placeholder="[[placeholder]]"
|
placeholder="[[placeholder]]"
|
||||||
on-keydown="_handleInputKeydown"
|
on-keydown="_handleInputKeydown"
|
||||||
on-focus="_updateSuggestions" />
|
on-focus="_updateSuggestions"
|
||||||
|
autocomplete="off" />
|
||||||
<div
|
<div
|
||||||
id="suggestions"
|
id="suggestions"
|
||||||
hidden$="[[_computeSuggestionsHidden(_suggestions)]]">
|
hidden$="[[_computeSuggestionsHidden(_suggestions)]]">
|
||||||
|
|||||||
@@ -64,6 +64,7 @@
|
|||||||
|
|
||||||
text: {
|
text: {
|
||||||
type: String,
|
type: String,
|
||||||
|
value: '',
|
||||||
observer: '_updateSuggestions',
|
observer: '_updateSuggestions',
|
||||||
notify: true,
|
notify: true,
|
||||||
},
|
},
|
||||||
@@ -131,7 +132,7 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
_updateSuggestions: function() {
|
_updateSuggestions: function() {
|
||||||
if (this._disableSuggestions) { return; }
|
if (!this.text || this._disableSuggestions) { return; }
|
||||||
if (this.text.length < this.threshold) {
|
if (this.text.length < this.threshold) {
|
||||||
this._suggestions = [];
|
this._suggestions = [];
|
||||||
this.value = null;
|
this.value = null;
|
||||||
|
|||||||
@@ -215,6 +215,13 @@ limitations under the License.
|
|||||||
assert.equal(element._computeClass(true), 'borderless');
|
assert.equal(element._computeClass(true), 'borderless');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('undefined or empty text results in no suggestions', function() {
|
||||||
|
sinon.spy(element, '_updateSuggestions');
|
||||||
|
element.text = undefined;
|
||||||
|
assert(element._updateSuggestions.calledOnce);
|
||||||
|
assert.equal(element._suggestions.length, 0);
|
||||||
|
});
|
||||||
|
|
||||||
test('multi completes only the last part of the query', function(done) {
|
test('multi completes only the last part of the query', function(done) {
|
||||||
var promise;
|
var promise;
|
||||||
var queryStub = sinon.stub()
|
var queryStub = sinon.stub()
|
||||||
|
|||||||
Reference in New Issue
Block a user