Merge pull request #4840 from atom/undefined-menu-accelerator
Undefined menu accelerator
This commit is contained in:
commit
e08b48ab48
2 changed files with 19 additions and 4 deletions
|
@ -269,7 +269,7 @@ Menu.getApplicationMenu = function() {
|
|||
Menu.sendActionToFirstResponder = bindings.sendActionToFirstResponder;
|
||||
|
||||
Menu.buildFromTemplate = function(template) {
|
||||
var insertIndex, item, j, k, key, len, len1, menu, menuItem, positionedTemplate, value;
|
||||
var insertIndex, item, j, k, key, len, len1, menu, menuItem, positionedTemplate;
|
||||
if (!Array.isArray(template)) {
|
||||
throw new TypeError('Invalid template for Menu');
|
||||
}
|
||||
|
@ -293,9 +293,9 @@ Menu.buildFromTemplate = function(template) {
|
|||
}
|
||||
menuItem = new MenuItem(item);
|
||||
for (key in item) {
|
||||
value = item[key];
|
||||
if (menuItem[key] == null) {
|
||||
menuItem[key] = value;
|
||||
// Preserve extra fields specified by user
|
||||
if (!menuItem.hasOwnProperty(key)) {
|
||||
menuItem[key] = item[key];
|
||||
}
|
||||
}
|
||||
menu.append(menuItem);
|
||||
|
|
|
@ -32,6 +32,21 @@ describe('menu module', function() {
|
|||
]);
|
||||
});
|
||||
|
||||
it('does not throw exceptions for undefined/null values', function() {
|
||||
assert.doesNotThrow(function() {
|
||||
Menu.buildFromTemplate([
|
||||
{
|
||||
label: 'text',
|
||||
accelerator: undefined
|
||||
},
|
||||
{
|
||||
label: 'text again',
|
||||
accelerator: null
|
||||
}
|
||||
]);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Menu.buildFromTemplate should reorder based on item position specifiers', function() {
|
||||
it('should position before existing item', function() {
|
||||
var menu = Menu.buildFromTemplate([
|
||||
|
|
Loading…
Add table
Reference in a new issue