Gilles has uploaded a new change for review.

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

Change subject: Add test for clicking prev/next
......................................................................

Add test for clicking prev/next

Change-Id: I02653d97500d5a876f142a518d9b53b0d4746aef
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/145
---
M MultimediaViewerHooks.php
M tests/qunit/mmv/mmv.lightboxinterface.test.js
M tests/qunit/mmv/mmv.test.js
A tests/qunit/mmv/ui/mmv.ui.buttons.test.js
M tests/qunit/mmv/ui/mmv.ui.canvas.test.js
5 files changed, 79 insertions(+), 15 deletions(-)


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

diff --git a/MultimediaViewerHooks.php b/MultimediaViewerHooks.php
index cf88591..79e1207 100644
--- a/MultimediaViewerHooks.php
+++ b/MultimediaViewerHooks.php
@@ -139,6 +139,7 @@
                                
'tests/qunit/mmv/provider/mmv.provider.UserInfo.test.js',
                                
'tests/qunit/mmv/provider/mmv.provider.Image.test.js',
                                'tests/qunit/mmv/ui/mmv.ui.test.js',
+                               'tests/qunit/mmv/ui/mmv.ui.buttons.test.js',
                                'tests/qunit/mmv/ui/mmv.ui.canvas.test.js',
                                'tests/qunit/mmv/ui/mmv.ui.categories.test.js',
                                'tests/qunit/mmv/ui/mmv.ui.description.test.js',
diff --git a/tests/qunit/mmv/mmv.lightboxinterface.test.js 
b/tests/qunit/mmv/mmv.lightboxinterface.test.js
index c966bb7..1404de5 100644
--- a/tests/qunit/mmv/mmv.lightboxinterface.test.js
+++ b/tests/qunit/mmv/mmv.lightboxinterface.test.js
@@ -384,6 +384,9 @@
                lightbox.keydown( $.Event( 'keydown', { which : 37 } ) );
                lightbox.keydown( $.Event( 'keydown', { which : 39 } ) );
 
