diff --git a/src/common.js b/src/common.js index 276a16b70d..214ace4189 100644 --- a/src/common.js +++ b/src/common.js @@ -1176,6 +1176,9 @@ name = value; value = ''; } + if (name === undefined || name === null) { + name = ''; + } var field; if (!(name.toLowerCase() in this.strings) && !(name in this.fields)) { diff --git a/tests/sao.js b/tests/sao.js index 90b61cbf41..41c12a748a 100644 --- a/tests/sao.js +++ b/tests/sao.js @@ -2109,6 +2109,30 @@ }); + QUnit.test('DomainParser.completion', function() { + var compare = Sao.common.compare; + var parser = new Sao.common.DomainParser({ + 'name': { + 'string': 'Name', + 'name': 'name', + 'type': 'char' + } + }); + + [ + ['Nam', ["Name: "]], + ['Name:', ['Name: ']], + ['Name: foo', []], + ['Name: !=', []], + ['Name: !=foo', []], + ].forEach(function(test) { + var value = test[0]; + var expected = test[1]; + QUnit.ok(compare(parser.completion(value), expected), + 'completion(' + value + ')'); + }); + }); + /* QUnit.test('CRUD', function() { var run_tests = function() {