Modify search autocomplete to respect spaces
The tokenizing regex for search autocomplete no longer strips away trailing whitespace. This fixes cases like this: http://imgur.com/a/wUYP5 Bug: Issue 4842 Change-Id: If5f33ae18eaa08676fd504a7cf2f6d81029ecb7a
This commit is contained in:
@@ -80,7 +80,7 @@
|
||||
|
||||
var MAX_AUTOCOMPLETE_RESULTS = 10;
|
||||
|
||||
var TOKENIZE_REGEX = /(?:[^\s"]+|"[^"]*")+/g;
|
||||
var TOKENIZE_REGEX = /(?:[^\s"]+|"[^"]*")+\s*/g;
|
||||
|
||||
Polymer({
|
||||
is: 'gr-search-bar',
|
||||
|
@@ -129,61 +129,61 @@ limitations under the License.
|
||||
element.$.restAPI.getSuggestedProjects.restore();
|
||||
});
|
||||
|
||||
test('Autocompletes accounts',
|
||||
function(done) {
|
||||
return element._getSearchSuggestions('owner:fr')
|
||||
.then(function(suggestions) {
|
||||
assert.equal(suggestions[0].value, 'owner:"fred <fred@goog.co>"');
|
||||
done();
|
||||
});
|
||||
test('Autocompletes accounts', function(done) {
|
||||
element._getSearchSuggestions('owner:fr').then(function(s) {
|
||||
assert.equal(s[0].value, 'owner:"fred <fred@goog.co>"');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
test('Autocompletes groups',
|
||||
function(done) {
|
||||
return element._getSearchSuggestions('ownerin:pol')
|
||||
.then(function(suggestions) {
|
||||
assert.equal(suggestions[0].value, 'ownerin:Polygerrit');
|
||||
done();
|
||||
});
|
||||
test('Autocompletes groups', function(done) {
|
||||
element._getSearchSuggestions('ownerin:pol').then(function(s) {
|
||||
assert.equal(s[0].value, 'ownerin:Polygerrit');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
test('Autocompletes projects',
|
||||
function(done) {
|
||||
return element._getSearchSuggestions('project:pol')
|
||||
.then(function(suggestions) {
|
||||
assert.equal(suggestions[0].value, 'project:Polygerrit');
|
||||
done();
|
||||
});
|
||||
test('Autocompletes projects', function(done) {
|
||||
element._getSearchSuggestions('project:pol').then(function(s) {
|
||||
assert.equal(s[0].value, 'project:Polygerrit');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
test('Autocompletes simple searches',
|
||||
function(done) {
|
||||
return element._getSearchSuggestions('is:o')
|
||||
.then(function(suggestions) {
|
||||
assert.equal(suggestions[0].name, 'is:open');
|
||||
assert.equal(suggestions[0].value, 'is:open');
|
||||
assert.equal(suggestions[1].name, 'is:owner');
|
||||
assert.equal(suggestions[1].value, 'is:owner');
|
||||
done();
|
||||
});
|
||||
test('Autocompletes simple searches', function(done) {
|
||||
element._getSearchSuggestions('is:o').then(function(s) {
|
||||
assert.equal(s[0].name, 'is:open');
|
||||
assert.equal(s[0].value, 'is:open');
|
||||
assert.equal(s[1].name, 'is:owner');
|
||||
assert.equal(s[1].value, 'is:owner');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
test('Does not autocomplete with no match',
|
||||
function(done) {
|
||||
return element._getSearchSuggestions('asdasdasdasd')
|
||||
.then(function(suggestions) {
|
||||
assert.equal(suggestions.length, 0);
|
||||
done();
|
||||
});
|
||||
test('Does not autocomplete with no match', function(done) {
|
||||
element._getSearchSuggestions('asdasdasdasd').then(function(s) {
|
||||
assert.equal(s.length, 0);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
test('Autocomplete doesnt override exact matches to input',
|
||||
function(done) {
|
||||
return element._getSearchSuggestions('ownerin:gerrit')
|
||||
.then(function(suggestions) {
|
||||
assert.equal(suggestions[0].value, 'ownerin:gerrit');
|
||||
done();
|
||||
});
|
||||
element._getSearchSuggestions('ownerin:gerrit').then(function(s) {
|
||||
assert.equal(s[0].value, 'ownerin:gerrit');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
test('Autocomplete respects spaces', function(done) {
|
||||
element._getSearchSuggestions('is:ope').then(function(s) {
|
||||
assert.equal(s[0].name, 'is:open');
|
||||
assert.equal(s[0].value, 'is:open');
|
||||
element._getSearchSuggestions('is:ope ').then(function(s) {
|
||||
assert.equal(s.length, 0);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
Reference in New Issue
Block a user