api-global-shortcut-spec.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. const { globalShortcut } = require('electron').remote
  2. const chai = require('chai')
  3. const dirtyChai = require('dirty-chai')
  4. const isCI = require('electron').remote.getGlobal('isCi')
  5. const { expect } = chai
  6. chai.use(dirtyChai)
  7. describe('globalShortcut module', () => {
  8. before(function () {
  9. if (isCI && process.platform === 'win32') {
  10. this.skip()
  11. }
  12. })
  13. beforeEach(() => {
  14. globalShortcut.unregisterAll()
  15. })
  16. it('can register and unregister single accelerators', () => {
  17. const accelerator = 'CmdOrCtrl+A+B+C'
  18. expect(globalShortcut.isRegistered(accelerator)).to.be.false()
  19. globalShortcut.register(accelerator, () => {})
  20. expect(globalShortcut.isRegistered(accelerator)).to.be.true()
  21. globalShortcut.unregister(accelerator)
  22. expect(globalShortcut.isRegistered(accelerator)).to.be.false()
  23. expect(globalShortcut.isRegistered(accelerator)).to.be.false()
  24. globalShortcut.register(accelerator, () => {})
  25. expect(globalShortcut.isRegistered(accelerator)).to.be.true()
  26. globalShortcut.unregisterAll()
  27. expect(globalShortcut.isRegistered(accelerator)).to.be.false()
  28. })
  29. it('can register and unregister multiple accelerators', () => {
  30. const accelerators = ['CmdOrCtrl+X', 'CmdOrCtrl+Y']
  31. expect(globalShortcut.isRegistered(accelerators[0])).to.be.false()
  32. expect(globalShortcut.isRegistered(accelerators[1])).to.be.false()
  33. globalShortcut.registerAll(accelerators, () => {})
  34. expect(globalShortcut.isRegistered(accelerators[0])).to.be.true()
  35. expect(globalShortcut.isRegistered(accelerators[1])).to.be.true()
  36. globalShortcut.unregisterAll()
  37. expect(globalShortcut.isRegistered(accelerators[0])).to.be.false()
  38. expect(globalShortcut.isRegistered(accelerators[1])).to.be.false()
  39. })
  40. })