substance
Version:
Substance is a JavaScript library for web-based content editing. It provides building blocks for realizing custom text editors and web-based publishing systems.
87 lines (72 loc) • 2.56 kB
JavaScript
import { module } from 'substance-test'
import { KeyboardManager } from 'substance'
const test = module('KeyboardManager')
test('parseCombo(A)', (t) => {
let combo = KeyboardManager.parseCombo('A')
t.equal(combo, '65', 'combo should be parsed correctly')
t.end()
})
test('parseCombo() is case-invariant', (t) => {
let combo1 = KeyboardManager.parseCombo('A')
let combo2 = KeyboardManager.parseCombo('a')
t.equal(combo1, combo2, 'both combos should be the same')
t.end()
})
test('parseCombo(Ctrl+A)', (t) => {
let combo = KeyboardManager.parseCombo('Ctrl+A')
t.equal(combo, 'CTRL+65', 'combo should be parsed correctly')
t.end()
})
test('parseCombo() should be invariant regarding order of modifiers', (t) => {
let combo1 = KeyboardManager.parseCombo('Ctrl+Shift+A')
let combo2 = KeyboardManager.parseCombo('Shift+Ctrl+A')
t.equal(combo1, combo2, 'both combos should be the same')
t.end()
})
test('parseCombo(Alt+A)', (t) => {
let combo = KeyboardManager.parseCombo('Alt+A')
t.equal(combo, 'ALT+65', 'combo should be parsed correctly')
t.end()
})
test('parseCombo(AltGr+A)', (t) => {
let combo = KeyboardManager.parseCombo('AltGr+A')
t.equal(combo, 'ALTGR+65', 'combo should be parsed correctly')
t.end()
})
test('parseCombo(Cmd+A)', (t) => {
let combo = KeyboardManager.parseCombo('Cmd+A')
t.equal(combo, 'META+65', 'combo should be parsed correctly')
t.end()
})
/* TODO we need to implement parseKeyEvent for these
test('parseCombo(MediaNextTrack)', (t) => {
let combo = KeyboardManager.parseCombo('MediaNextTrack')
t.equal(combo, 'MEDIANEXTTRACK', 'combo should be parsed correctly')
t.end()
})
test('parseCombo(MediaPlayPause)', (t) => {
let combo = KeyboardManager.parseCombo('MediaPlayPause')
t.equal(combo, 'MEDIAPLAYPAUSE', 'combo should be parsed correctly')
t.end()
})
test('parseCombo(MediaPreviousTrack)', (t) => {
let combo = KeyboardManager.parseCombo('MediaPreviousTrack')
t.equal(combo, 'MEDIAPREVIOUSTRACK', 'combo should be parsed correctly')
t.end()
})
test('parseCombo(MediaStop)', (t) => {
let combo = KeyboardManager.parseCombo('MediaStop')
t.equal(combo, 'MEDIASTOP', 'combo should be parsed correctly')
t.end()
})
*/
test('parseCombo(Shift+A)', (t) => {
let combo = KeyboardManager.parseCombo('Shift+A')
t.equal(combo, 'SHIFT+65', 'combo should be parsed correctly')
t.end()
})
test('parseCombo(Super+A)', (t) => {
let combo = KeyboardManager.parseCombo('Super+A')
t.equal(combo, 'META+65', 'combo should be parsed correctly')
t.end()
})