1 $(function () { |
|
2 |
|
3 module("popover") |
|
4 |
|
5 test("should provide no conflict", function () { |
|
6 var popover = $.fn.popover.noConflict() |
|
7 ok(!$.fn.popover, 'popover was set back to undefined (org value)') |
|
8 $.fn.popover = popover |
|
9 }) |
|
10 |
|
11 test("should be defined on jquery object", function () { |
|
12 var div = $('<div></div>') |
|
13 ok(div.popover, 'popover method is defined') |
|
14 }) |
|
15 |
|
16 test("should return element", function () { |
|
17 var div = $('<div></div>') |
|
18 ok(div.popover() == div, 'document.body returned') |
|
19 }) |
|
20 |
|
21 test("should render popover element", function () { |
|
22 $.support.transition = false |
|
23 var popover = $('<a href="#" title="mdo" data-content="http://twitter.com/mdo">@mdo</a>') |
|
24 .appendTo('#qunit-fixture') |
|
25 .popover('show') |
|
26 |
|
27 ok($('.popover').length, 'popover was inserted') |
|
28 popover.popover('hide') |
|
29 ok(!$(".popover").length, 'popover removed') |
|
30 }) |
|
31 |
|
32 test("should store popover instance in popover data object", function () { |
|
33 $.support.transition = false |
|
34 var popover = $('<a href="#" title="mdo" data-content="http://twitter.com/mdo">@mdo</a>') |
|
35 .popover() |
|
36 |
|
37 ok(!!popover.data('bs.popover'), 'popover instance exists') |
|
38 }) |
|
39 |
|
40 test("should get title and content from options", function () { |
|
41 $.support.transition = false |
|
42 var popover = $('<a href="#">@fat</a>') |
|
43 .appendTo('#qunit-fixture') |
|
44 .popover({ |
|
45 title: function () { |
|
46 return '@fat' |
|
47 } |
|
48 , content: function () { |
|
49 return 'loves writing tests (╯°□°)╯︵ ┻━┻' |
|
50 } |
|
51 }) |
|
52 |
|
53 popover.popover('show') |
|
54 |
|
55 ok($('.popover').length, 'popover was inserted') |
|
56 equal($('.popover .popover-title').text(), '@fat', 'title correctly inserted') |
|
57 equal($('.popover .popover-content').text(), 'loves writing tests (╯°□°)╯︵ ┻━┻', 'content correctly inserted') |
|
58 |
|
59 popover.popover('hide') |
|
60 ok(!$('.popover').length, 'popover was removed') |
|
61 $('#qunit-fixture').empty() |
|
62 }) |
|
63 |
|
64 test("should get title and content from attributes", function () { |
|
65 $.support.transition = false |
|
66 var popover = $('<a href="#" title="@mdo" data-content="loves data attributes (づ。◕‿‿◕。)づ ︵ ┻━┻" >@mdo</a>') |
|
67 .appendTo('#qunit-fixture') |
|
68 .popover() |
|
69 .popover('show') |
|
70 |
|
71 ok($('.popover').length, 'popover was inserted') |
|
72 equal($('.popover .popover-title').text(), '@mdo', 'title correctly inserted') |
|
73 equal($('.popover .popover-content').text(), "loves data attributes (づ。◕‿‿◕。)づ ︵ ┻━┻", 'content correctly inserted') |
|
74 |
|
75 popover.popover('hide') |
|
76 ok(!$('.popover').length, 'popover was removed') |
|
77 $('#qunit-fixture').empty() |
|
78 }) |
|
79 |
|
80 |
|
81 test("should get title and content from attributes #2", function () { |
|
82 $.support.transition = false |
|
83 var popover = $('<a href="#" title="@mdo" data-content="loves data attributes (づ。◕‿‿◕。)づ ︵ ┻━┻" >@mdo</a>') |
|
84 .appendTo('#qunit-fixture') |
|
85 .popover({ |
|
86 title: 'ignored title option', |
|
87 content: 'ignored content option' |
|
88 }) |
|
89 .popover('show') |
|
90 |
|
91 ok($('.popover').length, 'popover was inserted') |
|
92 equal($('.popover .popover-title').text(), '@mdo', 'title correctly inserted') |
|
93 equal($('.popover .popover-content').text(), "loves data attributes (づ。◕‿‿◕。)づ ︵ ┻━┻", 'content correctly inserted') |
|
94 |
|
95 popover.popover('hide') |
|
96 ok(!$('.popover').length, 'popover was removed') |
|
97 $('#qunit-fixture').empty() |
|
98 }) |
|
99 |
|
100 test("should respect custom classes", function() { |
|
101 $.support.transition = false |
|
102 var popover = $('<a href="#">@fat</a>') |
|
103 .appendTo('#qunit-fixture') |
|
104 .popover({ |
|
105 title: 'Test' |
|
106 , content: 'Test' |
|
107 , template: '<div class="popover foobar"><div class="arrow"></div><div class="inner"><h3 class="title"></h3><div class="content"><p></p></div></div></div>' |
|
108 }) |
|
109 |
|
110 popover.popover('show') |
|
111 |
|
112 ok($('.popover').length, 'popover was inserted') |
|
113 ok($('.popover').hasClass('foobar'), 'custom class is present') |
|
114 |
|
115 popover.popover('hide') |
|
116 ok(!$('.popover').length, 'popover was removed') |
|
117 $('#qunit-fixture').empty() |
|
118 }) |
|
119 |
|
120 test("should destroy popover", function () { |
|
121 var popover = $('<div/>').popover({trigger: 'hover'}).on('click.foo', function(){}) |
|
122 ok(popover.data('bs.popover'), 'popover has data') |
|
123 ok($._data(popover[0], 'events').mouseover && $._data(popover[0], 'events').mouseout, 'popover has hover event') |
|
124 ok($._data(popover[0], 'events').click[0].namespace == 'foo', 'popover has extra click.foo event') |
|
125 popover.popover('show') |
|
126 popover.popover('destroy') |
|
127 ok(!popover.hasClass('in'), 'popover is hidden') |
|
128 ok(!popover.data('popover'), 'popover does not have data') |
|
129 ok($._data(popover[0],'events').click[0].namespace == 'foo', 'popover still has click.foo') |
|
130 ok(!$._data(popover[0], 'events').mouseover && !$._data(popover[0], 'events').mouseout, 'popover does not have any events') |
|
131 }) |
|
132 |
|
133 }) |
|