Esanders has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/381755 )
Change subject: LabelElement: Add tests for setHighlightedQuery ...................................................................... LabelElement: Add tests for setHighlightedQuery Also remove unnecessary <span> wrapping of text-only result. Change-Id: I1b10a2fc5939ba09319061e322e007a40a75b954 --- M src/mixins/LabelElement.js M tests/index.php A tests/mixins/LabelElement.test.js 3 files changed, 59 insertions(+), 8 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/oojs/ui refs/changes/55/381755/1 diff --git a/src/mixins/LabelElement.js b/src/mixins/LabelElement.js index d6136dd..4b23f08 100644 --- a/src/mixins/LabelElement.js +++ b/src/mixins/LabelElement.js @@ -83,15 +83,16 @@ } if ( !query.length || offset === -1 ) { - return $result.text( text ); + $result.text( text ); + } else { + $result.append( + document.createTextNode( text.slice( 0, offset ) ), + $( '<span>' ) + .addClass( 'oo-ui-labelElement-label-highlight' ) + .text( text.slice( offset, offset + query.length ) ), + document.createTextNode( text.slice( offset + query.length ) ) + ); } - $result.append( - document.createTextNode( text.slice( 0, offset ) ), - $( '<span>' ) - .addClass( 'oo-ui-labelElement-label-highlight' ) - .text( text.slice( offset, offset + query.length ) ), - document.createTextNode( text.slice( offset + query.length ) ) - ); return $result.contents(); }; diff --git a/tests/index.php b/tests/index.php index 8c0d3ec..5f76c96 100644 --- a/tests/index.php +++ b/tests/index.php @@ -39,6 +39,7 @@ <script src="./Process.test.js"></script> <script src="./windows.test.js"></script> <script src="./mixins/FlaggedElement.test.js"></script> + <script src="./mixins/LabelElement.test.js"></script> <script src="./widgets/TagMultiselectWidget.test.js"></script> <script src="./widgets/MenuTagMultiselectWidget.test.js"></script> <script src="./widgets/NumberInputWidget.test.js"></script> diff --git a/tests/mixins/LabelElement.test.js b/tests/mixins/LabelElement.test.js new file mode 100644 index 0000000..a481b6f --- /dev/null +++ b/tests/mixins/LabelElement.test.js @@ -0,0 +1,49 @@ +( function () { + QUnit.module( 'LabelElement' ); + + function TestElement( config ) { + TestElement.parent.call( this, config ); + OO.ui.mixin.LabelElement.call( this, config ); + } + OO.inheritClass( TestElement, OO.ui.Widget ); + OO.mixinClass( TestElement, OO.ui.mixin.LabelElement ); + + QUnit.test( 'setHighlightedQuery', function ( assert ) { + var i, + element = new TestElement(), + diacriticCompare = new Intl.Collator( 'en', { sensitivity: 'base' } ).compare, + cases = [ + { + msg: 'Simple substring', + label: 'Foo', + query: 'fo', + expected: '<span class="oo-ui-labelElement-label-highlight">Fo</span>o' + }, + { + msg: 'No match', + label: 'Foo', + query: 'bar', + expected: 'Foo' + }, + { + msg: 'Diacritic compare', + label: 'Liberté, égalité, fraternité', + query: 'Egalite', + compare: diacriticCompare, + expected: 'Liberté, <span class="oo-ui-labelElement-label-highlight">égalité</span>, fraternité' + }, + { + msg: 'Diacritic compare failure', + label: 'Liberté, égalité, fraternité', + query: 'Egalite', + compare: null, + expected: 'Liberté, égalité, fraternité' + } + ]; + + for ( i = 0; i < cases.length; i++ ) { + element.setHighlightedQuery( cases[ i ].label, cases[ i ].query, cases[ i ].compare ); + assert.deepEqual( element.$label.html(), cases[ i ].expected, cases[ i ].msg ); + } + } ); +}() ); -- To view, visit https://gerrit.wikimedia.org/r/381755 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I1b10a2fc5939ba09319061e322e007a40a75b954 Gerrit-PatchSet: 1 Gerrit-Project: oojs/ui Gerrit-Branch: master Gerrit-Owner: Esanders <esand...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits