'group2filter1-desc': 'Description of Filter 1 in Group 2',
'group2filter2-label': 'xGroup 2: Filter 2',
'group2filter2-desc': 'Description of Filter 2 in Group 2'
+ },
+ config: {
+ wgStructuredChangeFiltersEnableExperimentalViews: true
}
} ) );
}
]
} ],
+ namespaces = {
+ 0: 'Main',
+ 1: 'Talk',
+ 2: 'User',
+ 3: 'User talk'
+ },
model = new mw.rcfilters.dm.FiltersViewModel();
- model.initializeFilters( definition );
+ model.initializeFilters( definition, namespaces );
assert.ok(
model.getItemByName( 'group1__filter1' ) instanceof mw.rcfilters.dm.FilterItem &&
model.getItemByName( 'group2__filter2' ) instanceof mw.rcfilters.dm.FilterItem &&
model.getItemByName( 'group3__filter1' ) instanceof mw.rcfilters.dm.FilterItem &&
model.getItemByName( 'group3__filter2' ) instanceof mw.rcfilters.dm.FilterItem,
+ model.getItemByName( 'namespace__0' ) instanceof mw.rcfilters.dm.FilterItem,
+ model.getItemByName( 'namespace__1' ) instanceof mw.rcfilters.dm.FilterItem,
+ model.getItemByName( 'namespace__2' ) instanceof mw.rcfilters.dm.FilterItem,
+ model.getItemByName( 'namespace__3' ) instanceof mw.rcfilters.dm.FilterItem,
'Filters instantiated and stored correctly'
);
group2__filter1: false,
group2__filter2: false,
group3__filter1: false,
- group3__filter2: false
+ group3__filter2: false,
+ namespace__0: false,
+ namespace__1: false,
+ namespace__2: false,
+ namespace__3: false
},
'Initial state of filters'
);
group2__filter1: false,
group2__filter2: true,
group3__filter1: true,
- group3__filter2: false
+ group3__filter2: false,
+ namespace__0: false,
+ namespace__1: false,
+ namespace__2: false,
+ namespace__3: false
},
'Updating filter states correctly'
);
}
]
} ],
+ namespaces = {
+ 0: 'Main',
+ 1: 'Talk',
+ 2: 'User',
+ 3: 'User talk'
+ },
testCases = [
{
query: 'group',
group2: [ 'group2__filter1', 'group2__filter2' ]
},
reason: 'Finds filters containing the query string in their group title'
+ },
+ {
+ query: ':Main',
+ expectedMatches: {
+ namespace: [ 'namespace__0' ]
+ },
+ reason: 'Finds namespaces when using : prefix'
+ },
+ {
+ query: ':group',
+ expectedMatches: {},
+ reason: 'Finds no results if using namespaces prefix (:) to search for filter title'
}
],
model = new mw.rcfilters.dm.FiltersViewModel(),
return result;
};
- model.initializeFilters( definition );
+ model.initializeFilters( definition, namespaces );
testCases.forEach( function ( testCase ) {
matches = model.findMatches( testCase.query );
hidefilter6: '0',
group3: ''
},
- 'One filters in one "send_unselected_if_any" group returns the other parameters truthy.'
+ 'One filter in one "send_unselected_if_any" group returns the other parameters truthy.'
);
// Select 2 filters
},
{
// This is mocking case above
- // - 'One filters in one "send_unselected_if_any" group returns the other parameters truthy.'
+ // - 'One filter in one "send_unselected_if_any" group returns the other parameters truthy.'
input: {
group1__hidefilter1: 1
},
group3: ''
},
msg: 'Given an explicit (incomplete) filter state object, the result is the same as if the object give represented the model state.'
+ },
+ {
+ input: {},
+ expected: {
+ hidefilter1: '0',
+ hidefilter2: '0',
+ hidefilter3: '0',
+ hidefilter4: '0',
+ hidefilter5: '0',
+ hidefilter6: '0',
+ group3: ''
+ },
+ msg: 'Given an explicit empty object, the result is all filters set to their falsey unselected value.'
}
];