Siebrand has uploaded a new change for review.

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

Change subject: Add tests
......................................................................

Add tests

Fix all issues so tests pass.

Change-Id: I06cedc55c0d64950d94225cc12c1a57b961d06c0
---
M .gitignore
A Gruntfile.js
M SpecialUserOptionStats.php
D UserOptionStats.i18n.php
M UserOptionStats.php
A composer.json
M i18n/en.json
A package.json
A phpcs.xml
9 files changed, 81 insertions(+), 59 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/UserOptionStats 
refs/changes/62/243162/1

diff --git a/.gitignore b/.gitignore
index c798be9..854a2d2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
-.svn
 *~
 *.kate-swp
 .*.swp
-.idea
+node_modules/
+/composer.lock
+/vendor/
diff --git a/Gruntfile.js b/Gruntfile.js
new file mode 100644
index 0000000..9c56558
--- /dev/null
+++ b/Gruntfile.js
@@ -0,0 +1,20 @@
+/*jshint node:true */
+module.exports = function ( grunt ) {
+       grunt.loadNpmTasks( 'grunt-banana-checker' );
+       grunt.loadNpmTasks( 'grunt-jsonlint' );
+
+       grunt.initConfig( {
+               banana: {
+                       all: 'i18n/'
+               },
+               jsonlint: {
+                       all: [
+                               '**/*.json',
+                               '!node_modules/**'
+                       ]
+               }
+       } );
+
+       grunt.registerTask( 'test', [ 'jsonlint', 'banana' ] );
+       grunt.registerTask( 'default', 'test' );
+};
diff --git a/SpecialUserOptionStats.php b/SpecialUserOptionStats.php
index 38b5de7..cc3b98a 100644
--- a/SpecialUserOptionStats.php
+++ b/SpecialUserOptionStats.php
@@ -9,7 +9,7 @@
  * @license GPL-2.0+
  */
 class SpecialUserOptionStats extends SpecialPage {
-       function __construct() {
+       public function __construct() {
                parent::__construct( 'UserOptionStats' );
        }
 
@@ -21,6 +21,7 @@
 
                if ( !class_exists( 'PHPlot' ) ) {
                        $this->getOutput()->addWikiMsg( 'uos-warn' );
+
                        return;
                }
 
@@ -53,6 +54,7 @@
                                }
                                $this->getOutput()->addWikiMsg( 
'uos-choose-hidden', $lang->commaList( $hiddenopts ) );
                        }
+
                        return;
                }
 
@@ -158,6 +160,7 @@
                if ( isset( $wgHiddenPrefs ) && is_array( $wgHiddenPrefs ) ) {
                        return $wgHiddenPrefs;
                }
+
                return array();
        }
 
diff --git a/UserOptionStats.i18n.php b/UserOptionStats.i18n.php
deleted file mode 100644
index a1136d7..0000000
--- a/UserOptionStats.i18n.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-/**
- * This is a backwards-compatibility shim, generated by:
- * 
https://git.wikimedia.org/blob/mediawiki%2Fcore.git/HEAD/maintenance%2FgenerateJsonI18n.php
- *
- * Beginning with MediaWiki 1.23, translation strings are stored in json files,
- * and the EXTENSION.i18n.php file only exists to provide compatibility with
- * older releases of MediaWiki. For more information about this migration, see:
- * https://www.mediawiki.org/wiki/Requests_for_comment/Localisation_format
- *
- * This shim maintains compatibility back to MediaWiki 1.17.
- */
-$messages = array();
-if ( !function_exists( 'wfJsonI18nShim47e6f9b4f4e0d9b2' ) ) {
-       function wfJsonI18nShim47e6f9b4f4e0d9b2( $cache, $code, &$cachedData ) {
-               $codeSequence = array_merge( array( $code ), 
$cachedData['fallbackSequence'] );
-               foreach ( $codeSequence as $csCode ) {
-                       $fileName = dirname( __FILE__ ) . "/i18n/$csCode.json";
-                       if ( is_readable( $fileName ) ) {
-                               $data = FormatJson::decode( file_get_contents( 
$fileName ), true );
-                               foreach ( array_keys( $data ) as $key ) {
-                                       if ( $key === '' || $key[0] === '@' ) {
-                                               unset( $data[$key] );
-                                       }
-                               }
-                               $cachedData['messages'] = array_merge( $data, 
$cachedData['messages'] );
-                       }
-
-                       $cachedData['deps'][] = new FileDependency( $fileName );
-               }
-               return true;
-       }
-
-       $GLOBALS['wgHooks']['LocalisationCacheRecache'][] = 
'wfJsonI18nShim47e6f9b4f4e0d9b2';
-}
diff --git a/UserOptionStats.php b/UserOptionStats.php
index 285bb92..a4c4c15 100644
--- a/UserOptionStats.php
+++ b/UserOptionStats.php
@@ -1,5 +1,7 @@
 <?php
