Dotclear

source: tests/functional/spec/page_tabs.js @ 1737:8c9305c14ab4

Revision 1737:8c9305c14ab4, 2.7 KB checked in by kevin@…, 12 years ago (diff)

Ticket #1452 : Les ancres n'afficher pas le bonne onglet au chargement
+ des tests unitaire pour pageTabs.js

Line 
1describe("tabs method (admin/js/pageTabs.js)", function() {
2     
3     it("Construct tabs using div content", function() {
4         
5          loadFixtures('tabs.html');
6         
7          expect($('#tab-1')).toBeVisible();
8          expect($('#tab-2')).toBeVisible();
9          expect($('#tab-3')).toBeVisible();
10         
11          expect($('.part-tabs')).not.toExist();
12         
13          $.pageTabs('tab-1');
14         
15          expect($('#tab-1')).toBeVisible();
16          expect($('#tab-2')).not.toBeVisible();
17          expect($('#tab-3')).not.toBeVisible();
18         
19          expect($('.part-tabs ul li#part-tabs-tab-1 a[href=#tab-1]')).toExist();
20          expect($('.part-tabs ul li#part-tabs-tab-2 a[href=#tab-2]')).toExist();
21          expect($('.part-tabs ul li#part-tabs-tab-3 a[href=#tab-3]')).toExist();
22     
23          expect($('.part-tabs ul li#part-tabs-tab-1')).toHaveClass('part-tabs-active');
24         
25     });
26     
27     it("Change tabs when changing the hash", function() {
28         
29          runs(function() {       
30            loadFixtures('tabs-iframe.html');
31        });
32         
33          waitsFor(function() {
34            return $("#testtab").contents().find('#tab-3').get(0);
35        }, 10000);
36         
37          runs(function() {
38               f$ = $("#testtab").get(0).contentWindow.$;
39               f$.pageTabs('tab-1');
40
41               expect(f$('#tab-1').get(0)).toBeVisible();
42               expect(f$('#tab-2').get(0)).not.toBeVisible();
43               
44               expect(f$('.part-tabs ul li#part-tabs-tab-1').get(0)).toHaveClass('part-tabs-active');
45               expect(f$('.part-tabs ul li#part-tabs-tab-2').get(0)).not.toHaveClass('part-tabs-active');
46
47            $("#testtab").attr('src', $("#testtab").attr('src')+'#tab-2');
48        });
49         
50          waitsFor(function() {
51               f$ = $("#testtab").get(0).contentWindow.$;
52            return f$('#tab-1').is(':not(:visible)');
53        }, 10000);
54         
55          runs(function() {
56               f$ = $("#testtab").get(0).contentWindow.$;
57               
58          expect(f$('#tab-2').get(0)).toBeVisible();
59
60               expect(f$('.part-tabs ul li#part-tabs-tab-1').get(0)).not.toHaveClass('part-tabs-active');
61               expect(f$('.part-tabs ul li#part-tabs-tab-2').get(0)).toHaveClass('part-tabs-active');
62               
63        });
64         
65     });
66     
67     it("Load the correct tab with the correct hash", function() {
68         
69          runs(function() {       
70            loadFixtures('tabs-iframe.html');
71            $("#testtab").attr('src', $("#testtab").attr('src')+'#tab-3');
72        });
73         
74          waitsFor(function() {
75               cond1 = $("#testtab").attr('src').split('#')[1] != '';
76               cond2 = $("#testtab").contents().find('#tab-3').get(0);
77            return cond1 && cond2;
78        }, 10000);
79         
80          runs(function() {
81               f$ = $("#testtab").get(0).contentWindow.$;
82               f$.pageTabs('tab-1');
83               
84               expect(f$('#tab-1').get(0)).not.toBeVisible();
85               expect(f$('#tab-3').get(0)).toBeVisible();
86               
87               expect(f$('.part-tabs ul li#part-tabs-tab-1').get(0)).not.toHaveClass('part-tabs-active');
88               expect(f$('.part-tabs ul li#part-tabs-tab-3').get(0)).toHaveClass('part-tabs-active');
89        });
90         
91     });
92});
Note: See TracBrowser for help on using the repository browser.

Sites map