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 <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits