| 1 | describe("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 | }); |
|---|