+               lightbox.buttons.$next.click();
+               lightbox.buttons.$prev.click();
+
                viewer.nextImage = function () {
                        assert.ok( false, 'Next image should not have been 
open' );
                };
diff --git a/tests/qunit/mmv/mmv.test.js b/tests/qunit/mmv/mmv.test.js
index 98f1268..1b2f0db 100644
--- a/tests/qunit/mmv/mmv.test.js
+++ b/tests/qunit/mmv/mmv.test.js
@@ -1,22 +1,30 @@
 ( function ( mw, $ ) {
+       var oldSetupEventHandlers;
+
        QUnit.module( 'mmv', QUnit.newMwEnvironment() );
+
+       // Because we don't want that throwaway instance to listen to events, 
could interfere with other tests
+       function newViewer() {
+               oldSetupEventHandlers = 
mw.mmv.MultimediaViewer.prototype.setupEventHandlers;
+               mw.mmv.MultimediaViewer.prototype.setupEventHandlers = $.noop;
+               return new mw.mmv.MultimediaViewer();
+       }
+
+       function cleanNewViewer() {
+               mw.mmv.MultimediaViewer.prototype.setupEventHandlers = 
oldSetupEventHandlers;
+       }
 
        QUnit.test( 'Metadata div is only animated once', 4, function ( assert 
) {
                localStorage.removeItem( 'mmv.hasOpenedMetadata' );
 
-               var viewer,
+               var viewer = newViewer(),
                        backupAnimation = $.fn.animate,
-                       animationRan = false,
-                       oldSetupEventHandlers = 
mw.mmv.MultimediaViewer.prototype.setupEventHandlers;
+                       animationRan = false;
 
                $.fn.animate = function () {
                        animationRan = true;
                        return this;
                };
-
-               // Because we don't want that throwaway instance to listen to 
events, could interfere with other tests
-               mw.mmv.MultimediaViewer.prototype.setupEventHandlers = $.noop;
-               viewer = new mw.mmv.MultimediaViewer();
 
                viewer.animateMetadataDivOnce();
                assert.strictEqual( viewer.hasAnimatedMetadata, true, 'The 
first call to animateMetadataDivOnce set hasAnimatedMetadata to true' );
@@ -29,7 +37,7 @@
 
                $.fn.animate = backupAnimation;
 
-               mw.mmv.MultimediaViewer.prototype.setupEventHandlers = 
oldSetupEventHandlers;
+               cleanNewViewer();
        } );
 
        QUnit.test( 'eachPrealoadableLightboxIndex()', 11, function ( assert ) {
@@ -155,7 +163,7 @@
 
        QUnit.test( 'Progress', 3, function ( assert ) {
                var imageDeferred = $.Deferred(),
-                       viewer = new mw.mmv.MultimediaViewer(),
+                       viewer = newViewer(),
                        oldImageGet = mw.mmv.provider.Image.prototype.get,
                        oldImageInfoGet = 
mw.mmv.provider.ImageInfo.prototype.get,
                        oldThumbnailInfoGet = 
mw.mmv.provider.ThumbnailInfo.prototype.get,
@@ -203,10 +211,12 @@
                mw.mmv.provider.Image.prototype.get = oldImageGet;
                mw.mmv.provider.ImageInfo.prototype.get = oldImageInfoGet;
                mw.mmv.provider.ThumbnailInfo.prototype.get = 
oldThumbnailInfoGet;
+
+               cleanNewViewer();
        } );
 
        QUnit.test( 'resetBlurredThumbnailStates', 4, function ( assert ) {
-               var viewer = new mw.mmv.MultimediaViewer();
+               var viewer = newViewer();
 
                assert.ok( !viewer.realThumbnailShown, 'Real thumbnail state is 
correct' );
                assert.ok( !viewer.blurredThumbnailShown, 'Placeholder state is 
correct' );
@@ -218,10 +228,12 @@
 
                assert.ok( !viewer.realThumbnailShown, 'Real thumbnail state is 
correct' );
                assert.ok( !viewer.blurredThumbnailShown, 'Placeholder state is 
correct' );
+
+               cleanNewViewer();
        } );
 
        QUnit.test( 'Placeholder first, then real thumbnail', 4, function ( 
assert ) {
-               var viewer = new mw.mmv.MultimediaViewer();
+               var viewer = newViewer();
 
                viewer.setImage = $.noop;
                viewer.lightbox = { iface : { canvas : {
@@ -237,10 +249,12 @@
 
                assert.ok( viewer.realThumbnailShown, 'Real thumbnail state is 
correct' );
                assert.ok( viewer.blurredThumbnailShown, 'Placeholder state is 
correct' );
+
+               cleanNewViewer();
        } );
 
        QUnit.test( 'Real thumbnail first, then placeholder', 4, function ( 
assert ) {
-               var viewer = new mw.mmv.MultimediaViewer();
+               var viewer = newViewer();
 
                viewer.setImage = $.noop;
                viewer.lightbox = { iface : {
@@ -256,10 +270,12 @@
 
                assert.ok( viewer.realThumbnailShown, 'Real thumbnail state is 
correct' );
                assert.ok( !viewer.blurredThumbnailShown, 'Placeholder state is 
correct' );
+
+               cleanNewViewer();
        } );
 
        QUnit.test( 'displayRealThumbnail', 1, function ( assert ) {
-               var viewer = new mw.mmv.MultimediaViewer();
+               var viewer = newViewer();
 
                viewer.setImage = $.noop;
                viewer.lightbox = { iface : { canvas : {
@@ -276,12 +292,14 @@
 
                // Should result in an unblur (image didn't come from cache)
                viewer.displayRealThumbnail( undefined, undefined, undefined, 
1000 );
+
+               cleanNewViewer();
        } );
 
        QUnit.test( 'New image loaded while another one is loading', 1, 
function ( assert ) {
                var imageDeferred,
                        ligthboxInfoDeferred,
-                       viewer = new mw.mmv.MultimediaViewer(),
+                       viewer = newViewer(),
                        oldImageGet = mw.mmv.provider.Image.prototype.get,
                        oldImageInfoGet = 
mw.mmv.provider.ImageInfo.prototype.get,
                        oldThumbnailInfoGet = 
mw.mmv.provider.ThumbnailInfo.prototype.get,
@@ -348,5 +366,7 @@
                mw.mmv.provider.Image.prototype.get = oldImageGet;
                mw.mmv.provider.ImageInfo.prototype.get = oldImageInfoGet;
                mw.mmv.provider.ThumbnailInfo.prototype.get = 
oldThumbnailInfoGet;
+
+               cleanNewViewer();
        } );
 }( mediaWiki, jQuery ) );
diff --git a/tests/qunit/mmv/ui/mmv.ui.buttons.test.js 
b/tests/qunit/mmv/ui/mmv.ui.buttons.test.js
new file mode 100644
index 0000000..e4cf3ed
--- /dev/null
+++ b/tests/qunit/mmv/ui/mmv.ui.buttons.test.js
@@ -0,0 +1,40 @@
+/*
+ * This file is part of the MediaWiki extension MediaViewer.
+ *
+ * MediaViewer is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * MediaViewer is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with MediaViewer.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+( function( mw, $ ) {
+       QUnit.module( 'mmv.ui.Buttons', QUnit.newMwEnvironment() );
+
+       QUnit.test( 'Prev/Next', 2, function( assert ) {
+               var $qf = $( '#qunit-fixture' ),
+                       buttons = new mw.mmv.ui.Buttons( $qf, $( '<div>' ), $( 
'<div>' ) ),
+                       viewer = mw.mmv.mediaViewer,
+                       oldLoadIndex = viewer.loadIndex,
+                       oldLightbox = viewer.lightbox;
+
+               viewer.lightbox = {};
+
+               viewer.loadIndex = function () {
+                       assert.ok( true, 'Switched to next/prev image' );
+               };
+
+               buttons.$next.click();
+               buttons.$prev.click();
+
+               viewer.loadIndex = oldLoadIndex;
+               viewer.lightbox = oldLightbox;
+       } );
+}( mediaWiki, jQuery ) );
diff --git a/tests/qunit/mmv/ui/mmv.ui.canvas.test.js 
b/tests/qunit/mmv/ui/mmv.ui.canvas.test.js
index dfc410d..774c66d 100644
--- a/tests/qunit/mmv/ui/mmv.ui.canvas.test.js
+++ b/tests/qunit/mmv/ui/mmv.ui.canvas.test.js
@@ -16,7 +16,7 @@
  */
 
 ( function( mw, $ ) {
-       QUnit.module( 'mw.mmv.ui.Canvas', QUnit.newMwEnvironment() );
+       QUnit.module( 'mmv.ui.Canvas', QUnit.newMwEnvironment() );
 
        QUnit.test( 'Constructor sanity check', 3, function( assert ) {
                var $qf = $( '#qunit-fixture' ),

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I02653d97500d5a876f142a518d9b53b0d4746aef
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/MultimediaViewer
Gerrit-Branch: master
Gerrit-Owner: Gilles <gdu...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to