-if ( !defined( 'MEDIAWIKI' ) ) die();
+if ( !defined( 'MEDIAWIKI' ) ) {
+       die();
+}
 
 /**
  * An useless extension for making pie charts of user options usage.
@@ -24,17 +26,16 @@
  */
 
 $wgExtensionCredits['specialpage'][] = array(
-       'path'           => __FILE__,
-       'name'           => 'User Option Statistics',
-       'version'        => '1.3.0',
-       'author'         => 'Niklas Laxström',
+       'path' => __FILE__,
+       'name' => 'User Option Statistics',
+       'version' => '1.4.0',
+       'author' => 'Niklas Laxström',
        'descriptionmsg' => 'useroptionstats-desc',
-       'url'            => 
'https://www.mediawiki.org/wiki/Extension:UserOptionStats',
+       'url' => 'https://www.mediawiki.org/wiki/Extension:UserOptionStats',
 );
 
 $dir = __DIR__;
 $wgAutoloadClasses['SpecialUserOptionStats'] = 
"$dir/SpecialUserOptionStats.php";
 $wgMessagesDirs['UserOptionStats'] = __DIR__ . '/i18n';
-$wgExtensionMessagesFiles['UserOptionStats'] = "$dir/UserOptionStats.i18n.php";
 $wgExtensionMessagesFiles['UserOptionStatsAlias'] = 
"$dir/UserOptionStats.alias.php";
 $wgSpecialPages['UserOptionStats'] = 'SpecialUserOptionStats';
diff --git a/composer.json b/composer.json
new file mode 100644
index 0000000..4365e8a
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,12 @@
+{
+       "require-dev": {
+               "jakub-onderka/php-parallel-lint": "0.9",
+               "mediawiki/mediawiki-codesniffer": "0.4.0"
+       },
+       "scripts": {
+               "test": [
+                       "parallel-lint . --exclude vendor",
+                       "phpcs -p -s"
+               ]
+       }
+}
diff --git a/i18n/en.json b/i18n/en.json
index e4699e1..da8ca40 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -1,16 +1,16 @@
 {
-    "@metadata": {
-        "authors": [
-            "Nike",
-            "SPQRobin"
-        ]
-    },
-    "useroptionstats": "User option statistics",
-    "useroptionstats-desc": "[[Special:UserOptionStats|Special page]] for 
reporting on MediaWiki user option usage",
-    "uos-warn": "PHPlot is not installed!",
-    "uos-choose": "Choose one of the following user options: $1",
-    "uos-choose-hidden": "Choose one of the following hidden user options: $1",
-    "uos-unknown": "*Default",
-    "uos-other": "*Other",
-    "uos-title": "Distribution of values of user option $1"
+       "@metadata": {
+               "authors": [
+                       "Nike",
+                       "SPQRobin"
+               ]
+       },
+       "useroptionstats": "User option statistics",
+       "useroptionstats-desc": "[[Special:UserOptionStats|Special page]] for 
reporting on MediaWiki user option usage",
+       "uos-warn": "PHPlot is not installed!",
+       "uos-choose": "Choose one of the following user options: $1",
+       "uos-choose-hidden": "Choose one of the following hidden user options: 
$1",
+       "uos-unknown": "*Default",
+       "uos-other": "*Other",
+       "uos-title": "Distribution of values of user option $1"
 }
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..76e8a82
--- /dev/null
+++ b/package.json
@@ -0,0 +1,12 @@
+{
+  "private": true,
+  "scripts": {
+    "test": "grunt test"
+  },
+  "devDependencies": {
+    "grunt": "0.4.5",
+    "grunt-cli": "0.1.13",
+    "grunt-banana-checker": "0.2.2",
+    "grunt-jsonlint": "1.0.4"
+  }
+}
diff --git a/phpcs.xml b/phpcs.xml
new file mode 100644
index 0000000..d81a292
--- /dev/null
+++ b/phpcs.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<ruleset>
+       <rule ref="vendor/mediawiki/mediawiki-codesniffer/MediaWiki"/>
+       <file>.</file>
+       <arg name="extensions" value="php,php5,inc"/>
+       <arg name="encoding" value="utf8"/>
+       <exclude-pattern>vendor</exclude-pattern>
+</ruleset>

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I06cedc55c0d64950d94225cc12c1a57b961d06c0
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/UserOptionStats
Gerrit-Branch: master
Gerrit-Owner: Siebrand <siebr...@kitano.nl>

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

Reply via email to