diff --git a/ui/tests/test.listView.js b/ui/tests/test.listView.js index baead8a030c..f55a577847c 100644 --- a/ui/tests/test.listView.js +++ b/ui/tests/test.listView.js @@ -125,4 +125,126 @@ } }); }); + + test('Section select', function() { + var $listView = $('
'); + + ok($listView.listView({ + sectionSelect: { + label: 'testSectionSelect' + }, + sections: { + sectionA: { + type: 'select', + title: 'sectionA', + listView: { + fields: { + fieldA: { label: 'testFieldA' }, + fieldB: { label: 'testFieldB' } + }, + dataProvider: function(args) { + args.response.success({ + data: [ + { + fieldA: '1A', + fieldB: '1B' + }, + { + fieldA: '2A', + fieldB: '2B' + } + ] + }); + } + } + }, + + sectionB: { + type: 'select', + title: 'sectionB', + listView: { + fields: { + fieldC: { label: 'testFieldC' }, + fieldD: { label: 'testFieldD' }, + fieldE: { label: 'testFieldE' } + }, + dataProvider: function(args) { + args.response.success({ + data: [ + { + fieldC: '1C', + fieldD: '1D', + fieldE: '1E' + }, + { + fieldC: '2C', + fieldD: '2D', + fieldE: '2E' + }, + { + fieldC: '3C', + fieldD: '3D', + fieldE: '3E' + }, + { + fieldC: '4C', + fieldD: '4D', + fieldE: '4E' + } + ] + }); + } + } + } + } + })); + + equal($listView.find('.toolbar .section-switcher').size(), 1, + 'Section switcher present in toolbar'); + equal($listView.find('.toolbar .section-switcher .section-select select').size(), 1, + 'Section select present'); + equal($listView.find('.toolbar .section-switcher .section-select label').html(), + 'testSectionSelect' + ':', + 'Section select label is correct'); + equal($listView.find('.toolbar .section-switcher .section-select select option').size(), 2, + 'Selectable sections present as options'); + equal($listView.find('.toolbar .section-switcher .section-select select option:first').html(), 'sectionA', + 'First select has correct title'); + equal($listView.find('.toolbar .section-switcher .section-select select option:selected')[0], + $listView.find('.toolbar .section-switcher .section-select select option:first')[0], + 'First section option is selected by default'); + equal($listView.find('.toolbar .section-switcher .section-select select option:last').html(), 'sectionB', 'Last select has correct title'); + equal($listView.find('.list-view thead th').size(), 2, 'Correct list view column count present'); + equal($listView.find('.list-view thead th:first').html(), 'testFieldA', 'Column 1 is labeled correctly'); + equal($listView.find('.list-view thead th:last').html(), 'testFieldB', 'Column 2 is labeled correctly'); + equal($listView.find('.list-view tbody tr').size(), 2, 'Correct # of data rows present'); + equal($listView.find('.list-view tbody tr:first td').size(), 2, 'Correct # of data columns present'); + + $listView.find('.toolbar .section-switcher select').val('sectionB'); + stop(); + ok($listView.find('.toolbar .section-switcher select').change(), 'Change section'); + start(); + + equal($listView.find('.list-view thead th').size(), 3, 'Correct list view column count present'); + equal($listView.find('.list-view thead th:first').html(), 'testFieldC', 'Column 1 is labeled correctly'); + equal($($listView.find('.list-view thead th')[1]).html(), 'testFieldD', 'Column 2 is labeled correctly'); + equal($listView.find('.list-view thead th:last').html(), 'testFieldE', 'Column 3 is labeled correctly'); + equal($listView.find('.list-view tbody tr').size(), 4, 'Correct # of data rows present'); + equal($listView.find('.list-view tbody tr:first td').size(), 3, 'Correct # of data columns present'); + equal($listView.find('.list-view tbody tr:first td:first span').html(), '1C', 'First table cell has correct data'); + equal($listView.find('.list-view tbody tr:last td:last span').html(), '4E', 'Last table cell has correct data'); + + $listView.find('.toolbar .section-switcher select').val('sectionA'); + stop(); + ok($listView.find('.toolbar .section-switcher select').change(), 'Change section'); + start(); + equal($listView.find('.toolbar .section-switcher .section-select select option:last').html(), 'sectionB', 'Last select has correct title'); + equal($listView.find('.list-view thead th').size(), 2, 'Correct list view column count present'); + equal($listView.find('.list-view thead th:first').html(), 'testFieldA', 'Column 1 is labeled correctly'); + equal($listView.find('.list-view thead th:last').html(), 'testFieldB', 'Column 2 is labeled correctly'); + equal($listView.find('.list-view tbody tr').size(), 2, 'Correct # of data rows present'); + equal($listView.find('.list-view tbody tr:first td').size(), 2, 'Correct # of data columns present'); + equal($listView.find('.list-view tbody tr:first td:first span').html(), '1A', 'First table cell has correct data'); + equal($listView.find('.list-view tbody tr:last td:last span').html(), '2B', 'Last table cell has correct data'); + }); }(jQuery));