added pages and keyboard navigation
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
|
||||
var assert = require('assert');
|
||||
var KeyCombo = require('../lib/key-combo');
|
||||
|
||||
|
||||
describe('KeyCombo', function() {
|
||||
|
||||
|
||||
describe('.parseComboStr', function() {
|
||||
|
||||
it('can parse combo strings', function() {
|
||||
var comboArr = KeyCombo.parseComboStr('a + b');
|
||||
|
||||
assert.equal(comboArr[0][0], 'a');
|
||||
assert.equal(comboArr[0][1], 'b');
|
||||
});
|
||||
|
||||
it('can parse combo strings containing combo deliminators', function() {
|
||||
var comboArr = KeyCombo.parseComboStr('a + b > c + d');
|
||||
|
||||
assert.equal(comboArr[0][0], 'a');
|
||||
assert.equal(comboArr[0][1], 'b');
|
||||
assert.equal(comboArr[1][0], 'c');
|
||||
assert.equal(comboArr[1][1], 'd');
|
||||
});
|
||||
|
||||
it('can parse combo strings containing sequence deliminators');
|
||||
});
|
||||
|
||||
|
||||
describe('#check', function() {
|
||||
|
||||
it('can check the combo against an array of key names', function() {
|
||||
var keyCombo1 = new KeyCombo('a + b');
|
||||
var keyCombo2 = new KeyCombo('a + \\+');
|
||||
|
||||
assert.ok(keyCombo1.check(['a', 'b']));
|
||||
assert.ok(keyCombo1.check(['b', 'a']));
|
||||
assert.ok(keyCombo1.check(['a', 'b', 'c']));
|
||||
assert.ok(keyCombo1.check(['z', 'a', 'b']));
|
||||
assert.ok(keyCombo1.check(['z', 'a', 'b', 'c']));
|
||||
|
||||
assert.ok(keyCombo2.check(['a', '+']));
|
||||
});
|
||||
|
||||
it('can check the combo containing combo deliminators against an array of key names', function() {
|
||||
var keyCombo = new KeyCombo('a + b > c + d');
|
||||
|
||||
assert.ok(keyCombo.check(['a', 'b', 'c', 'd']));
|
||||
assert.ok(keyCombo.check(['b', 'a', 'd', 'c']));
|
||||
assert.ok(keyCombo.check(['a', 'b', 'e', 'c', 'd', 'f']));
|
||||
assert.ok(keyCombo.check(['z', 'a', 'b', 'y', 'c', 'd']));
|
||||
assert.ok(keyCombo.check(['z', 'a', 'b', 'y', 'x', 'c', 'd', 'w']));
|
||||
|
||||
assert.equal(keyCombo.check(['c', 'd', 'a', 'b']), false);
|
||||
assert.equal(keyCombo.check(['d', 'c', 'b', 'a']), false);
|
||||
});
|
||||
|
||||
it('can check the combo containing sequence deliminators against an array of key names');
|
||||
});
|
||||
describe('#isEqual', function() {
|
||||
|
||||
it('can correctly equate two the combo to a given one', function() {
|
||||
var keyCombo1 = new KeyCombo('a + b');
|
||||
var keyCombo2 = new KeyCombo('a + b');
|
||||
var keyCombo3 = new KeyCombo('b + a');
|
||||
var keyCombo4 = new KeyCombo('a + b + c');
|
||||
var keyCombo5 = new KeyCombo('a > b');
|
||||
|
||||
assert.ok(keyCombo1.isEqual(keyCombo2));
|
||||
assert.ok(keyCombo1.isEqual(keyCombo3));
|
||||
assert.equal(keyCombo1.isEqual(keyCombo4), false);
|
||||
assert.equal(keyCombo1.isEqual(keyCombo5), false);
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user