WMDE-Fisch has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/340989 )

Change subject: Added QUnit tests for the HelpDialog module
......................................................................


Added QUnit tests for the HelpDialog module

Change-Id: Ic660ffe9906b93d8c0b5e6de3e543af0829fc42b
---
M .eslintrc.json
M extension.json
M includes/TwoColConflictHooks.php
M modules/ext.TwoColConflict.HelpDialog.js
A tests/qunit/TwoColConflict.HelpDialog.test.js
5 files changed, 101 insertions(+), 1 deletion(-)

Approvals:
  Addshore: Looks good to me, but someone else must approve
  Tobias Gritschacher: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/.eslintrc.json b/.eslintrc.json
index 6407c75..1dc4bf0 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -2,7 +2,8 @@
        "extends": "wikimedia",
        "env": {
                "browser": true,
-               "jquery": true
+               "jquery": true,
+               "qunit": true
        },
        "globals": {
                "mediaWiki": false,
diff --git a/extension.json b/extension.json
index cd0badc..25908d1 100644
--- a/extension.json
+++ b/extension.json
@@ -29,6 +29,9 @@
                ],
                "CustomEditor": [
                        "TwoColConflictHooks::onCustomEditor"
+               ],
+               "ResourceLoaderTestModules": [
+                       "TwoColConflictHooks::onResourceLoaderTestModules"
                ]
        },
        "MessagesDirs": {
diff --git a/includes/TwoColConflictHooks.php b/includes/TwoColConflictHooks.php
index 574a799..6b0fd3b 100644
--- a/includes/TwoColConflictHooks.php
+++ b/includes/TwoColConflictHooks.php
@@ -56,4 +56,18 @@
                }
        }
 
+       public static function onResourceLoaderTestModules( array 
&$testModules, ResourceLoader $rl ) {
+               $testModules['qunit']['ext.TwoColConflict.tests'] = [
+                       'scripts' => [
+                               'tests/qunit/TwoColConflict.HelpDialog.test.js'
+                       ],
+                       'dependencies' => [
+                               'ext.TwoColConflict.HelpDialog'
+                       ],
+                       'localBasePath' => dirname( __DIR__ ),
+                       'remoteExtPath' => 'TwoColConflict',
+               ];
+
+               return true;
+       }
 }
diff --git a/modules/ext.TwoColConflict.HelpDialog.js 
b/modules/ext.TwoColConflict.HelpDialog.js
index 8ddf1cb..02b9f23 100644
--- a/modules/ext.TwoColConflict.HelpDialog.js
+++ b/modules/ext.TwoColConflict.HelpDialog.js
@@ -174,6 +174,10 @@
                                windowManager.closeWindow( dialog );
                        }
                };
+
+               HelpDialog.getDialogInstance = function () {
+                       return dialog;
+               };
        };
 
        mw.libs.twoColConflict = mw.libs.twoColConflict || {};
diff --git a/tests/qunit/TwoColConflict.HelpDialog.test.js 
b/tests/qunit/TwoColConflict.HelpDialog.test.js
new file mode 100644
index 0000000..2e76215
--- /dev/null
+++ b/tests/qunit/TwoColConflict.HelpDialog.test.js
@@ -0,0 +1,78 @@
+( function ( mw ) {
+       var helpDialog = mw.libs.twoColConflict.HelpDialog,
+               dialog;
+
+       QUnit.module( 'ext.TwoColConflict.HelpDialog' );
+
+       QUnit.test( 'Initialize HelpDialog', function ( assert ) {
+               helpDialog.init( {
+                       name: 'twoColConflict',
+                       title: 'twoColConflict-tutorial',
+                       size: 'medium',
+                       prev: 'twoColConflict-previous-dialog',
+                       next: 'twoColConflict-next-dialog',
+                       close: 'twoColConflict-close-dialog',
+                       slides: [
+                               {
+                                       message: 
'twoColConflict-help-dialog-slide1',
+                                       imageClass: 
'mw-twocolconflict-help-dialog-slide-1',
+                                       imageMode: 'landscape'
+                               },
+                               {
+                                       message: 
'twoColConflict-help-dialog-slide2',
+                                       imageClass: 
'mw-twocolconflict-help-dialog-slide-2',
+                                       imageMode: 'landscape'
+                               },
+                               {
+                                       message: 
'twoColConflict-help-dialog-slide3',
+                                       imageClass: 
'mw-twocolconflict-help-dialog-slide-3',
+                                       imageMode: 'landscape'
+                               },
+                               {
+                                       message: 
'twoColConflict-help-dialog-slide4',
+                                       imageClass: 
'mw-twocolconflict-help-dialog-slide-4',
+                                       imageMode: 'landscape'
+                               }
+                       ]
+               } );
+
+               dialog = helpDialog.getDialogInstance();
+
+               helpDialog.show();
+               helpDialog.hide();
+
+               function getSlideTextHtml( slide ) {
+                       return slide.$element.find( 
'.mw-twocolconflict-help-dialog-text' ).html();
+               }
+
+               function addLinkTargets( parsedMessage ) {
+                       var $container = $( '<div>' ).html( parsedMessage );
+                       $container.find( 'a' ).attr( 'target', '_blank' );
+                       return $container.html();
+               }
+
+               assert.equal( dialog.slides.length, 4 );
+               assert.equal( dialog.slidePointer, 0 );
+               assert.equal(
+                       getSlideTextHtml( dialog.slides[ 0 ] ),
+                       addLinkTargets( mw.message( 
'twoColConflict-help-dialog-slide1' ).parse() )
+               );
+               assert.equal(
+                       getSlideTextHtml( dialog.slides[ 1 ] ),
+                       addLinkTargets( mw.message( 
'twoColConflict-help-dialog-slide2' ).parse() )
+               );
+               assert.equal(
+                       getSlideTextHtml( dialog.slides[ 2 ] ),
+                       addLinkTargets( mw.message( 
'twoColConflict-help-dialog-slide3' ).parse() )
+               );
+               assert.equal(
+                       getSlideTextHtml( dialog.slides[ 3 ] ),
+                       addLinkTargets( mw.message( 
'twoColConflict-help-dialog-slide4' ).parse() )
+               );
+               assert.ok( dialog.slides[ 0 ].$element.find( 'div' ).hasClass( 
'mw-twocolconflict-help-dialog-slide-1' ) );
+               assert.ok( dialog.slides[ 1 ].$element.find( 'div' ).hasClass( 
'mw-twocolconflict-help-dialog-slide-2' ) );
+               assert.ok( dialog.slides[ 2 ].$element.find( 'div' ).hasClass( 
'mw-twocolconflict-help-dialog-slide-3' ) );
+               assert.ok( dialog.slides[ 3 ].$element.find( 'div' ).hasClass( 
'mw-twocolconflict-help-dialog-slide-4' ) );
+       } );
+
+}( mediaWiki ) );

-- 
To view, visit https://gerrit.wikimedia.org/r/340989
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ic660ffe9906b93d8c0b5e6de3e543af0829fc42b
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/TwoColConflict
Gerrit-Branch: master
Gerrit-Owner: Andrew-WMDE <[email protected]>
Gerrit-Reviewer: Addshore <[email protected]>
Gerrit-Reviewer: Tobias Gritschacher <[email protected]>
Gerrit-Reviewer: WMDE-Fisch <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to