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 MAX_AUTOCOMPLETE_RESULTS = 10;
|
||||||
|
|
||||||
var TOKENIZE_REGEX = /(?:[^\s"]+|"[^"]*")+/g;
|
var TOKENIZE_REGEX = /(?:[^\s"]+|"[^"]*")+\s*/g;
|
||||||
|
|
||||||
Polymer({
|
Polymer({
|
||||||
is: 'gr-search-bar',
|
is: 'gr-search-bar',
|
||||||
|
@@ -129,61 +129,61 @@ limitations under the License.
|
|||||||
element.$.restAPI.getSuggestedProjects.restore();
|
element.$.restAPI.getSuggestedProjects.restore();
|
||||||
});
|
});
|
||||||
|
|
||||||
test('Autocompletes accounts',
|
test('Autocompletes accounts', function(done) {
|
||||||
function(done) {
|
element._getSearchSuggestions('owner:fr').then(function(s) {
|
||||||
return element._getSearchSuggestions('owner:fr')
|
assert.equal(s[0].value, 'owner:"fred <fred@goog.co>"');
|
||||||
.then(function(suggestions) {
|
done();
|
||||||
assert.equal(suggestions[0].value, 'owner:"fred <fred@goog.co>"');
|
});
|
||||||
done();
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test('Autocompletes groups',
|
test('Autocompletes groups', function(done) {
|
||||||
function(done) {
|
element._getSearchSuggestions('ownerin:pol').then(function(s) {
|
||||||
return element._getSearchSuggestions('ownerin:pol')
|
assert.equal(s[0].value, 'ownerin:Polygerrit');
|
||||||
.then(function(suggestions) {
|
done();
|
||||||
assert.equal(suggestions[0].value, 'ownerin:Polygerrit');
|
});
|
||||||
done();
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test('Autocompletes projects',
|
test('Autocompletes projects', function(done) {
|
||||||
function(done) {
|
element._getSearchSuggestions('project:pol').then(function(s) {
|
||||||
return element._getSearchSuggestions('project:pol')
|
assert.equal(s[0].value, 'project:Polygerrit');
|
||||||
.then(function(suggestions) {
|
done();
|
||||||
assert.equal(suggestions[0].value, 'project:Polygerrit');
|
});
|
||||||
done();
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test('Autocompletes simple searches',
|
test('Autocompletes simple searches', function(done) {
|
||||||
function(done) {
|
element._getSearchSuggestions('is:o').then(function(s) {
|
||||||
return element._getSearchSuggestions('is:o')
|
assert.equal(s[0].name, 'is:open');
|
||||||
.then(function(suggestions) {
|
assert.equal(s[0].value, 'is:open');
|
||||||
assert.equal(suggestions[0].name, 'is:open');
|
assert.equal(s[1].name, 'is:owner');
|
||||||
assert.equal(suggestions[0].value, 'is:open');
|
assert.equal(s[1].value, 'is:owner');
|
||||||
assert.equal(suggestions[1].name, 'is:owner');
|
done();
|
||||||
assert.equal(suggestions[1].value, 'is:owner');
|
});
|
||||||
done();
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test('Does not autocomplete with no match',
|
test('Does not autocomplete with no match', function(done) {
|
||||||
function(done) {
|
element._getSearchSuggestions('asdasdasdasd').then(function(s) {
|
||||||
return element._getSearchSuggestions('asdasdasdasd')
|
assert.equal(s.length, 0);
|
||||||
.then(function(suggestions) {
|
done();
|
||||||
assert.equal(suggestions.length, 0);
|
});
|
||||||
done();
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test('Autocomplete doesnt override exact matches to input',
|
test('Autocomplete doesnt override exact matches to input',
|
||||||
function(done) {
|
function(done) {
|
||||||
return element._getSearchSuggestions('ownerin:gerrit')
|
element._getSearchSuggestions('ownerin:gerrit').then(function(s) {
|
||||||
.then(function(suggestions) {
|
assert.equal(s[0].value, 'ownerin:gerrit');
|
||||||
assert.equal(suggestions[0].value, 'ownerin:gerrit');
|
done();
|
||||||
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