MarkTraceur has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/96152


Change subject: WIP: Add unit tests
......................................................................

WIP: Add unit tests

Not working as expected now, will come back to this shortly

Change-Id: Idfbec829399ff6969cd01be3c13a8ed7a66a1fef
---
M MultimediaViewer.php
M MultimediaViewerHooks.php
A tests/qunit/ext.multimediaViewer.test.js
3 files changed, 66 insertions(+), 0 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MultimediaViewer 
refs/changes/52/96152/1

diff --git a/MultimediaViewer.php b/MultimediaViewer.php
index 2108652..fa72547 100644
--- a/MultimediaViewer.php
+++ b/MultimediaViewer.php
@@ -135,6 +135,7 @@
 $wgHooks['BeforePageDisplay'][] = 
'MultimediaViewerHooks::getModulesForArticle';
 $wgHooks['CategoryPageView'][] = 
'MultimediaViewerHooks::getModulesForCategory';
 $wgHooks['ResourceLoaderGetConfigVars'][] = 
'MultimediaViewerHooks::resourceLoaderGetConfigVars';
+$wgHooks['ResourceLoaderTestModules'][] = 
'MultimediaViewerHooks::getTestModules';
 
 $wgExtensionCredits['other'][] = array(
        'path' => __FILE__,
diff --git a/MultimediaViewerHooks.php b/MultimediaViewerHooks.php
index 1f170fc..88002fa 100644
--- a/MultimediaViewerHooks.php
+++ b/MultimediaViewerHooks.php
@@ -105,4 +105,25 @@
                );
                return true;
        }
+
+       /**
+        * Get modules for testing our JavaScript
+        * @param array $testModules
+        * @param ResourceLoader resourceLoader
+        * @return bool
+        */
+       public static function getTestModules( array &$testModules, 
ResourceLoader &$resourceLoader ) {
+               $testModules['qunit']['ext.multimediaViewer.tests'] = array(
+                       'scripts' => array(
+                               'tests/qunit/ext.multimediaViewer.test.js',
+                       ),
+                       'dependencies' => array(
+                               'ext.multimediaViewer',
+                       ),
+                       'localBasePath' => __DIR__,
+                       'remoteExtPath' => 'MultimediaViewer',
+               );
+
+               return true;
+       }
 }
diff --git a/tests/qunit/ext.multimediaViewer.test.js 
b/tests/qunit/ext.multimediaViewer.test.js
new file mode 100644
index 0000000..bdff499
--- /dev/null
+++ b/tests/qunit/ext.multimediaViewer.test.js
@@ -0,0 +1,44 @@
+( function ( mw, $ ) {
+       var $fixture = $( '#qunit-fixture' ),
+               clickCases = {
+                       valid: [
+                               $( '<img>' ).appendTo( $( '<a>' ).addClass( 
'image' ).appendTo( $( '<div>' ).addClass( 'gallery' ).appendTo( $fixture ) ) ),
+                               $( '<img>' ).appendTo( $( '<a>' ).addClass( 
'image' ).appendTo( $fixture ) )
+                       ],
+
+                       invalid: [
+                               $( '<img>' ).appendTo( $( '<p>' ).appendTo( 
$fixture ) )
+                       ]
+               };
+
+       QUnit.module( 'ext.multimediaViewer', QUnit.newMwEnvironment() );
+
+       QUnit.test( 'Click events', 2, function ( assert ) {
+               var i, $ele, viewer, count = 0;
+
+               function clickHandler() {
+                       count++;
+                       return false;
+               }
+
+               viewer = new mw.MultimediaViewer();
+               mw.mediaViewer = viewer;
+
+               for ( i = 0; i < clickCases.valid.length; i++ ) {
+                       $ele = clickCases.valid[i].parent();
+                       $ele.click( clickHandler );
+                       $ele.click();
+               }
+
+               assert.equal( count, 0, 'All of the valid links have their 
click events caught by MMV.' );
+               count = 0;
+
+               for ( i = 0; i < clickCases.invalid.length; i++ ) {
+                       $ele = clickCases.invalid[i].parent();
+                       $ele.click( clickHandler );
+                       $ele.click();
+               }
+
+               assert.equal( count, clickCases.invalid.length, 'All of the 
invalid links have their click events pass through.' );
+       } );
+}( mediaWiki, jQuery ) );

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Idfbec829399ff6969cd01be3c13a8ed7a66a1fef
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/MultimediaViewer
Gerrit-Branch: master
Gerrit-Owner: MarkTraceur <[email protected]>

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

Reply via email to