From 9644e5372b76bfe73d174ee28691e565d22d749e Mon Sep 17 00:00:00 2001 From: jdlrobson Date: Mon, 30 Jul 2018 22:35:54 +0800 Subject: [PATCH] Add tests for page issues code Bug: T191532 Change-Id: I5291b51ec32ab95ff1ec41e50b84fea4567f28cb --- includes/MinervaHooks.php | 5 ++- .../skins.minerva.scripts/cleanuptemplates.js | 9 ++++- .../test_cleanuptemplates.js | 33 +++++++++++++++++++ 3 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 tests/qunit/skins.minerva.scripts/test_cleanuptemplates.js 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 ) );