[MediaWiki-commits] [Gerrit] data-values/value-view[master]: Add search() integration test for jquery.ui.commonssuggester
jenkins-bot has submitted this change and it was merged. Change subject: Add search() integration test for jquery.ui.commonssuggester .. Add search() integration test for jquery.ui.commonssuggester Bug: T147917 Change-Id: I53d2584f50dc04f8c4107656e8becab367545699 --- M lib/jquery.ui/jquery.ui.commonssuggester.js M tests/lib/jquery.ui/jquery.ui.commonssuggester.tests.js M tests/lib/jquery.ui/jquery.ui.suggester.tests.js 3 files changed, 44 insertions(+), 9 deletions(-) Approvals: Hoo man: Looks good to me, but someone else must approve Jonas Kress (WMDE): Looks good to me, approved jenkins-bot: Verified diff --git a/lib/jquery.ui/jquery.ui.commonssuggester.js b/lib/jquery.ui/jquery.ui.commonssuggester.js index 6979cf5..2720637 100644 --- a/lib/jquery.ui/jquery.ui.commonssuggester.js +++ b/lib/jquery.ui/jquery.ui.commonssuggester.js @@ -14,6 +14,14 @@ * @constructor */ $.widget( 'ui.commonssuggester', $.ui.suggester, { + + /** +* @see jQuery.ui.suggester.options +*/ + options: { + ajax: $.ajax + }, + /** * @inheritdoc * @protected @@ -37,7 +45,7 @@ return function( term ) { var deferred = $.Deferred(); - $.ajax( { + self.options.ajax( { url: 'https://commons.wikimedia.org/w/api.php', dataType: 'jsonp', data: { diff --git a/tests/lib/jquery.ui/jquery.ui.commonssuggester.tests.js b/tests/lib/jquery.ui/jquery.ui.commonssuggester.tests.js index 54b0d77..8dd7eba 100644 --- a/tests/lib/jquery.ui/jquery.ui.commonssuggester.tests.js +++ b/tests/lib/jquery.ui/jquery.ui.commonssuggester.tests.js @@ -5,11 +5,15 @@ ( function( $, QUnit ) { 'use strict'; - var newTestSuggester = function() { + /** +* @param {Object} [options] +* @return {jQuery} +*/ + var newTestSuggester = function( options ) { return $( '' ) .addClass( 'test_suggester' ) .appendTo( 'body' ) - .commonssuggester(); + .commonssuggester( options ); }; QUnit.module( 'jquery.ui.commonssuggester', { @@ -73,16 +77,38 @@ // Do not do anything with invalid URL encoding '1%': '1%', 'title=1%.jpg': 'title=1%.jpg' - }; + }, + numberOfTestCases = Object.keys( testCases ).length; - assert.expect( Object.keys( testCases ).length ); + assert.expect( numberOfTestCases ); - for ( var input in testCases ) { - var actual = suggester._grepFileTitleFromTerm( input ), - expected = testCases[input]; + $.each( testCases, function( input, expected ) { + var actual = suggester._grepFileTitleFromTerm( input ); assert.strictEqual( actual, expected ); - } + } ); + } ); + + QUnit.test( 'search integration', function( assert ) { + assert.expect( 2 ); + var $suggester = newTestSuggester( { ajax: function( options ) { + var response = [ '', [] ]; + + response[1]._requestTerm = options.data.search; + + return $.Deferred().resolve( response ).promise(); + } } ), + suggester = $suggester.data( 'commonssuggester' ), + input = 'title=Foo/Bar', + done = assert.async(); + + $suggester.val( input ); + suggester.search().done( function( suggestions, term ) { + assert.strictEqual( suggestions._requestTerm, 'Bar' ); + assert.strictEqual( term, input ); + + done(); + } ); } ); }( jQuery, QUnit ) ); diff --git a/tests/lib/jquery.ui/jquery.ui.suggester.tests.js b/tests/lib/jquery.ui/jquery.ui.suggester.tests.js index 7be3e36..51cf201 100644 --- a/tests/lib/jquery.ui/jquery.ui.suggester.tests.js +++ b/tests/lib/jquery.ui/jquery.ui.suggester.tests.js @@ -17,6 +17,7 @@ * Factory creating a jQuery.ui.suggester widget suitable for testing. * * @param {Object} [options] +* @return {jQuery} */ var newTestSuggester = function( options ) { options = $.extend( { -- To view, visit
[MediaWiki-commits] [Gerrit] data-values/value-view[master]: Add search() integration test for jquery.ui.commonssuggester
Thiemo Mättig (WMDE) has uploaded a new change for review. https://gerrit.wikimedia.org/r/315684 Change subject: Add search() integration test for jquery.ui.commonssuggester .. Add search() integration test for jquery.ui.commonssuggester Bug: T147917 Change-Id: I53d2584f50dc04f8c4107656e8becab367545699 --- M lib/jquery.ui/jquery.ui.commonssuggester.js M tests/lib/jquery.ui/jquery.ui.commonssuggester.tests.js M tests/lib/jquery.ui/jquery.ui.suggester.tests.js 3 files changed, 44 insertions(+), 9 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/data-values/value-view refs/changes/84/315684/1 diff --git a/lib/jquery.ui/jquery.ui.commonssuggester.js b/lib/jquery.ui/jquery.ui.commonssuggester.js index 6979cf5..2720637 100644 --- a/lib/jquery.ui/jquery.ui.commonssuggester.js +++ b/lib/jquery.ui/jquery.ui.commonssuggester.js @@ -14,6 +14,14 @@ * @constructor */ $.widget( 'ui.commonssuggester', $.ui.suggester, { + + /** +* @see jQuery.ui.suggester.options +*/ + options: { + ajax: $.ajax + }, + /** * @inheritdoc * @protected @@ -37,7 +45,7 @@ return function( term ) { var deferred = $.Deferred(); - $.ajax( { + self.options.ajax( { url: 'https://commons.wikimedia.org/w/api.php', dataType: 'jsonp', data: { diff --git a/tests/lib/jquery.ui/jquery.ui.commonssuggester.tests.js b/tests/lib/jquery.ui/jquery.ui.commonssuggester.tests.js index 54b0d77..fa779ec 100644 --- a/tests/lib/jquery.ui/jquery.ui.commonssuggester.tests.js +++ b/tests/lib/jquery.ui/jquery.ui.commonssuggester.tests.js @@ -5,11 +5,15 @@ ( function( $, QUnit ) { 'use strict'; - var newTestSuggester = function() { + /** +* @param {Object} [options] +* @return {jQuery} +*/ + var newTestSuggester = function( options ) { return $( '' ) .addClass( 'test_suggester' ) .appendTo( 'body' ) - .commonssuggester(); + .commonssuggester( options ); }; QUnit.module( 'jquery.ui.commonssuggester', { @@ -73,16 +77,38 @@ // Do not do anything with invalid URL encoding '1%': '1%', 'title=1%.jpg': 'title=1%.jpg' - }; + }, + numberOfTestCases = Object.keys( testCases ).length; - assert.expect( Object.keys( testCases ).length ); + assert.expect( numberOfTestCases ); - for ( var input in testCases ) { - var actual = suggester._grepFileTitleFromTerm( input ), - expected = testCases[input]; + $.each( testCases, function( input, expected ) { + var actual = suggester._grepFileTitleFromTerm( input ); assert.strictEqual( actual, expected ); - } + } ); + } ); + + QUnit.test( 'search integration', function( assert ) { + assert.expect( 2 ); + var $suggester = newTestSuggester( { ajax: function( options ) { + var response = [ , [] ]; + + response[1]._requestTerm = options.data.search; + + return $.Deferred().resolve( response ).promise(); + } } ), + suggester = $suggester.data( 'commonssuggester' ), + input = 'title=Foo/Bar', + done = assert.async(); + + $suggester.val( input ); + suggester.search().done( function( suggestions, term ) { + assert.strictEqual( suggestions._requestTerm, 'Bar' ); + assert.strictEqual( term, input ); + + done(); + } ); } ); }( jQuery, QUnit ) ); diff --git a/tests/lib/jquery.ui/jquery.ui.suggester.tests.js b/tests/lib/jquery.ui/jquery.ui.suggester.tests.js index 7be3e36..51cf201 100644 --- a/tests/lib/jquery.ui/jquery.ui.suggester.tests.js +++ b/tests/lib/jquery.ui/jquery.ui.suggester.tests.js @@ -17,6 +17,7 @@ * Factory creating a jQuery.ui.suggester widget suitable for testing. * * @param {Object} [options] +* @return {jQuery} */ var newTestSuggester = function( options ) { options = $.extend( { -- To view, visit