X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=tests%2Fqunit%2Fsuites%2Fresources%2Fmediawiki.rcfilters%2Fdm.FiltersViewModel.test.js;h=45d591d51e557ac3e2db51b9fefd11fcf756bab1;hb=138298b397b308ad6e4bfc7088884d90e8ac1e37;hp=a700e30aa9c4a8df8ee36d191ccc7bd77f4ddde8;hpb=5120937028f768749d058aa91dde82a96de0af1c;p=lhc%2Fweb%2Fwiklou.git diff --git a/tests/qunit/suites/resources/mediawiki.rcfilters/dm.FiltersViewModel.test.js b/tests/qunit/suites/resources/mediawiki.rcfilters/dm.FiltersViewModel.test.js index a700e30aa9..45d591d51e 100644 --- a/tests/qunit/suites/resources/mediawiki.rcfilters/dm.FiltersViewModel.test.js +++ b/tests/qunit/suites/resources/mediawiki.rcfilters/dm.FiltersViewModel.test.js @@ -38,7 +38,6 @@ name: 'group2', type: 'send_unselected_if_any', fullCoverage: true, - excludedFromSavedQueries: true, conflicts: [ { group: 'group1', filter: 'filter1' } ], filters: [ { name: 'filter4', label: 'group2filter4-label', description: 'group2filter4-desc', cssClass: 'filter4class' }, @@ -61,6 +60,7 @@ }, { name: 'group4', type: 'single_option', + hidden: true, default: 'option2', filters: [ // NOTE: The entire group has no highlight supported @@ -79,7 +79,7 @@ }, { name: 'group6', type: 'boolean', - isSticky: true, + sticky: true, filters: [ { name: 'group6option1', label: 'group6option1-label', description: 'group6option1-desc', cssClass: 'group6opt1class' }, { name: 'group6option2', label: 'group6option2-label', description: 'group6option2-desc', default: true, cssClass: 'group6opt2class' }, @@ -88,7 +88,7 @@ }, { name: 'group7', type: 'single_option', - isSticky: true, + sticky: true, default: 'group7option2', filters: [ { name: 'group7option1', label: 'group7option1-label', description: 'group7option1-desc', cssClass: 'group7opt1class' }, @@ -96,6 +96,22 @@ { name: 'group7option3', label: 'group7option3-label', description: 'group7option3-desc', cssClass: 'group7opt3class' } ] } ], + shortFilterDefinition = [ { + name: 'group1', + type: 'send_unselected_if_any', + filters: [ { name: 'filter1' }, { name: 'filter2' } ] + }, { + name: 'group2', + type: 'boolean', + hidden: true, + filters: [ { name: 'filter3' }, { name: 'filter4' } ] + }, { + name: 'group3', + type: 'string_options', + sticky: true, + default: 'filter6', + filters: [ { name: 'filter5' }, { name: 'filter6' }, { name: 'filter7' } ] + } ], viewsDefinition = { namespaces: { label: 'Namespaces', @@ -124,10 +140,6 @@ group3: 'filter8', group4: 'option2', group5: 'option1', - group6option1: '0', - group6option2: '1', - group6option3: '1', - group7: 'group7option2', namespace: '' }, baseParamRepresentation = { @@ -307,21 +319,7 @@ assert.deepEqual( model.getDefaultParams(), defaultParameters, - 'Default parameters are stored properly per filter and group' - ); - - // Change sticky filter - model.toggleFiltersSelected( { - group7__group7option1: true - } ); - - // Make sure defaults have changed - assert.deepEqual( - model.getDefaultParams(), - $.extend( true, {}, defaultParameters, { - group7: 'group7option1' - } ), - 'Default parameters are stored properly per filter and group' + 'Default parameters are stored properly per filter and group (sticky groups are ignored)' ); } ); @@ -463,12 +461,10 @@ { input: { filter1: '1', // Regular (do not strip) - group6option1: '1', // Sticky - filter4: '1', // Excluded - filter5: '0' // Excluded + group6option1: '1' // Sticky }, result: { filter1: '1' }, - msg: 'Valid input strips all sticky and excluded params regardless of value' + msg: 'Valid input strips all sticky params regardless of value' } ]; @@ -476,7 +472,7 @@ cases.forEach( function ( test ) { assert.deepEqual( - model.removeExcludedParams( test.input ), + model.removeStickyParams( test.input ), test.result, test.msg ); @@ -1430,14 +1426,16 @@ model.initializeFilters( definition ); - assert.ok( - !model.isHighlightEnabled(), + assert.strictEqual( + model.isHighlightEnabled(), + false, 'Initially, highlight is disabled.' ); model.toggleHighlight( true ); - assert.ok( + assert.strictEqual( model.isHighlightEnabled(), + true, 'Highlight is enabled on toggle.' ); @@ -1455,14 +1453,14 @@ 'Highlighted items are highlighted.' ); - assert.equal( + assert.strictEqual( model.getItemByName( 'group1__filter1' ).getHighlightColor(), 'color1', 'Item highlight color is set.' ); model.setHighlightColor( 'group1__filter1', 'color1changed' ); - assert.equal( + assert.strictEqual( model.getItemByName( 'group1__filter1' ).getHighlightColor(), 'color1changed', 'Item highlight color is changed on setHighlightColor.' @@ -1522,4 +1520,45 @@ 'Items without a specified class identifier are not highlighted.' ); } ); + + QUnit.test( 'emptyAllFilters', function ( assert ) { + var model = new mw.rcfilters.dm.FiltersViewModel(); + + model.initializeFilters( shortFilterDefinition, null ); + + model.toggleFiltersSelected( { + group1__filter1: true, + group2__filter4: true, // hidden + group3__filter5: true // sticky + } ); + + model.emptyAllFilters(); + + assert.deepEqual( + model.getSelectedState( true ), + { + group3__filter5: true, + group3__filter6: true + }, + 'Emptying filters does not affect sticky filters' + ); + } ); + + QUnit.test( 'areVisibleFiltersEmpty', function ( assert ) { + var model = new mw.rcfilters.dm.FiltersViewModel(); + model.initializeFilters( shortFilterDefinition, null ); + + model.emptyAllFilters(); + assert.strictEqual( model.areVisibleFiltersEmpty(), true ); + + model.toggleFiltersSelected( { + group3__filter5: true // sticky + } ); + assert.strictEqual( model.areVisibleFiltersEmpty(), true ); + + model.toggleFiltersSelected( { + group1__filter1: true + } ); + assert.strictEqual( model.areVisibleFiltersEmpty(), false ); + } ); }( mediaWiki, jQuery ) );