|
@@ -6,7 +6,7 @@ const { BrowserWindow, app, Menu, MenuItem } = remote
|
|
|
const roles = require('../lib/browser/api/menu-item-roles')
|
|
|
const { closeWindow } = require('./window-helpers')
|
|
|
|
|
|
-const { expect } = chai
|
|
|
+const { expect, assert } = chai
|
|
|
chai.use(dirtyChai)
|
|
|
|
|
|
describe('MenuItems', () => {
|
|
@@ -389,4 +389,64 @@ describe('MenuItems', () => {
|
|
|
expect(menu.items[0].submenu.items[0].overrideProperty).to.be.a('function')
|
|
|
})
|
|
|
})
|
|
|
+
|
|
|
+ describe('MenuItem accelerators', () => {
|
|
|
+ const isDarwin = () => {
|
|
|
+ return (process.platform === 'darwin')
|
|
|
+ }
|
|
|
+
|
|
|
+ it('should display modifiers correctly for simple keys', () => {
|
|
|
+ const menu = Menu.buildFromTemplate([
|
|
|
+ { label: 'text', accelerator: 'CmdOrCtrl+A' },
|
|
|
+ { label: 'text', accelerator: 'Shift+A' },
|
|
|
+ { label: 'text', accelerator: 'Alt+A' }
|
|
|
+ ])
|
|
|
+
|
|
|
+ assert.strictEqual(menu.getAcceleratorTextAt(0),
|
|
|
+ isDarwin() ? '⌘A' : 'Ctrl+A')
|
|
|
+ assert.strictEqual(menu.getAcceleratorTextAt(1),
|
|
|
+ isDarwin() ? '⇧A' : 'Shift+A')
|
|
|
+ assert.strictEqual(menu.getAcceleratorTextAt(2),
|
|
|
+ isDarwin() ? '⌥A' : 'Alt+A')
|
|
|
+ })
|
|
|
+
|
|
|
+ it('should display modifiers correctly for special keys', () => {
|
|
|
+ const menu = Menu.buildFromTemplate([
|
|
|
+ { label: 'text', accelerator: 'CmdOrCtrl+Tab' },
|
|
|
+ { label: 'text', accelerator: 'Shift+Tab' },
|
|
|
+ { label: 'text', accelerator: 'Alt+Tab' }
|
|
|
+ ])
|
|
|
+
|
|
|
+ assert.strictEqual(menu.getAcceleratorTextAt(0),
|
|
|
+ isDarwin() ? '⌘⇥\u0000' : 'Ctrl+Tab')
|
|
|
+ assert.strictEqual(menu.getAcceleratorTextAt(1),
|
|
|
+ isDarwin() ? '⇧⇥\u0000' : 'Shift+Tab')
|
|
|
+ assert.strictEqual(menu.getAcceleratorTextAt(2),
|
|
|
+ isDarwin() ? '⌥⇥\u0000' : 'Alt+Tab')
|
|
|
+ })
|
|
|
+
|
|
|
+ it('should not display modifiers twice', () => {
|
|
|
+ const menu = Menu.buildFromTemplate([
|
|
|
+ { label: 'text', accelerator: 'Shift+Shift+A' },
|
|
|
+ { label: 'text', accelerator: 'Shift+Shift+Tab' }
|
|
|
+ ])
|
|
|
+
|
|
|
+ assert.strictEqual(menu.getAcceleratorTextAt(0),
|
|
|
+ isDarwin() ? '⇧A' : 'Shift+A')
|
|
|
+ assert.strictEqual(menu.getAcceleratorTextAt(1),
|
|
|
+ isDarwin() ? '⇧⇥\u0000' : 'Shift+Tab')
|
|
|
+ })
|
|
|
+
|
|
|
+ it('should display correctly for edge cases', () => {
|
|
|
+ const menu = Menu.buildFromTemplate([
|
|
|
+ { label: 'text', accelerator: 'Control+Shift+=' },
|
|
|
+ { label: 'text', accelerator: 'Control+Plus' }
|
|
|
+ ])
|
|
|
+
|
|
|
+ assert.strictEqual(menu.getAcceleratorTextAt(0),
|
|
|
+ isDarwin() ? '⌃⇧=' : 'Ctrl+Shift+=')
|
|
|
+ assert.strictEqual(menu.getAcceleratorTextAt(1),
|
|
|
+ isDarwin() ? '⌃⇧=' : 'Ctrl+Shift+=')
|
|
|
+ })
|
|
|
+ })
|
|
|
})
|