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

Reply via email to