Skip to content

Commit 7489858

Browse files
committed
(issue-1069-selectlist-display-none) strengthen unit test to actually test final element against inner text as it appears on page
1 parent 5451fad commit 7489858

File tree

1 file changed

+22
-8
lines changed

1 file changed

+22
-8
lines changed

test/selectlist-test.js

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,30 @@ define(function(require){
2828
test("should autosize correctly", function () {
2929
var $selectlist8 = $('body').find('#MySelectlist8').selectlist();
3030
var $selectlist9 = $('body').find('#MySelectlist9').selectlist();
31+
var minWidth;
3132

32-
// stop();
33-
// setTimeout(function() {
34-
ok(($selectlist8.width() >= 147 && $selectlist8.width() <= 152), 'selectlist autoresized');
35-
ok($selectlist9.width() === 0, 'selectlist hidden, sized 0');
33+
//measure all children of selectlist to be tested (add them all to a span and see how wide the span is) and make sure the selectlist is actually big enough to fit that
34+
var $textLengthTester = $('<span id="textLengthTester" style="display:inline-block;"></span>').appendTo('body');
35+
$selectlist8.find('li').each(function(index, element){
36+
$('<p style="padding: 0 12px 0 28px;">' + $(element).text() + '</p>').appendTo($textLengthTester);
37+
});
38+
minWidth = $textLengthTester.width();
39+
ok(($selectlist8.width() >= minWidth), 'selectlist autoresized to ' + $selectlist8.width() + ' should be greater than ' + minWidth);
40+
41+
42+
//hidden selectlists have no size
43+
ok($selectlist9.width() === 0, 'selectlist hidden, sized 0');
3644

37-
$selectlist9.removeClass('hidden');
38-
ok(($selectlist9.width() >= 147 && $selectlist9.width() <= 152), 'selectlist was hidden, now shown, sized 149');
39-
// start();
40-
// }, 1000);
45+
//remove hidden to prepare to measure its new size
46+
$selectlist9.removeClass('hidden');
47+
48+
//measure all children of selectlist to be tested (add them all to a span and see how wide the span is) and make sure the selectlist is actually big enough to fit that
49+
var $textLengthTester = $('<span id="textLengthTester" style="display:inline-block;"></span>').appendTo('body');
50+
$selectlist9.find('li').each(function(index, element){
51+
$('<p style="padding: 0 12px 0 28px;">' + $(element).text() + '</p>').appendTo($textLengthTester);
52+
});
53+
minWidth = $textLengthTester.width();
54+
ok(($selectlist9.width() >= minWidth), 'selectlist was hidden, now shown, sized ' + $selectlist9.width() + ' should be greater than ' + minWidth);
4155
});
4256

4357
test("should set disabled state", function () {

0 commit comments

Comments
 (0)