0
|
1 describe('Deck JS Menu', function() {
|
|
2 var $d = $(document),
|
|
3 dsc = defaults.selectors.container;
|
|
4
|
|
5 beforeEach(function() {
|
|
6 loadFixtures('standard.html');
|
|
7 if (Modernizr.history) {
|
|
8 history.replaceState({}, "", "#")
|
|
9 }
|
|
10 else {
|
|
11 window.location.hash = '#';
|
|
12 }
|
|
13 $.deck('.slide');
|
|
14 });
|
|
15
|
|
16 describe('showMenu()', function() {
|
|
17 it('should show the menu', function() {
|
|
18 expect($(dsc)).not.toHaveClass(defaults.classes.menu);
|
|
19 $.deck('showMenu');
|
|
20 expect($(dsc)).toHaveClass(defaults.classes.menu);
|
|
21 });
|
|
22
|
|
23 it('should do nothing if menu is already showing', function() {
|
|
24 if (Modernizr.csstransforms) {
|
|
25 $.deck('showMenu');
|
|
26 $.deck('showMenu');
|
|
27 $.deck('hideMenu');
|
|
28 expect($('.slide').attr('style')).toBeFalsy();
|
|
29 }
|
|
30 });
|
|
31 });
|
|
32
|
|
33 describe('hideMenu()', function() {
|
|
34 it('should hide the menu', function() {
|
|
35 $.deck('showMenu');
|
|
36 $.deck('hideMenu');
|
|
37 expect($(dsc)).not.toHaveClass(defaults.classes.menu);
|
|
38 });
|
|
39 });
|
|
40
|
|
41 describe('toggleMenu()', function() {
|
|
42 it('should toggle menu on and off', function() {
|
|
43 expect($(dsc)).not.toHaveClass(defaults.classes.menu);
|
|
44 $.deck('toggleMenu');
|
|
45 expect($(dsc)).toHaveClass(defaults.classes.menu);
|
|
46 $.deck('toggleMenu');
|
|
47 expect($(dsc)).not.toHaveClass(defaults.classes.menu);
|
|
48 });
|
|
49 });
|
|
50
|
|
51 describe('key bindings', function() {
|
|
52 var e;
|
|
53
|
|
54 beforeEach(function() {
|
|
55 e = jQuery.Event('keydown.deckmenu');
|
|
56 });
|
|
57
|
|
58 it('should toggle the menu if the specified key is pressed', function() {
|
|
59 e.which = 77; // m
|
|
60 $d.trigger(e);
|
|
61 expect($(dsc)).toHaveClass(defaults.classes.menu);
|
|
62 $d.trigger(e);
|
|
63 expect($(dsc)).not.toHaveClass(defaults.classes.menu);
|
|
64 });
|
|
65 });
|
|
66 }); |