bootstrap-tab.js 2.78 KB
Newer Older
1
2
3
4
$(function () {

    module("bootstrap-tabs")

5
6
7
8
9
10
      test("should provide no conflict", function () {
        var tab = $.fn.tab.noConflict()
        ok(!$.fn.tab, 'tab was set back to undefined (org value)')
        $.fn.tab = tab
      })

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
      test("should be defined on jquery object", function () {
        ok($(document.body).tab, 'tabs method is defined')
      })

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

      test("should activate element by tab id", function () {
        var tabsHTML =
            '<ul class="tabs">'
          + '<li><a href="#home">Home</a></li>'
          + '<li><a href="#profile">Profile</a></li>'
          + '</ul>'

        $('<ul><li id="home"></li><li id="profile"></li></ul>').appendTo("#qunit-fixture")

        $(tabsHTML).find('li:last a').tab('show')
        equals($("#qunit-fixture").find('.active').attr('id'), "profile")

        $(tabsHTML).find('li:first a').tab('show')
        equals($("#qunit-fixture").find('.active').attr('id'), "home")
      })

      test("should activate element by tab id", function () {
        var pillsHTML =
            '<ul class="pills">'
          + '<li><a href="#home">Home</a></li>'
          + '<li><a href="#profile">Profile</a></li>'
          + '</ul>'

        $('<ul><li id="home"></li><li id="profile"></li></ul>').appendTo("#qunit-fixture")

        $(pillsHTML).find('li:last a').tab('show')
        equals($("#qunit-fixture").find('.active').attr('id'), "profile")

        $(pillsHTML).find('li:first a').tab('show')
        equals($("#qunit-fixture").find('.active').attr('id'), "home")
      })

51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66

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

Kevin Attfield's avatar
Kevin Attfield committed
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
      test("show and shown events should reference correct relatedTarget", function () {
        var dropHTML =
            '<ul class="drop">'
          + '<li class="dropdown"><a data-toggle="dropdown" href="#">1</a>'
          + '<ul class="dropdown-menu">'
          + '<li><a href="#1-1" data-toggle="tab">1-1</a></li>'
          + '<li><a href="#1-2" data-toggle="tab">1-2</a></li>'
          + '</ul>'
          + '</li>'
          + '</ul>'

        $(dropHTML).find('ul>li:first a').tab('show').end()
          .find('ul>li:last a').on('show', function(event){
            equals(event.relatedTarget.hash, "#1-1")
          }).on('shown', function(event){
            equals(event.relatedTarget.hash, "#1-1")
          }).tab('show')
      })

86
})