sanitize MenuItem options
This commit is contained in:
parent
fdf3f6ce30
commit
b7e078e98d
2 changed files with 9 additions and 2 deletions
|
@ -7,6 +7,11 @@ let nextCommandId = 0
|
||||||
const MenuItem = function (options) {
|
const MenuItem = function (options) {
|
||||||
const {Menu} = require('electron')
|
const {Menu} = require('electron')
|
||||||
|
|
||||||
|
// Clone and sanitize the provided options
|
||||||
|
options = Object.assign({}, options)
|
||||||
|
delete options.overrideProperty
|
||||||
|
delete options.overrideReadOnlyProperty
|
||||||
|
|
||||||
Object.assign(this, options)
|
Object.assign(this, options)
|
||||||
|
|
||||||
if (this.submenu != null && this.submenu.constructor !== Menu) {
|
if (this.submenu != null && this.submenu.constructor !== Menu) {
|
||||||
|
|
|
@ -431,7 +431,7 @@ describe('menu module', function () {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe.only('MenuItem with custom properties in constructor', function () {
|
describe('MenuItem with custom properties in constructor', function () {
|
||||||
it('preserves the custom properties', function () {
|
it('preserves the custom properties', function () {
|
||||||
var template = [{
|
var template = [{
|
||||||
label: 'menu 1',
|
label: 'menu 1',
|
||||||
|
@ -442,11 +442,13 @@ describe.only('MenuItem with custom properties in constructor', function () {
|
||||||
var menu = Menu.buildFromTemplate(template)
|
var menu = Menu.buildFromTemplate(template)
|
||||||
menu.items[0].submenu.append(new MenuItem({
|
menu.items[0].submenu.append(new MenuItem({
|
||||||
label: 'item 1',
|
label: 'item 1',
|
||||||
customProp: 'bar'
|
customProp: 'bar',
|
||||||
|
overrideProperty: 'oops not allowed'
|
||||||
}))
|
}))
|
||||||
|
|
||||||
assert.equal(menu.items[0].customProp, 'foo')
|
assert.equal(menu.items[0].customProp, 'foo')
|
||||||
assert.equal(menu.items[0].submenu.items[0].label, 'item 1')
|
assert.equal(menu.items[0].submenu.items[0].label, 'item 1')
|
||||||
assert.equal(menu.items[0].submenu.items[0].customProp, 'bar')
|
assert.equal(menu.items[0].submenu.items[0].customProp, 'bar')
|
||||||
|
assert.notEqual(typeof menu.items[0].submenu.items[0].overrideProperty, 'string')
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in a new issue