twigg-app 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/data/quips.yml +45 -0
- data/lib/twigg-app/app/quips.rb +13 -0
- data/lib/twigg-app/app/routes.rb +43 -0
- data/lib/twigg-app/app/server.rb +146 -0
- data/lib/twigg-app/app/version.rb +5 -0
- data/lib/twigg-app/app.rb +14 -0
- data/lib/twigg-app.rb +5 -0
- data/public/application.js +106 -0
- data/public/favicon.ico +0 -0
- data/public/favicon.png +0 -0
- data/public/vendor/bootstrap/CNAME +1 -0
- data/public/vendor/bootstrap/CONTRIBUTING.md +66 -0
- data/public/vendor/bootstrap/Gruntfile.js +195 -0
- data/public/vendor/bootstrap/LICENSE +176 -0
- data/public/vendor/bootstrap/README.md +139 -0
- data/public/vendor/bootstrap/_config.yml +28 -0
- data/public/vendor/bootstrap/_includes/ads.html +1 -0
- data/public/vendor/bootstrap/_includes/footer.html +33 -0
- data/public/vendor/bootstrap/_includes/header.html +43 -0
- data/public/vendor/bootstrap/_includes/nav-components.html +135 -0
- data/public/vendor/bootstrap/_includes/nav-css.html +77 -0
- data/public/vendor/bootstrap/_includes/nav-customize.html +40 -0
- data/public/vendor/bootstrap/_includes/nav-getting-started.html +28 -0
- data/public/vendor/bootstrap/_includes/nav-javascript.html +88 -0
- data/public/vendor/bootstrap/_includes/nav-main.html +32 -0
- data/public/vendor/bootstrap/_includes/old-bs-docs.html +8 -0
- data/public/vendor/bootstrap/_includes/social-buttons.html +16 -0
- data/public/vendor/bootstrap/_layouts/customize.html +52 -0
- data/public/vendor/bootstrap/_layouts/default.html +72 -0
- data/public/vendor/bootstrap/_layouts/home.html +43 -0
- data/public/vendor/bootstrap/assets/css/docs.css +896 -0
- data/public/vendor/bootstrap/assets/css/pygments-manni.css +66 -0
- data/public/vendor/bootstrap/assets/ico/apple-touch-icon-114-precomposed.png +0 -0
- data/public/vendor/bootstrap/assets/ico/apple-touch-icon-144-precomposed.png +0 -0
- data/public/vendor/bootstrap/assets/ico/apple-touch-icon-57-precomposed.png +0 -0
- data/public/vendor/bootstrap/assets/ico/apple-touch-icon-72-precomposed.png +0 -0
- data/public/vendor/bootstrap/assets/ico/favicon.png +0 -0
- data/public/vendor/bootstrap/assets/js/application.js +82 -0
- data/public/vendor/bootstrap/assets/js/customizer.js +175 -0
- data/public/vendor/bootstrap/assets/js/holder.js +419 -0
- data/public/vendor/bootstrap/assets/js/html5shiv.js +8 -0
- data/public/vendor/bootstrap/assets/js/jquery.bbq.min.js +1287 -0
- data/public/vendor/bootstrap/assets/js/jquery.js +5 -0
- data/public/vendor/bootstrap/assets/js/jszip.js +1425 -0
- data/public/vendor/bootstrap/assets/js/less.js +9 -0
- data/public/vendor/bootstrap/assets/js/respond.min.js +6 -0
- data/public/vendor/bootstrap/assets/js/uglify.js +14 -0
- data/public/vendor/bootstrap/bower.json +11 -0
- data/public/vendor/bootstrap/browserstack.json +37 -0
- data/public/vendor/bootstrap/components.html +2555 -0
- data/public/vendor/bootstrap/composer.json +20 -0
- data/public/vendor/bootstrap/css.html +2276 -0
- data/public/vendor/bootstrap/customize.html +1480 -0
- data/public/vendor/bootstrap/dist/css/bootstrap.css +5579 -0
- data/public/vendor/bootstrap/dist/css/bootstrap.min.css +9 -0
- data/public/vendor/bootstrap/dist/js/bootstrap.js +1993 -0
- data/public/vendor/bootstrap/dist/js/bootstrap.min.js +6 -0
- data/public/vendor/bootstrap/getting-started.html +375 -0
- data/public/vendor/bootstrap/index.html +16 -0
- data/public/vendor/bootstrap/javascript.html +1904 -0
- data/public/vendor/bootstrap/js/affix.js +126 -0
- data/public/vendor/bootstrap/js/alert.js +98 -0
- data/public/vendor/bootstrap/js/button.js +109 -0
- data/public/vendor/bootstrap/js/carousel.js +217 -0
- data/public/vendor/bootstrap/js/collapse.js +179 -0
- data/public/vendor/bootstrap/js/dropdown.js +154 -0
- data/public/vendor/bootstrap/js/modal.js +244 -0
- data/public/vendor/bootstrap/js/popover.js +117 -0
- data/public/vendor/bootstrap/js/scrollspy.js +158 -0
- data/public/vendor/bootstrap/js/tab.js +135 -0
- data/public/vendor/bootstrap/js/tests/index.html +52 -0
- data/public/vendor/bootstrap/js/tests/phantom.js +63 -0
- data/public/vendor/bootstrap/js/tests/server.js +14 -0
- data/public/vendor/bootstrap/js/tests/unit/affix.js +25 -0
- data/public/vendor/bootstrap/js/tests/unit/alert.js +62 -0
- data/public/vendor/bootstrap/js/tests/unit/button.js +116 -0
- data/public/vendor/bootstrap/js/tests/unit/carousel.js +87 -0
- data/public/vendor/bootstrap/js/tests/unit/collapse.js +164 -0
- data/public/vendor/bootstrap/js/tests/unit/dropdown.js +219 -0
- data/public/vendor/bootstrap/js/tests/unit/modal.js +177 -0
- data/public/vendor/bootstrap/js/tests/unit/phantom.js +69 -0
- data/public/vendor/bootstrap/js/tests/unit/popover.js +133 -0
- data/public/vendor/bootstrap/js/tests/unit/scrollspy.js +37 -0
- data/public/vendor/bootstrap/js/tests/unit/tab.js +86 -0
- data/public/vendor/bootstrap/js/tests/unit/tooltip.js +437 -0
- data/public/vendor/bootstrap/js/tests/unit/transition.js +13 -0
- data/public/vendor/bootstrap/js/tests/vendor/jquery.js +5 -0
- data/public/vendor/bootstrap/js/tests/vendor/qunit.css +232 -0
- data/public/vendor/bootstrap/js/tests/vendor/qunit.js +1510 -0
- data/public/vendor/bootstrap/js/tooltip.js +382 -0
- data/public/vendor/bootstrap/js/transition.js +56 -0
- data/public/vendor/bootstrap/less/alerts.less +71 -0
- data/public/vendor/bootstrap/less/badges.less +51 -0
- data/public/vendor/bootstrap/less/bootstrap.less +63 -0
- data/public/vendor/bootstrap/less/breadcrumbs.less +23 -0
- data/public/vendor/bootstrap/less/button-groups.less +244 -0
- data/public/vendor/bootstrap/less/buttons.less +159 -0
- data/public/vendor/bootstrap/less/carousel.less +204 -0
- data/public/vendor/bootstrap/less/close.less +33 -0
- data/public/vendor/bootstrap/less/code.less +56 -0
- data/public/vendor/bootstrap/less/component-animations.less +29 -0
- data/public/vendor/bootstrap/less/dropdowns.less +176 -0
- data/public/vendor/bootstrap/less/forms.less +332 -0
- data/public/vendor/bootstrap/less/grid.less +340 -0
- data/public/vendor/bootstrap/less/input-groups.less +127 -0
- data/public/vendor/bootstrap/less/jumbotron.less +29 -0
- data/public/vendor/bootstrap/less/labels.less +54 -0
- data/public/vendor/bootstrap/less/list-group.less +88 -0
- data/public/vendor/bootstrap/less/media.less +56 -0
- data/public/vendor/bootstrap/less/mixins.less +693 -0
- data/public/vendor/bootstrap/less/modals.less +133 -0
- data/public/vendor/bootstrap/less/navbar.less +559 -0
- data/public/vendor/bootstrap/less/navs.less +228 -0
- data/public/vendor/bootstrap/less/normalize.less +396 -0
- data/public/vendor/bootstrap/less/pager.less +55 -0
- data/public/vendor/bootstrap/less/pagination.less +72 -0
- data/public/vendor/bootstrap/less/panels.less +128 -0
- data/public/vendor/bootstrap/less/popovers.less +133 -0
- data/public/vendor/bootstrap/less/print.less +100 -0
- data/public/vendor/bootstrap/less/progress-bars.less +99 -0
- data/public/vendor/bootstrap/less/responsive-utilities.less +149 -0
- data/public/vendor/bootstrap/less/scaffolding.less +111 -0
- data/public/vendor/bootstrap/less/tables.less +211 -0
- data/public/vendor/bootstrap/less/thumbnails.less +42 -0
- data/public/vendor/bootstrap/less/tooltip.less +95 -0
- data/public/vendor/bootstrap/less/type.less +238 -0
- data/public/vendor/bootstrap/less/utilities.less +42 -0
- data/public/vendor/bootstrap/less/variables.less +607 -0
- data/public/vendor/bootstrap/less/wells.less +29 -0
- data/public/vendor/bootstrap/package.json +33 -0
- data/public/vendor/bootstrap-glyphicons/CHANGELOG.md +3 -0
- data/public/vendor/bootstrap-glyphicons/CNAME +1 -0
- data/public/vendor/bootstrap-glyphicons/CONTRIBUTING.md +54 -0
- data/public/vendor/bootstrap-glyphicons/LICENSE +19 -0
- data/public/vendor/bootstrap-glyphicons/README.md +61 -0
- data/public/vendor/bootstrap-glyphicons/_config.yml +12 -0
- data/public/vendor/bootstrap-glyphicons/composer.json +9 -0
- data/public/vendor/bootstrap-glyphicons/css/bootstrap-glyphicons.css +2 -0
- data/public/vendor/bootstrap-glyphicons/css/bootstrap.css +9 -0
- data/public/vendor/bootstrap-glyphicons/css/docs.css +160 -0
- data/public/vendor/bootstrap-glyphicons/fonts/glyphiconshalflings-regular.eot +0 -0
- data/public/vendor/bootstrap-glyphicons/fonts/glyphiconshalflings-regular.otf +0 -0
- data/public/vendor/bootstrap-glyphicons/fonts/glyphiconshalflings-regular.svg +175 -0
- data/public/vendor/bootstrap-glyphicons/fonts/glyphiconshalflings-regular.ttf +0 -0
- data/public/vendor/bootstrap-glyphicons/fonts/glyphiconshalflings-regular.woff +0 -0
- data/public/vendor/bootstrap-glyphicons/index.html +255 -0
- data/public/vendor/bootstrap-glyphicons/less/bootstrap-glyphicons.less +201 -0
- data/public/vendor/bootstrap-glyphicons/package.json +18 -0
- data/public/vendor/d3/LICENSE +26 -0
- data/public/vendor/d3/README.md +7 -0
- data/public/vendor/d3/bower.json +25 -0
- data/public/vendor/d3/d3.js +8810 -0
- data/public/vendor/d3/d3.min.js +5 -0
- data/public/vendor/jquery/README.md +11 -0
- data/public/vendor/jquery/bower.json +11 -0
- data/public/vendor/jquery/component.json +15 -0
- data/public/vendor/jquery/composer.json +35 -0
- data/public/vendor/jquery/jquery-migrate.js +511 -0
- data/public/vendor/jquery/jquery-migrate.min.js +3 -0
- data/public/vendor/jquery/jquery.js +8829 -0
- data/public/vendor/jquery/jquery.min.js +6 -0
- data/public/vendor/jquery/jquery.min.map +1 -0
- data/public/vendor/jquery/package.json +7 -0
- data/public/vendor/replacejs/CHANGELOG.md +3 -0
- data/public/vendor/replacejs/MIT-LICENSE.txt +20 -0
- data/public/vendor/replacejs/README.md +123 -0
- data/public/vendor/replacejs/bower.json +24 -0
- data/public/vendor/replacejs/primer.js +17 -0
- data/public/vendor/replacejs/primer.min.js +1 -0
- data/public/vendor/replacejs/replace.js +182 -0
- data/public/vendor/stupidtable.js +158 -0
- data/views/dashboard.haml +17 -0
- data/views/layout.haml +60 -0
- metadata +330 -0
@@ -0,0 +1,69 @@
|
|
1
|
+
/*
|
2
|
+
* grunt-contrib-qunit
|
3
|
+
* http://gruntjs.com/
|
4
|
+
*
|
5
|
+
* Copyright (c) 2013 "Cowboy" Ben Alman, contributors
|
6
|
+
* Licensed under the MIT license.
|
7
|
+
*/
|
8
|
+
|
9
|
+
/*global QUnit:true, alert:true*/
|
10
|
+
(function () {
|
11
|
+
'use strict';
|
12
|
+
|
13
|
+
// Don't re-order tests.
|
14
|
+
QUnit.config.reorder = false
|
15
|
+
// Run tests serially, not in parallel.
|
16
|
+
QUnit.config.autorun = false
|
17
|
+
|
18
|
+
// Send messages to the parent PhantomJS process via alert! Good times!!
|
19
|
+
function sendMessage() {
|
20
|
+
var args = [].slice.call(arguments)
|
21
|
+
alert(JSON.stringify(args))
|
22
|
+
}
|
23
|
+
|
24
|
+
// These methods connect QUnit to PhantomJS.
|
25
|
+
QUnit.log = function(obj) {
|
26
|
+
// What is this I don’t even
|
27
|
+
if (obj.message === '[object Object], undefined:undefined') { return }
|
28
|
+
// Parse some stuff before sending it.
|
29
|
+
var actual = QUnit.jsDump.parse(obj.actual)
|
30
|
+
var expected = QUnit.jsDump.parse(obj.expected)
|
31
|
+
// Send it.
|
32
|
+
sendMessage('qunit.log', obj.result, actual, expected, obj.message, obj.source)
|
33
|
+
}
|
34
|
+
|
35
|
+
QUnit.testStart = function(obj) {
|
36
|
+
sendMessage('qunit.testStart', obj.name)
|
37
|
+
}
|
38
|
+
|
39
|
+
QUnit.testDone = function(obj) {
|
40
|
+
sendMessage('qunit.testDone', obj.name, obj.failed, obj.passed, obj.total)
|
41
|
+
}
|
42
|
+
|
43
|
+
QUnit.moduleStart = function(obj) {
|
44
|
+
sendMessage('qunit.moduleStart', obj.name)
|
45
|
+
}
|
46
|
+
|
47
|
+
QUnit.begin = function () {
|
48
|
+
sendMessage('qunit.begin')
|
49
|
+
console.log("Starting test suite")
|
50
|
+
console.log("================================================\n")
|
51
|
+
}
|
52
|
+
|
53
|
+
QUnit.moduleDone = function (opts) {
|
54
|
+
if (opts.failed === 0) {
|
55
|
+
console.log("\r\u2714 All tests passed in '" + opts.name + "' module")
|
56
|
+
} else {
|
57
|
+
console.log("\u2716 " + opts.failed + " tests failed in '" + opts.name + "' module")
|
58
|
+
}
|
59
|
+
sendMessage('qunit.moduleDone', opts.name, opts.failed, opts.passed, opts.total)
|
60
|
+
}
|
61
|
+
|
62
|
+
QUnit.done = function (opts) {
|
63
|
+
console.log("\n================================================")
|
64
|
+
console.log("Tests completed in " + opts.runtime + " milliseconds")
|
65
|
+
console.log(opts.passed + " tests of " + opts.total + " passed, " + opts.failed + " failed.")
|
66
|
+
sendMessage('qunit.done', opts.failed, opts.passed, opts.total, opts.runtime)
|
67
|
+
}
|
68
|
+
|
69
|
+
}())
|
@@ -0,0 +1,133 @@
|
|
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
|
+
equals($('.popover .popover-title').text(), '@fat', 'title correctly inserted')
|
57
|
+
equals($('.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
|
+
equals($('.popover .popover-title').text(), '@mdo', 'title correctly inserted')
|
73
|
+
equals($('.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
|
+
equals($('.popover .popover-title').text(), '@mdo', 'title correctly inserted')
|
93
|
+
equals($('.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
|
+
})
|
@@ -0,0 +1,37 @@
|
|
1
|
+
$(function () {
|
2
|
+
|
3
|
+
module("scrollspy")
|
4
|
+
|
5
|
+
test("should provide no conflict", function () {
|
6
|
+
var scrollspy = $.fn.scrollspy.noConflict()
|
7
|
+
ok(!$.fn.scrollspy, 'scrollspy was set back to undefined (org value)')
|
8
|
+
$.fn.scrollspy = scrollspy
|
9
|
+
})
|
10
|
+
|
11
|
+
test("should be defined on jquery object", function () {
|
12
|
+
ok($(document.body).scrollspy, 'scrollspy method is defined')
|
13
|
+
})
|
14
|
+
|
15
|
+
test("should return element", function () {
|
16
|
+
ok($(document.body).scrollspy()[0] == document.body, 'document.body returned')
|
17
|
+
})
|
18
|
+
|
19
|
+
test("should switch active class on scroll", function () {
|
20
|
+
var sectionHTML = '<div id="masthead"></div>'
|
21
|
+
, $section = $(sectionHTML).append('#qunit-fixture')
|
22
|
+
, topbarHTML ='<div class="topbar">'
|
23
|
+
+ '<div class="topbar-inner">'
|
24
|
+
+ '<div class="container">'
|
25
|
+
+ '<h3><a href="#">Bootstrap</a></h3>'
|
26
|
+
+ '<ul class="nav">'
|
27
|
+
+ '<li><a href="#masthead">Overview</a></li>'
|
28
|
+
+ '</ul>'
|
29
|
+
+ '</div>'
|
30
|
+
+ '</div>'
|
31
|
+
+ '</div>'
|
32
|
+
, $topbar = $(topbarHTML).scrollspy()
|
33
|
+
|
34
|
+
ok($topbar.find('.active', true))
|
35
|
+
})
|
36
|
+
|
37
|
+
})
|
@@ -0,0 +1,86 @@
|
|
1
|
+
$(function () {
|
2
|
+
|
3
|
+
module("tabs")
|
4
|
+
|
5
|
+
test("should provide no conflict", function () {
|
6
|
+
var tab = $.fn.tab.noConflict()
|
7
|
+
ok(!$.fn.tab, 'tab was set back to undefined (org value)')
|
8
|
+
$.fn.tab = tab
|
9
|
+
})
|
10
|
+
|
11
|
+
test("should be defined on jquery object", function () {
|
12
|
+
ok($(document.body).tab, 'tabs method is defined')
|
13
|
+
})
|
14
|
+
|
15
|
+
test("should return element", function () {
|
16
|
+
ok($(document.body).tab()[0] == document.body, 'document.body returned')
|
17
|
+
})
|
18
|
+
|
19
|
+
test("should activate element by tab id", function () {
|
20
|
+
var tabsHTML =
|
21
|
+
'<ul class="tabs">'
|
22
|
+
+ '<li><a href="#home">Home</a></li>'
|
23
|
+
+ '<li><a href="#profile">Profile</a></li>'
|
24
|
+
+ '</ul>'
|
25
|
+
|
26
|
+
$('<ul><li id="home"></li><li id="profile"></li></ul>').appendTo("#qunit-fixture")
|
27
|
+
|
28
|
+
$(tabsHTML).find('li:last a').tab('show')
|
29
|
+
equals($("#qunit-fixture").find('.active').attr('id'), "profile")
|
30
|
+
|
31
|
+
$(tabsHTML).find('li:first a').tab('show')
|
32
|
+
equals($("#qunit-fixture").find('.active').attr('id'), "home")
|
33
|
+
})
|
34
|
+
|
35
|
+
test("should activate element by tab id", function () {
|
36
|
+
var pillsHTML =
|
37
|
+
'<ul class="pills">'
|
38
|
+
+ '<li><a href="#home">Home</a></li>'
|
39
|
+
+ '<li><a href="#profile">Profile</a></li>'
|
40
|
+
+ '</ul>'
|
41
|
+
|
42
|
+
$('<ul><li id="home"></li><li id="profile"></li></ul>').appendTo("#qunit-fixture")
|
43
|
+
|
44
|
+
$(pillsHTML).find('li:last a').tab('show')
|
45
|
+
equals($("#qunit-fixture").find('.active').attr('id'), "profile")
|
46
|
+
|
47
|
+
$(pillsHTML).find('li:first a').tab('show')
|
48
|
+
equals($("#qunit-fixture").find('.active').attr('id'), "home")
|
49
|
+
})
|
50
|
+
|
51
|
+
|
52
|
+
test("should not fire closed when close is prevented", function () {
|
53
|
+
$.support.transition = false
|
54
|
+
stop();
|
55
|
+
$('<div class="tab"/>')
|
56
|
+
.on('show.bs.tab', function (e) {
|
57
|
+
e.preventDefault();
|
58
|
+
ok(true);
|
59
|
+
start();
|
60
|
+
})
|
61
|
+
.on('shown.bs.tab', function () {
|
62
|
+
ok(false);
|
63
|
+
})
|
64
|
+
.tab('show')
|
65
|
+
})
|
66
|
+
|
67
|
+
test("show and shown events should reference correct relatedTarget", function () {
|
68
|
+
var dropHTML =
|
69
|
+
'<ul class="drop">'
|
70
|
+
+ '<li class="dropdown"><a data-toggle="dropdown" href="#">1</a>'
|
71
|
+
+ '<ul class="dropdown-menu">'
|
72
|
+
+ '<li><a href="#1-1" data-toggle="tab">1-1</a></li>'
|
73
|
+
+ '<li><a href="#1-2" data-toggle="tab">1-2</a></li>'
|
74
|
+
+ '</ul>'
|
75
|
+
+ '</li>'
|
76
|
+
+ '</ul>'
|
77
|
+
|
78
|
+
$(dropHTML).find('ul>li:first a').tab('show').end()
|
79
|
+
.find('ul>li:last a').on('show', function(event){
|
80
|
+
equals(event.relatedTarget.hash, "#1-1")
|
81
|
+
}).on('shown', function(event){
|
82
|
+
equals(event.relatedTarget.hash, "#1-1")
|
83
|
+
}).tab('show')
|
84
|
+
})
|
85
|
+
|
86
|
+
})
|