Welcome to mirror list, hosted at ThFree Co, Russian Federation.

collapse.js « unit « tests « js - github.com/twbs/bootstrap.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 10d5aeda6f33085cb83f4f46e01355f31f8989c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
$(function () {

    module('collapse')

      test('should provide no conflict', function () {
        var collapse = $.fn.collapse.noConflict()
        ok(!$.fn.collapse, 'collapse was set back to undefined (org value)')
        $.fn.collapse = collapse
      })

      test('should be defined on jquery object', function () {
        ok($(document.body).collapse, 'collapse method is defined')
      })

      test('should return element', function () {
        ok($(document.body).collapse()[0] == document.body, 'document.body returned')
      })

      test('should show a collapsed element', function () {
        var el = $('<div class="collapse"></div>').collapse('show')
        ok(el.hasClass('in'), 'has class in')
        ok(/height/.test(el.attr('style')), 'has height set')
      })

      test('should hide a collapsed element', function () {
        var el = $('<div class="collapse"></div>').collapse('hide')
        ok(!el.hasClass('in'), 'does not have class in')
        ok(/height/.test(el.attr('style')), 'has height set')
      })

      test('should not fire shown when show is prevented', function () {
        $.support.transition = false
        stop()
        $('<div class="collapse"/>')
          .on('show.bs.collapse', function (e) {
            e.preventDefault();
            ok(true);
            start();
          })
          .on('shown.bs.collapse', function () {
            ok(false);
          })
          .collapse('show')
      })

      test('should reset style to auto after finishing opening collapse', function () {
        $.support.transition = false
        stop()
        $('<div class="collapse" style="height: 0px"/>')
          .on('show.bs.collapse', function () {
            ok(this.style.height == '0px')
          })
          .on('shown.bs.collapse', function () {
            ok(this.style.height == 'auto')
            start()
          })
          .collapse('show')
      })

      test('should add active class to target when collapse shown', function () {
        $.support.transition = false
        stop()

        var target = $('<a data-toggle="collapse" href="#test1"></a>')
          .appendTo($('#qunit-fixture'))

        var collapsible = $('<div id="test1"></div>')
          .appendTo($('#qunit-fixture'))
          .on('show.bs.collapse', function () {
            ok(!target.hasClass('collapsed'))
            start()
          })

        target.click()
      })

      test('should remove active class to target when collapse hidden', function () {
        $.support.transition = false
        stop()

        var target = $('<a data-toggle="collapse" href="#test1"></a>')
          .appendTo($('#qunit-fixture'))

        var collapsible = $('<div id="test1" class="in"></div>')
          .appendTo($('#qunit-fixture'))
          .on('hide.bs.collapse', function () {
            ok(target.hasClass('collapsed'))
            start()
          })

        target.click()
      })

      test('should remove active class from inactive accordion targets', function () {
        $.support.transition = false
        stop()

        var accordion = $('<div id="accordion"><div class="accordion-group"></div><div class="accordion-group"></div><div class="accordion-group"></div></div>')
          .appendTo($('#qunit-fixture'))

        var target1 = $('<a data-toggle="collapse" href="#body1" data-parent="#accordion"></a>')
          .appendTo(accordion.find('.accordion-group').eq(0))

        var collapsible1 = $('<div id="body1" class="in"></div>')
          .appendTo(accordion.find('.accordion-group').eq(0))

        var target2 = $('<a class="collapsed" data-toggle="collapse" href="#body2" data-parent="#accordion"></a>')
          .appendTo(accordion.find('.accordion-group').eq(1))

        var collapsible2 = $('<div id="body2"></div>')
          .appendTo(accordion.find('.accordion-group').eq(1))

        var target3 = $('<a class="collapsed" data-toggle="collapse" href="#body3" data-parent="#accordion"></a>')
          .appendTo(accordion.find('.accordion-group').eq(2))

        var collapsible3 = $('<div id="body3"></div>')
          .appendTo(accordion.find('.accordion-group').eq(2))
          .on('show.bs.collapse', function () {
            ok(target1.hasClass('collapsed'))
            ok(target2.hasClass('collapsed'))
            ok(!target3.hasClass('collapsed'))

            start()
          })

        target3.click()
      })

      test('should allow dots in data-parent', function () {
        $.support.transition = false
        stop()

        var accordion = $('<div class="accordion"><div class="accordion-group"></div><div class="accordion-group"></div><div class="accordion-group"></div></div>')
          .appendTo($('#qunit-fixture'))

        var target1 = $('<a data-toggle="collapse" href="#body1" data-parent=".accordion"></a>')
          .appendTo(accordion.find('.accordion-group').eq(0))

        var collapsible1 = $('<div id="body1" class="in"></div>')
          .appendTo(accordion.find('.accordion-group').eq(0))

        var target2 = $('<a class="collapsed" data-toggle="collapse" href="#body2" data-parent=".accordion"></a>')
          .appendTo(accordion.find('.accordion-group').eq(1))

        var collapsible2 = $('<div id="body2"></div>')
          .appendTo(accordion.find('.accordion-group').eq(1))

        var target3 = $('<a class="collapsed" data-toggle="collapse" href="#body3" data-parent=".accordion"></a>')
          .appendTo(accordion.find('.accordion-group').eq(2))

        var collapsible3 = $('<div id="body3"></div>')
          .appendTo(accordion.find('.accordion-group').eq(2))
          .on('show.bs.collapse', function () {
            ok(target1.hasClass('collapsed'))
            ok(target2.hasClass('collapsed'))
            ok(!target3.hasClass('collapsed'))

            start()
          })

        target3.click()
      })

})