diff --git a/ui/tests/test.widget.listView.js b/ui/tests/test.widget.listView.js
index 96f839db1e7..2209c42ddb9 100644
--- a/ui/tests/test.widget.listView.js
+++ b/ui/tests/test.widget.listView.js
@@ -15,28 +15,75 @@
// specific language governing permissions and limitations
// under the License.
-module('List view', {
- setup: function() {
- window.pageSize = 20;
- },
- teardown: function() {
- delete window.pageSize;
- }
-});
+(function() {
+ var listView = function(args) {
+ var basicArgs = {
+ listView: {
+ fields: {},
+ dataProvider: function() {}
+ }
+ };
-test('Basic', function() {
- var $listView = $('
').listView({
- listView: {
- fields: {},
- dataProvider: function() {}
+ return $('
').listView(
+ $.extend(true, {}, basicArgs, args)
+ ).find('.list-view');
+ };
+
+ module('List view', {
+ setup: function() {
+ window.pageSize = 20;
+ },
+ teardown: function() {
+ delete window.pageSize;
}
- }).find('.list-view');
- var $toolbar = $listView.find('> .toolbar');
- var $table = $listView.find('> .data-table');
+ });
- equal($listView.size(), 1, 'List view present');
- equal($toolbar.size(), 1, 'Toolbar present');
- equal($table.size(), 1, 'Data table div present');
- equal($table.find('> .fixed-header table thead tr').size(), 1, 'Fixed header present');
- equal($table.find('> table.body tbody').size(), 1, 'Body table present');
-});
+ test('Basic', function() {
+ var $listView = listView();
+ var $toolbar = $listView.find('> .toolbar');
+ var $table = $listView.find('> .data-table');
+
+ equal($listView.size(), 1, 'List view present');
+ equal($toolbar.size(), 1, 'Toolbar present');
+ equal($table.size(), 1, 'Data table div present');
+ equal($table.find('> .fixed-header table thead tr').size(), 1, 'Fixed header present');
+ equal($table.find('> table.body tbody').size(), 1, 'Body table present');
+ });
+
+ test('Fields: basic', function() {
+ var $listView = listView({
+ listView: {
+ fields: {
+ fieldA: { label: 'TestFieldA' }
+ }
+ }
+ });
+ var $fields = $listView.find('.fixed-header table thead tr th');
+
+ equal($fields.size(), 1, 'Column present');
+ ok($fields.hasClass('fieldA'), 'Has ID as classname');
+ equal($fields.html(), 'TestFieldA', 'Has correct label');
+ });
+
+ test('Fields: n columns', function() {
+ var testFields = {
+ fieldA: { label: 'TestFieldA' },
+ fieldB: { label: 'TestFieldB' },
+ fieldC: { label: 'TestFieldC' }
+ };
+
+ var $listView = listView({
+ listView: {
+ fields: testFields
+ }
+ });
+ var $fields = $listView.find('.fixed-header table thead tr th');
+
+ $.each(testFields, function(k, v) {
+ var $field = $fields.filter('.' + k);
+
+ equal($field.size(), 1, k + '-> Column present');
+ equal($field.html(), v.label, k + '-> Has correct label');
+ });
+ });
+}());