twigg-app 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
+
})
|