diff --git a/includes/MinervaHooks.php b/includes/MinervaHooks.php index d95554c..2fbfad9 100644 --- a/includes/MinervaHooks.php +++ b/includes/MinervaHooks.php @@ -75,7 +75,8 @@ class MinervaHooks { 'mobile.startup', 'skins.minerva.notifications.badge', 'mediawiki.user', - 'mediawiki.experiments' + 'mediawiki.experiments', + 'mobile.issues' ], 'localBasePath' => dirname( __DIR__ ), 'remoteSkinPath' => 'MinervaNeue', @@ -85,10 +86,12 @@ class MinervaHooks { 'resources/skins.minerva.scripts/pageIssueParser.js', 'resources/skins.minerva.scripts/DownloadIcon.js', 'resources/skins.minerva.scripts/AB.js', + 'resources/skins.minerva.scripts/cleanuptemplates.js', // test files 'tests/qunit/skins.minerva.scripts/test_DownloadIcon.js', 'tests/qunit/skins.minerva.scripts/test_pageIssueParser.js', 'tests/qunit/skins.minerva.scripts/test_AB.js', + 'tests/qunit/skins.minerva.scripts/test_cleanuptemplates.js', 'tests/qunit/skins.minerva.notifications.badge/test_NotificationBadge.js' ], ]; diff --git a/resources/skins.minerva.scripts/cleanuptemplates.js b/resources/skins.minerva.scripts/cleanuptemplates.js index f2bbc6c..ae465b0 100644 --- a/resources/skins.minerva.scripts/cleanuptemplates.js +++ b/resources/skins.minerva.scripts/cleanuptemplates.js @@ -88,6 +88,8 @@ * and if false, a link will be rendered under the heading. * @param {OverlayManager} overlayManager * @ignore + * + * @return {JQuery.Object} */ function createBanner( $container, labelText, section, inline, overlayManager ) { var $learnMore, @@ -148,6 +150,8 @@ $metadata.remove(); } } + + return $metadata; } /** @@ -250,7 +254,10 @@ } M.define( 'skins.minerva.scripts/cleanuptemplates', { - init: initPageIssues + init: initPageIssues, + test: { + createBanner: createBanner + } } ); }( mw.mobileFrontend, jQuery ) ); diff --git a/tests/qunit/skins.minerva.scripts/test_cleanuptemplates.js b/tests/qunit/skins.minerva.scripts/test_cleanuptemplates.js new file mode 100644 index 0000000..c900df5 --- /dev/null +++ b/tests/qunit/skins.minerva.scripts/test_cleanuptemplates.js @@ -0,0 +1,33 @@ +( function ( M ) { + var createBanner = M.require( 'skins.minerva.scripts/cleanuptemplates' ).test.createBanner, + OverlayManager = M.require( 'mobile.startup/OverlayManager' ), + overlayManager = new OverlayManager( require( 'mediawiki.router' ) ), + $mockContainer = $( + '
' + + '' + + '' + + '' + + '' + + '
ambox text span
' + + '
' + ), + labelText = 'label text', + section = 0, + inline = true, + processedAmbox = createBanner( $mockContainer, labelText, section, inline, overlayManager ); + + QUnit.module( 'Minerva cleanuptemplates' ); + + QUnit.test( 'createBanner() should add a "learn more" message', function ( assert ) { + assert.strictEqual( /⧼skin-minerva-issue-learn-more⧽/.test( processedAmbox.html() ), true ); + } ); + + QUnit.test( 'createBanner() should add an icon', function ( assert ) { + assert.strictEqual( /mw-ui-icon/.test( processedAmbox.html() ), true ); + } ); + QUnit.test( 'clicking on the product of createBanner() should trigger a URL change', function ( assert ) { + processedAmbox.click(); + assert.strictEqual( window.location.hash, '#/issues/0' ); + } ); + +}( mw.mobileFrontend ) );