Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
B
bootstrap
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
bootstrap
Commits
9ff66a12
Commit
9ff66a12
authored
Jun 18, 2014
by
Heinrich Fenkart
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Clean dropdown unit tests up
parent
77d05574
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
77 additions
and
78 deletions
+77
-78
js/tests/unit/dropdown.js
js/tests/unit/dropdown.js
+77
-78
No files found.
js/tests/unit/dropdown.js
View file @
9ff66a12
...
@@ -19,46 +19,48 @@ $(function () {
...
@@ -19,46 +19,48 @@ $(function () {
})
})
test
(
'
should provide no conflict
'
,
function
()
{
test
(
'
should provide no conflict
'
,
function
()
{
ok
(
!
$
.
fn
.
dropdown
,
'
dropdown was set back to undefined (org value)
'
)
strictEqual
(
$
.
fn
.
dropdown
,
undefined
,
'
dropdown was set back to undefined (org value)
'
)
})
})
test
(
'
should return element
'
,
function
()
{
test
(
'
should return jquery collection containing the element
'
,
function
()
{
var
el
=
$
(
'
<div />
'
)
var
$el
=
$
(
'
<div/>
'
)
ok
(
el
.
bootstrapDropdown
()[
0
]
===
el
[
0
],
'
same element returned
'
)
var
$dropdown
=
$el
.
bootstrapDropdown
()
ok
(
$dropdown
instanceof
$
,
'
returns jquery collection
'
)
strictEqual
(
$dropdown
[
0
],
$el
[
0
],
'
collection contains element
'
)
})
})
test
(
'
should not open dropdown if target is disabled
'
,
function
()
{
test
(
'
should not open dropdown if target is disabled
via attribute
'
,
function
()
{
var
dropdownHTML
=
'
<ul class="tabs">
'
+
var
dropdownHTML
=
'
<ul class="tabs">
'
+
'
<li class="dropdown">
'
+
'
<li class="dropdown">
'
+
'
<button disabled href="#" class="btn dropdown-toggle" data-toggle="dropdown">Dropdown</button>
'
+
'
<button disabled href="#" class="btn dropdown-toggle" data-toggle="dropdown">Dropdown</button>
'
+
'
<ul class="dropdown-menu">
'
+
'
<ul class="dropdown-menu">
'
+
'
<li><a href="#">Secondary link</a></li>
'
+
'
<li><a href="#">Secondary link</a></li>
'
+
'
<li><a href="#">Something else here</a></li>
'
+
'
<li><a href="#">Something else here</a></li>
'
+
'
<li class="divider"
></li
>
'
+
'
<li class="divider"
/
>
'
+
'
<li><a href="#">Another link</a></li>
'
+
'
<li><a href="#">Another link</a></li>
'
+
'
</ul>
'
+
'
</ul>
'
+
'
</li>
'
+
'
</li>
'
+
'
</ul>
'
'
</ul>
'
var
dropdown
=
$
(
dropdownHTML
).
find
(
'
[data-toggle="dropdown"]
'
).
bootstrapDropdown
().
click
()
var
$
dropdown
=
$
(
dropdownHTML
).
find
(
'
[data-toggle="dropdown"]
'
).
bootstrapDropdown
().
click
()
ok
(
!
dropdown
.
parent
(
'
.dropdown
'
).
hasClass
(
'
open
'
),
'
open
class added on click
'
)
ok
(
!
$dropdown
.
parent
(
'
.dropdown
'
).
hasClass
(
'
open
'
),
'
"open"
class added on click
'
)
})
})
test
(
'
should not open dropdown if target is disabled
'
,
function
()
{
test
(
'
should not open dropdown if target is disabled
via class
'
,
function
()
{
var
dropdownHTML
=
'
<ul class="tabs">
'
+
var
dropdownHTML
=
'
<ul class="tabs">
'
+
'
<li class="dropdown">
'
+
'
<li class="dropdown">
'
+
'
<button href="#" class="btn dropdown-toggle disabled" data-toggle="dropdown">Dropdown</button>
'
+
'
<button href="#" class="btn dropdown-toggle disabled" data-toggle="dropdown">Dropdown</button>
'
+
'
<ul class="dropdown-menu">
'
+
'
<ul class="dropdown-menu">
'
+
'
<li><a href="#">Secondary link</a></li>
'
+
'
<li><a href="#">Secondary link</a></li>
'
+
'
<li><a href="#">Something else here</a></li>
'
+
'
<li><a href="#">Something else here</a></li>
'
+
'
<li class="divider"
></li
>
'
+
'
<li class="divider"
/
>
'
+
'
<li><a href="#">Another link</a></li>
'
+
'
<li><a href="#">Another link</a></li>
'
+
'
</ul>
'
+
'
</ul>
'
+
'
</li>
'
+
'
</li>
'
+
'
</ul>
'
'
</ul>
'
var
dropdown
=
$
(
dropdownHTML
).
find
(
'
[data-toggle="dropdown"]
'
).
bootstrapDropdown
().
click
()
var
$
dropdown
=
$
(
dropdownHTML
).
find
(
'
[data-toggle="dropdown"]
'
).
bootstrapDropdown
().
click
()
ok
(
!
dropdown
.
parent
(
'
.dropdown
'
).
hasClass
(
'
open
'
),
'
open
class added on click
'
)
ok
(
!
$dropdown
.
parent
(
'
.dropdown
'
).
hasClass
(
'
open
'
),
'
"open"
class added on click
'
)
})
})
test
(
'
should add class open to menu if clicked
'
,
function
()
{
test
(
'
should add class open to menu if clicked
'
,
function
()
{
...
@@ -68,14 +70,14 @@ $(function () {
...
@@ -68,14 +70,14 @@ $(function () {
'
<ul class="dropdown-menu">
'
+
'
<ul class="dropdown-menu">
'
+
'
<li><a href="#">Secondary link</a></li>
'
+
'
<li><a href="#">Secondary link</a></li>
'
+
'
<li><a href="#">Something else here</a></li>
'
+
'
<li><a href="#">Something else here</a></li>
'
+
'
<li class="divider"
></li
>
'
+
'
<li class="divider"
/
>
'
+
'
<li><a href="#">Another link</a></li>
'
+
'
<li><a href="#">Another link</a></li>
'
+
'
</ul>
'
+
'
</ul>
'
+
'
</li>
'
+
'
</li>
'
+
'
</ul>
'
'
</ul>
'
var
dropdown
=
$
(
dropdownHTML
).
find
(
'
[data-toggle="dropdown"]
'
).
bootstrapDropdown
().
click
()
var
$
dropdown
=
$
(
dropdownHTML
).
find
(
'
[data-toggle="dropdown"]
'
).
bootstrapDropdown
().
click
()
ok
(
dropdown
.
parent
(
'
.dropdown
'
).
hasClass
(
'
open
'
),
'
open
class added on click
'
)
ok
(
$dropdown
.
parent
(
'
.dropdown
'
).
hasClass
(
'
open
'
),
'
"open"
class added on click
'
)
})
})
test
(
'
should test if element has a # before assuming it
\'
s a selector
'
,
function
()
{
test
(
'
should test if element has a # before assuming it
\'
s a selector
'
,
function
()
{
...
@@ -85,77 +87,74 @@ $(function () {
...
@@ -85,77 +87,74 @@ $(function () {
'
<ul class="dropdown-menu">
'
+
'
<ul class="dropdown-menu">
'
+
'
<li><a href="#">Secondary link</a></li>
'
+
'
<li><a href="#">Secondary link</a></li>
'
+
'
<li><a href="#">Something else here</a></li>
'
+
'
<li><a href="#">Something else here</a></li>
'
+
'
<li class="divider"
></li
>
'
+
'
<li class="divider"
/
>
'
+
'
<li><a href="#">Another link</a></li>
'
+
'
<li><a href="#">Another link</a></li>
'
+
'
</ul>
'
+
'
</ul>
'
+
'
</li>
'
+
'
</li>
'
+
'
</ul>
'
'
</ul>
'
var
dropdown
=
$
(
dropdownHTML
).
find
(
'
[data-toggle="dropdown"]
'
).
bootstrapDropdown
().
click
()
var
$
dropdown
=
$
(
dropdownHTML
).
find
(
'
[data-toggle="dropdown"]
'
).
bootstrapDropdown
().
click
()
ok
(
dropdown
.
parent
(
'
.dropdown
'
).
hasClass
(
'
open
'
),
'
open
class added on click
'
)
ok
(
$dropdown
.
parent
(
'
.dropdown
'
).
hasClass
(
'
open
'
),
'
"open"
class added on click
'
)
})
})
test
(
'
should remove
open class if body
clicked
'
,
function
()
{
test
(
'
should remove
"open" class if body is
clicked
'
,
function
()
{
var
dropdownHTML
=
'
<ul class="tabs">
'
+
var
dropdownHTML
=
'
<ul class="tabs">
'
+
'
<li class="dropdown">
'
+
'
<li class="dropdown">
'
+
'
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>
'
+
'
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>
'
+
'
<ul class="dropdown-menu">
'
+
'
<ul class="dropdown-menu">
'
+
'
<li><a href="#">Secondary link</a></li>
'
+
'
<li><a href="#">Secondary link</a></li>
'
+
'
<li><a href="#">Something else here</a></li>
'
+
'
<li><a href="#">Something else here</a></li>
'
+
'
<li class="divider"
></li
>
'
+
'
<li class="divider"
/
>
'
+
'
<li><a href="#">Another link</a></li>
'
+
'
<li><a href="#">Another link</a></li>
'
+
'
</ul>
'
+
'
</ul>
'
+
'
</li>
'
+
'
</li>
'
+
'
</ul>
'
'
</ul>
'
var
dropdown
=
$
(
dropdownHTML
)
var
$
dropdown
=
$
(
dropdownHTML
)
.
appendTo
(
'
#qunit-fixture
'
)
.
appendTo
(
'
#qunit-fixture
'
)
.
find
(
'
[data-toggle="dropdown"]
'
)
.
find
(
'
[data-toggle="dropdown"]
'
)
.
bootstrapDropdown
()
.
bootstrapDropdown
()
.
click
()
.
click
()
ok
(
dropdown
.
parent
(
'
.dropdown
'
).
hasClass
(
'
open
'
),
'
open class added on click
'
)
ok
(
$dropdown
.
parent
(
'
.dropdown
'
).
hasClass
(
'
open
'
),
'
"open" class added on click
'
)
$
(
'
body
'
).
click
()
$
(
document
.
body
).
click
()
ok
(
!
dropdown
.
parent
(
'
.dropdown
'
).
hasClass
(
'
open
'
),
'
open class removed
'
)
ok
(
!
$dropdown
.
parent
(
'
.dropdown
'
).
hasClass
(
'
open
'
),
'
"open" class removed
'
)
dropdown
.
remove
()
})
})
test
(
'
should remove
open class if body clicked, with multiple drop
downs
'
,
function
()
{
test
(
'
should remove
"open" class if body is clicked, with multiple drop
downs
'
,
function
()
{
var
dropdownHTML
=
'
<ul class="nav">
'
+
var
dropdownHTML
=
'
<ul class="nav">
'
+
'
<li><a href="#menu1">Menu 1</a></li>
'
+
'
<li><a href="#menu1">Menu 1</a></li>
'
+
'
<li class="dropdown" id="testmenu">
'
+
'
<li class="dropdown" id="testmenu">
'
+
'
<a class="dropdown-toggle" data-toggle="dropdown" href="#testmenu">Test menu <b class="caret"></b
></a>
'
+
'
<a class="dropdown-toggle" data-toggle="dropdown" href="#testmenu">Test menu <span class="caret"/
></a>
'
+
'
<ul class="dropdown-menu" role="menu">
'
+
'
<ul class="dropdown-menu" role="menu">
'
+
'
<li><a href="#sub1">Submenu 1</a></li>
'
+
'
<li><a href="#sub1">Submenu 1</a></li>
'
+
'
</ul>
'
+
'
</ul>
'
+
'
</li>
'
+
'
</li>
'
+
'
</ul>
'
+
'
</ul>
'
+
'
<div class="btn-group">
'
+
'
<div class="btn-group">
'
+
'
<button class="btn">Actions</button>
'
+
'
<button class="btn">Actions</button>
'
+
'
<button class="btn dropdown-toggle" data-toggle="dropdown"><span class="caret"></span
></button>
'
+
'
<button class="btn dropdown-toggle" data-toggle="dropdown"><span class="caret"/
></button>
'
+
'
<ul class="dropdown-menu">
'
+
'
<ul class="dropdown-menu">
'
+
'
<li><a href="#">Action 1</a></li>
'
+
'
<li><a href="#">Action 1</a></li>
'
+
'
</ul>
'
+
'
</ul>
'
+
'
</div>
'
'
</div>
'
var
dropdowns
=
$
(
dropdownHTML
).
appendTo
(
'
#qunit-fixture
'
).
find
(
'
[data-toggle="dropdown"]
'
)
var
$dropdowns
=
$
(
dropdownHTML
).
appendTo
(
'
#qunit-fixture
'
).
find
(
'
[data-toggle="dropdown"]
'
)
var
first
=
dropdowns
.
first
()
var
$first
=
$dropdowns
.
first
()
var
last
=
dropdowns
.
last
()
var
$last
=
$dropdowns
.
last
()
ok
(
dropdowns
.
length
==
2
,
'
Should be two dropdowns
'
)
first
.
click
()
strictEqual
(
$dropdowns
.
length
,
2
,
'
two dropdowns
'
)
ok
(
first
.
parents
(
'
.open
'
).
length
==
1
,
'
open class added on click
'
)
ok
(
$
(
'
#qunit-fixture .open
'
).
length
==
1
,
'
only one object is open
'
)
$
(
'
body
'
).
click
()
ok
(
$
(
'
#qunit-fixture .open
'
).
length
===
0
,
'
open class removed
'
)
la
st
.
click
()
$fir
st
.
click
()
ok
(
last
.
parent
(
'
.open
'
).
length
==
1
,
'
open
class added on click
'
)
strictEqual
(
$first
.
parents
(
'
.open
'
).
length
,
1
,
'
"open"
class added on click
'
)
ok
(
$
(
'
#qunit-fixture .open
'
).
length
==
1
,
'
only one object
is open
'
)
strictEqual
(
$
(
'
#qunit-fixture .open
'
).
length
,
1
,
'
only one dropdown
is open
'
)
$
(
'
body
'
).
click
()
$
(
document
.
body
).
click
()
ok
(
$
(
'
#qunit-fixture .open
'
).
length
===
0
,
'
open
class removed
'
)
strictEqual
(
$
(
'
#qunit-fixture .open
'
).
length
,
0
,
'
"open"
class removed
'
)
$
(
'
#qunit-fixture
'
).
html
(
''
)
$last
.
click
()
strictEqual
(
$last
.
parent
(
'
.open
'
).
length
,
1
,
'
"open" class added on click
'
)
strictEqual
(
$
(
'
#qunit-fixture .open
'
).
length
,
1
,
'
only one dropdown is open
'
)
$
(
document
.
body
).
click
()
strictEqual
(
$
(
'
#qunit-fixture .open
'
).
length
,
0
,
'
"open" class removed
'
)
})
})
test
(
'
should fire show and hide event
'
,
function
()
{
test
(
'
should fire show and hide event
'
,
function
()
{
...
@@ -165,63 +164,63 @@ $(function () {
...
@@ -165,63 +164,63 @@ $(function () {
'
<ul class="dropdown-menu">
'
+
'
<ul class="dropdown-menu">
'
+
'
<li><a href="#">Secondary link</a></li>
'
+
'
<li><a href="#">Secondary link</a></li>
'
+
'
<li><a href="#">Something else here</a></li>
'
+
'
<li><a href="#">Something else here</a></li>
'
+
'
<li class="divider"
></li
>
'
+
'
<li class="divider"
/
>
'
+
'
<li><a href="#">Another link</a></li>
'
+
'
<li><a href="#">Another link</a></li>
'
+
'
</ul>
'
+
'
</ul>
'
+
'
</li>
'
+
'
</li>
'
+
'
</ul>
'
'
</ul>
'
var
dropdown
=
$
(
dropdownHTML
)
var
$
dropdown
=
$
(
dropdownHTML
)
.
appendTo
(
'
#qunit-fixture
'
)
.
appendTo
(
'
#qunit-fixture
'
)
.
find
(
'
[data-toggle="dropdown"]
'
)
.
find
(
'
[data-toggle="dropdown"]
'
)
.
bootstrapDropdown
()
.
bootstrapDropdown
()
stop
()
stop
()
dropdown
$
dropdown
.
parent
(
'
.dropdown
'
)
.
parent
(
'
.dropdown
'
)
.
on
(
'
show.bs.dropdown
'
,
function
()
{
.
on
(
'
show.bs.dropdown
'
,
function
()
{
ok
(
true
,
'
show was
call
ed
'
)
ok
(
true
,
'
show was
fir
ed
'
)
})
})
.
on
(
'
hide.bs.dropdown
'
,
function
()
{
.
on
(
'
hide.bs.dropdown
'
,
function
()
{
ok
(
true
,
'
hide was
call
ed
'
)
ok
(
true
,
'
hide was
fir
ed
'
)
start
()
start
()
})
})
dropdown
.
click
()
$
dropdown
.
click
()
$
(
document
.
body
).
click
()
$
(
document
.
body
).
click
()
})
})
test
(
'
should fire shown and hiden event
'
,
function
()
{
test
(
'
should fire shown and hid
d
en event
'
,
function
()
{
var
dropdownHTML
=
'
<ul class="tabs">
'
+
var
dropdownHTML
=
'
<ul class="tabs">
'
+
'
<li class="dropdown">
'
+
'
<li class="dropdown">
'
+
'
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>
'
+
'
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>
'
+
'
<ul class="dropdown-menu">
'
+
'
<ul class="dropdown-menu">
'
+
'
<li><a href="#">Secondary link</a></li>
'
+
'
<li><a href="#">Secondary link</a></li>
'
+
'
<li><a href="#">Something else here</a></li>
'
+
'
<li><a href="#">Something else here</a></li>
'
+
'
<li class="divider"
></li
>
'
+
'
<li class="divider"
/
>
'
+
'
<li><a href="#">Another link</a></li>
'
+
'
<li><a href="#">Another link</a></li>
'
+
'
</ul>
'
+
'
</ul>
'
+
'
</li>
'
+
'
</li>
'
+
'
</ul>
'
'
</ul>
'
var
dropdown
=
$
(
dropdownHTML
)
var
$
dropdown
=
$
(
dropdownHTML
)
.
appendTo
(
'
#qunit-fixture
'
)
.
appendTo
(
'
#qunit-fixture
'
)
.
find
(
'
[data-toggle="dropdown"]
'
)
.
find
(
'
[data-toggle="dropdown"]
'
)
.
bootstrapDropdown
()
.
bootstrapDropdown
()
stop
()
stop
()
dropdown
$
dropdown
.
parent
(
'
.dropdown
'
)
.
parent
(
'
.dropdown
'
)
.
on
(
'
shown.bs.dropdown
'
,
function
()
{
.
on
(
'
shown.bs.dropdown
'
,
function
()
{
ok
(
true
,
'
show
was call
ed
'
)
ok
(
true
,
'
show
n was fir
ed
'
)
})
})
.
on
(
'
hidden.bs.dropdown
'
,
function
()
{
.
on
(
'
hidden.bs.dropdown
'
,
function
()
{
ok
(
true
,
'
hid
e was call
ed
'
)
ok
(
true
,
'
hid
den was fir
ed
'
)
start
()
start
()
})
})
dropdown
.
click
()
$
dropdown
.
click
()
$
(
document
.
body
).
click
()
$
(
document
.
body
).
click
()
})
})
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment