summaryrefslogtreecommitdiffstats
path: root/doc/backends/deckjs/deck.js/test/spec.menu.js
diff options
context:
space:
mode:
Diffstat (limited to 'doc/backends/deckjs/deck.js/test/spec.menu.js')
-rw-r--r--doc/backends/deckjs/deck.js/test/spec.menu.js83
1 files changed, 83 insertions, 0 deletions
diff --git a/doc/backends/deckjs/deck.js/test/spec.menu.js b/doc/backends/deckjs/deck.js/test/spec.menu.js
new file mode 100644
index 00000000..3abca9fc
--- /dev/null
+++ b/doc/backends/deckjs/deck.js/test/spec.menu.js
@@ -0,0 +1,83 @@
+describe('Deck JS Menu', function() {
+ var $d = $(document);
+ var dsc = defaults.selectors.container;
+
+ beforeEach(function() {
+ loadFixtures('standard.html');
+ if (Modernizr.history) {
+ history.replaceState({}, "", "#")
+ }
+ else {
+ window.location.hash = '#';
+ }
+ $.deck('.slide');
+ });
+
+ describe('showMenu()', function() {
+ it('should show the menu', function() {
+ expect($(dsc)).not.toHaveClass(defaults.classes.menu);
+ $.deck('showMenu');
+ expect($(dsc)).toHaveClass(defaults.classes.menu);
+ });
+
+ it('should do nothing if menu is already showing', function() {
+ if (Modernizr.csstransforms) {
+ $.deck('showMenu');
+ $.deck('showMenu');
+ $.deck('hideMenu');
+ expect($('.slide').attr('style')).toBeFalsy();
+ }
+ });
+ });
+
+ describe('hideMenu()', function() {
+ it('should hide the menu', function() {
+ $.deck('showMenu');
+ $.deck('hideMenu');
+ expect($(dsc)).not.toHaveClass(defaults.classes.menu);
+ });
+ });
+
+ describe('toggleMenu()', function() {
+ it('should toggle menu on and off', function() {
+ expect($(dsc)).not.toHaveClass(defaults.classes.menu);
+ $.deck('toggleMenu');
+ expect($(dsc)).toHaveClass(defaults.classes.menu);
+ $.deck('toggleMenu');
+ expect($(dsc)).not.toHaveClass(defaults.classes.menu);
+ });
+ });
+
+ describe('key bindings', function() {
+ var e;
+
+ beforeEach(function() {
+ e = jQuery.Event('keydown.deckmenu');
+ });
+
+ it('should toggle the menu if the specified key is pressed', function() {
+ e.which = 77; // m
+ $d.trigger(e);
+ expect($(dsc)).toHaveClass(defaults.classes.menu);
+ $d.trigger(e);
+ expect($(dsc)).not.toHaveClass(defaults.classes.menu);
+ });
+ });
+
+ describe('touch bindings', function() {
+ var estart, eend;
+
+ beforeEach(function() {
+ estart = jQuery.Event('touchstart.deckmenu');
+ eend = jQuery.Event('touchend.deckmenu');
+ });
+
+ it('should toggle the menu if the screen is touched', function() {
+ $.deck('getOptions').touch.doubletapWindow = Date.now() + 100000;
+ $.deck('getContainer').trigger(estart);
+ $.deck('getContainer').trigger(eend);
+ expect($(dsc)).toHaveClass(defaults.classes.menu);
+ });
+ });
+
+});