From 846019a08a4fad53f492ebeca51abb394a2e1e4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerg=C5=91=20Tisza?= Date: Wed, 23 Apr 2014 20:19:53 +0000 Subject: [PATCH] Make License.isCc() really return booleans Before it returned undefined if the license had no internal name, which caused unexpected behavior when used with $.toggle(). Change-Id: I1dcee6c999982fde47f9d388381fc670d81a6c5d Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/494 --- resources/mmv/model/mmv.model.License.js | 2 +- tests/qunit/mmv/model/mmv.model.License.test.js | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/resources/mmv/model/mmv.model.License.js b/resources/mmv/model/mmv.model.License.js index 09b9b8341..7db9ee8a3 100644 --- a/resources/mmv/model/mmv.model.License.js +++ b/resources/mmv/model/mmv.model.License.js @@ -60,7 +60,7 @@ * @returns {boolean} */ LP.isCc = function () { - return this.internalName && this.internalName.substr( 0, 2 ) === 'cc'; + return this.internalName ? this.internalName.substr( 0, 2 ) === 'cc' : false; }; /** diff --git a/tests/qunit/mmv/model/mmv.model.License.test.js b/tests/qunit/mmv/model/mmv.model.License.test.js index ff8827e95..0aa59f203 100644 --- a/tests/qunit/mmv/model/mmv.model.License.test.js +++ b/tests/qunit/mmv/model/mmv.model.License.test.js @@ -101,4 +101,19 @@ 'Title for license with link is formatted correctly' ); } ); + QUnit.test( 'isCc()', 3, function( assert ) { + var license; + + license = new mw.mmv.model.License( 'CC-BY-SA-2.0', 'cc-by-sa-2.0', + 'Creative Commons Attribution - ShareAlike 2.0', + 'http://creativecommons.org/licenses/by-sa/2.0/' ); + assert.strictEqual( license.isCc(), true, 'CC license recognized' ); + + license = new mw.mmv.model.License( 'Public Domain', 'pd', + 'Public Domain for lack of originality' ); + assert.strictEqual( license.isCc(), false, 'Non-CC license not recognized' ); + + license = new mw.mmv.model.License( 'MIT' ); + assert.strictEqual( license.isCc(), false, 'Non-CC license with no internal name not recognized' ); + } ); }( mediaWiki, jQuery ) );