From 92cfcf8d9f5f771fd3459e9ef998ba436a38e8be Mon Sep 17 00:00:00 2001 From: Max Guglielmi Date: Sun, 7 Dec 2014 23:25:27 +1100 Subject: [PATCH] Added Store unit tests --- src/core.js | 2 +- test/test-config.js | 2 +- test/test-grid-layout.html | 2 +- test/test-store.html | 82 ++++++++++++++++++++++++++++++++++++++ test/test-store.js | 64 +++++++++++++++++++++++++++++ 5 files changed, 149 insertions(+), 3 deletions(-) create mode 100644 test/test-store.html create mode 100644 test/test-store.js diff --git a/src/core.js b/src/core.js index 6346eb7b..e4d94f52 100644 --- a/src/core.js +++ b/src/core.js @@ -2848,7 +2848,7 @@ TableFilter.prototype = { var slcR = this.resultsPerPageSlc; var slcPagesSelIndex = (this.pageSelectorType==this.fltTypeSlc) ? this.pagingSlc.selectedIndex : - parseInt(this.pagingSlc.value-1,10); + parseInt(this.pagingSlc.value-1, 10); this.pagingLength = parseInt(slcR.options[slcR.selectedIndex].value,10); this.startPagingRow = this.pagingLength*slcPagesSelIndex; diff --git a/test/test-config.js b/test/test-config.js index 16fad928..aeffe7ce 100644 --- a/test/test-config.js +++ b/test/test-config.js @@ -3,7 +3,7 @@ // Configure RequireJS so it resolves relative module paths from the `src` // folder. require.config({ - baseUrl: '../src', + baseUrl: '../src' }); }()); \ No newline at end of file diff --git a/test/test-grid-layout.html b/test/test-grid-layout.html index 4790cff4..b5138bec 100644 --- a/test/test-grid-layout.html +++ b/test/test-grid-layout.html @@ -2,7 +2,7 @@ - TableFilter alternate rows tests + TableFilter grid layout diff --git a/test/test-store.html b/test/test-store.html new file mode 100644 index 00000000..dd4b9976 --- /dev/null +++ b/test/test-store.html @@ -0,0 +1,82 @@ + + + + + TableFilter store + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FromDestinationRoad Distance (km)By Air (hrs)By Rail (hrs)
SydneyAdelaide14121.425.3
SydneyBrisbane9821.516
SydneyCanberra286.64.3
SydneyMelbourne8721.110.5
AdelaidePerth27813.138
AdelaideAlice Springs1533220.25
AdelaideBrisbane20452.1540
+ + + +
+
+ + \ No newline at end of file diff --git a/test/test-store.js b/test/test-store.js new file mode 100644 index 00000000..a39bb89d --- /dev/null +++ b/test/test-store.js @@ -0,0 +1,64 @@ +requirejs(['test-config', '../src/core'], function(config, TableFilter){ + + QUnit.start(); + + var Store = require('modules/store').Store; + var Cookie = require('cookie').Cookie; + + var tf = new TableFilter('demo', { + paging: true, + paging_length: 2, + results_per_page: ['Results per page', [2,4,6]], + remember_grid_values: true, + remember_page_number: true, + remember_page_length: true + }); + + Cookie.remove(tf.fltsValuesCookie); + Cookie.remove(tf.pgNbCookie); + Cookie.remove(tf.pgLenCookie); + + tf.init(); + tf._ClearFilters(); + + module('Sanity checks'); + test('Store module', function() { + deepEqual(tf.Cpt.Store instanceof Store, true, 'Store type'); + notEqual(tf.Cpt.Store, null, 'Store instanciated'); + deepEqual(tf.Cpt.Store.duration, 100000, 'Store duration'); + }); + + module('Check page number persistence'); + test('Page number value', function() { + tf._ClearFilters(); + tf._Filter(); + tf._ChangePage(1); + var cookieName = tf.pgNbCookie; + deepEqual(tf.Cpt.Store.getPageNb(cookieName), '2', 'Page number value'); + tf._ClearFilters(); + tf._Filter(); + }); + + module('Check page length persistence'); + test('Page length value', function() { + tf.resultsPerPageSlc.options[2].selected = true; + tf._ChangeResultsPerPage(); + var cookieName = tf.pgLenCookie; + deepEqual(tf.Cpt.Store.getPageLength(cookieName), '2', 'Page length value'); + tf._ClearFilters(); + tf._Filter(); + }); + + module('Check filters persistence'); + test('Filters value', function() { + tf.SetFilterValue(0, 'Sydney'); + tf.SetFilterValue(3, '1.5'); + tf._Filter(); + var cookieName = tf.fltsValuesCookie; + deepEqual(tf.Cpt.Store.getFilterValues(cookieName)[0], 'Sydney', 'Filter 0 value'); + deepEqual(tf.Cpt.Store.getFilterValues(cookieName)[3], '1.5', 'Filter 3 value'); + tf._ClearFilters(); + tf._Filter(); + }); + +});