diff --git a/Gruntfile.js b/Gruntfile.js index e3146a5..d7ee290 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -13,7 +13,10 @@ module.exports = function(grunt) { }, dalek: { test: { - src: 'tests/keys.js' + src: [ + 'tests/shortcuts.js', + 'tests/inner-nav.js' + ] } } }); @@ -21,6 +24,6 @@ module.exports = function(grunt) { grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-dalek'); - grunt.registerTask('default', ['uglify', 'dalek']); + grunt.registerTask('default', ['uglify']); }; \ No newline at end of file diff --git a/tests/inner-nav.js b/tests/inner-nav.js new file mode 100644 index 0000000..5b077d4 --- /dev/null +++ b/tests/inner-nav.js @@ -0,0 +1,10 @@ +module.exports = { + // Right + 'Right Arrow key is switching .next to .active': function (test) { + test + .open('themes/ribbon/index.html?full#20') + .sendKeys('body', '\uE014') // Right + .assert.attr('[id="20"] li:nth-child(2)', 'class', 'next active', 'First .next is .active') + .done(); + } +}; \ No newline at end of file diff --git a/tests/keys.js b/tests/shortcuts.js similarity index 56% rename from tests/keys.js rename to tests/shortcuts.js index a517707..d614533 100644 --- a/tests/keys.js +++ b/tests/shortcuts.js @@ -3,16 +3,18 @@ module.exports = { test .open('themes/ribbon/index.html') .sendKeys('body', '\uE035') // F5 - .assert.attr('body', 'class', 'full') + .assert.attr('body', 'class', 'full', 'Mode is full') .done(); }, + // F5 'Body class is switching from `full` to `list` on F5': function (test) { test .open('themes/ribbon/index.html?full') .sendKeys('body', '\uE035') // F5 - .assert.attr('body', 'class', 'list') + .assert.attr('body', 'class', 'list', 'Mode is list') .done(); }, + // Cmd Alt P — how to test multiple keys? // 'Body class is switching from `list` to `full` on Cmd Alt P': function (test) { // test // .open('themes/ribbon/index.html') @@ -20,32 +22,45 @@ module.exports = { // .assert.attr('body', 'class', 'full') // .done(); // }, + // Esc 'Body class is switching from `full` to `list` on Esc': function (test) { test .open('themes/ribbon/index.html?full') .sendKeys('body', '\uE00C') // Esc - .assert.attr('body', 'class', 'list') + .assert.attr('body', 'class', 'list', 'Mode is list') .done(); }, - 'End key works as expected': function (test) { + // End + 'End key select the last slide': function (test) { test .open('themes/ribbon/index.html') .sendKeys('body', '\uE010') // End - .assert.attr('.slide:last-of-type', 'class', 'slide active') + .assert.attr('.slide:last-of-type', 'class', 'slide active', 'Last slide is active') .done(); }, - 'Home key works as expected': function (test) { + // Home + 'Home key select the first slide': function (test) { test .open('themes/ribbon/index.html#20') .sendKeys('body', '\uE011') // Home - .assert.attr('.slide:first-of-type', 'class', 'slide active') + .assert.attr('.slide:first-of-type', 'class', 'slide active', 'First slide is active') .done(); }, - 'Enter is not opening slide if there’s no current': function (test) { + // Enter + 'Enter is opening current slide': function (test) { + test + .open('themes/ribbon/index.html#1') + .sendKeys('body', '\uE007') // Enter + .assert.attr('body', 'class', 'full', 'Full mode') + .assert.attr('[id="1"]', 'class', 'slide active', 'Slide #1 is active') + .done(); + }, + // Enter + 'Enter is not opening any slide if there’s no current': function (test) { test .open('themes/ribbon/index.html') .sendKeys('body', '\uE007') // Enter - .assert.attr('body', 'class', 'list') + .assert.attr('body', 'class', 'list', 'Mode is list') .done(); } // uE004 Tab