Siebrand has uploaded a new change for review.

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

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

Add composer tests

Change-Id: Ib7243df54b3aac2267c5ab7b434a940920dca067
---
M .gitignore
A .jscsrc
A .jshintignore
A .jshintrc
A Gruntfile.js
M WebChat.i18n.php
M WebChat.php
M WebChat_body.php
A composer.json
A package.json
A phpcs.xml
11 files changed, 119 insertions(+), 21 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/WebChat 
refs/changes/18/275518/1

diff --git a/.gitignore b/.gitignore
index c798be9..bc0d546 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,7 @@
 *.kate-swp
 .*.swp
 .idea
+.project
+composer.lock
+vendor
+node_modules
diff --git a/.jscsrc b/.jscsrc
new file mode 100644
index 0000000..9d22e3f
--- /dev/null
+++ b/.jscsrc
@@ -0,0 +1,3 @@
+{
+       "preset": "wikimedia"
+}
diff --git a/.jshintignore b/.jshintignore
new file mode 100644
index 0000000..3c3629e
--- /dev/null
+++ b/.jshintignore
@@ -0,0 +1 @@
+node_modules
diff --git a/.jshintrc b/.jshintrc
new file mode 100644
index 0000000..d43c482
--- /dev/null
+++ b/.jshintrc
@@ -0,0 +1,20 @@
+{
+       // Enforcing
+       "bitwise": true,
+       "eqeqeq": true,
+       "es3": true,
+       "latedef": true,
+       "noarg": true,
+       "nonew": true,
+       "undef": true,
+       "unused": true,
+       "strict": false,
+
+       // Environment
+       "browser": true,
+
+       "globals": {
+               "mw": false,
+               "$": false
+       }
+}
diff --git a/Gruntfile.js b/Gruntfile.js
new file mode 100644
index 0000000..69e6d05
--- /dev/null
+++ b/Gruntfile.js
@@ -0,0 +1,34 @@
+/*jshint node:true */
+module.exports = function ( grunt ) {
+       grunt.loadNpmTasks( 'grunt-contrib-jshint' );
+       grunt.loadNpmTasks( 'grunt-jsonlint' );
+       grunt.loadNpmTasks( 'grunt-banana-checker' );
+       grunt.loadNpmTasks( 'grunt-jscs' );
+
+       grunt.initConfig( {
+               jshint: {
+                       options: {
+                               jshintrc: true
+                       },
+                       all: [
+                               '*.js',
+                               'modules/**/*.js'
+                       ]
+               },
+               jscs: {
+                       src: '<%= jshint.all %>'
+               },
+               banana: {
+                       all: 'i18n/'
+               },
+               jsonlint: {
+                       all: [
+                               '**/*.json',
+                               '!node_modules/**'
+                       ]
+               }
+       } );
+
+       grunt.registerTask( 'test', [ 'jshint', 'jscs', 'jsonlint', 'banana' ] 
);
+       grunt.registerTask( 'default', 'test' );
+};
diff --git a/WebChat.i18n.php b/WebChat.i18n.php
index cf17f0e..c7c104d 100644
--- a/WebChat.i18n.php
+++ b/WebChat.i18n.php
@@ -10,12 +10,12 @@
  *
  * This shim maintains compatibility back to MediaWiki 1.17.
  */
-$messages = array();
+$messages = [];
 if ( !function_exists( 'wfJsonI18nShim44cde5dade4df928' ) ) {
        function wfJsonI18nShim44cde5dade4df928( $cache, $code, &$cachedData ) {
-               $codeSequence = array_merge( array( $code ), 
$cachedData['fallbackSequence'] );
+               $codeSequence = array_merge( [ $code ], 
$cachedData['fallbackSequence'] );
                foreach ( $codeSequence as $csCode ) {
-                       $fileName = dirname( __FILE__ ) . "/i18n/$csCode.json";
+                       $fileName = __DIR__ . "/i18n/$csCode.json";
                        if ( is_readable( $fileName ) ) {
                                $data = FormatJson::decode( file_get_contents( 
$fileName ), true );
                                foreach ( array_keys( $data ) as $key ) {
diff --git a/WebChat.php b/WebChat.php
index 8bf2037..7c5c512 100644
--- a/WebChat.php
+++ b/WebChat.php
@@ -16,19 +16,20 @@
  */
 
 // If this is run directly from the web die as this is not a valid entry point.
-if ( !defined( 'MEDIAWIKI' ) ) die( 'Invalid entry point.' );
+if ( !defined( 'MEDIAWIKI' ) ) { die( 'Invalid entry point.' );
+}
 
 // Extension credits.
-$wgExtensionCredits[ 'specialpage' ][] = array(
+$wgExtensionCredits[ 'specialpage' ][] = [
        'path'           => __FILE__,
        'name'           => 'WebChat',
        'descriptionmsg' => 'webchat-desc',
-       'author'         => array( 'Robert Leverington', 'Marco 27' ),
+       'author'         => [ 'Robert Leverington', 'Marco 27' ],
        'url'            => 'https://www.mediawiki.org/wiki/Extension:WebChat',
        'version'        => '1.2.0',
-);
+];
 
-$dir = dirname( __FILE__ ) . '/';
+$dir = __DIR__ . '/';
 
 // Register special page.
 $wgSpecialPages['WebChat'] = 'WebChat';
@@ -43,24 +44,24 @@
 $wgWebChatServer  = '';
 $wgWebChatChannel = '';
 $wgWebChatClient  = '';
-$wgWebChatClients = array(
-       'Mibbit' => array(
+$wgWebChatClients = [
+       'Mibbit' => [
                'url' => 'http://embed.mibbit.com/index.html',
-               'parameters' => array(
+               'parameters' => [
                        'noServerMotd' => 'true',
                        'server'  => '$$$server$$$',
                        'channel' => '$$$channel$$$',
                        'nick'    => '$$$nick$$$',
-               ),
-       ),
-       'freenodeChat' => array(
+               ],
+       ],
+       'freenodeChat' => [
                'url' => '//webchat.freenode.net/',
-               'parameters' => array(
+               'parameters' => [
                        'channels' => '$$$channel$$$',
                        'nick'    => '$$$nick$$$',
-               ),
-       )
-);
+               ],
+       ]
+];
 
 // Default permissions.
 $wgAvailableRights[] = 'webchat';
diff --git a/WebChat_body.php b/WebChat_body.php
index ada4bcc..f8f3ee6 100644
--- a/WebChat_body.php
+++ b/WebChat_body.php
@@ -36,18 +36,18 @@
                }
                $query = implode( $query, '&' );
 
-               $this->getOutput()->addHTML( Xml::openElement( 'iframe', array(
+               $this->getOutput()->addHTML( Xml::openElement( 'iframe', [
                        'width'     => '100%',
                        'height'    => '500',
                        'scrolling' => 'no',
                        'border'    => '0',
                        'onLoad'    => 'webChatExpand( this )',
                        'src'       => 
$wgWebChatClients[$wgWebChatClient]['url'] . '?' . $query
-               ) ) . Xml::closeElement( 'iframe' ) );
+               ] ) . Xml::closeElement( 'iframe' ) );
 
                // Hack to make the chat area a reasonable size.
                $this->getOutput()->addHTML( Xml::tags( 'script',
-                       array( 'type' => 'text/javascript' ),
+                       [ 'type' => 'text/javascript' ],
 '/* <![CDATA[ */
 function webChatExpand( elem ) {
        height = elem.height;
diff --git a/composer.json b/composer.json
new file mode 100644
index 0000000..5d52161
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,13 @@
+{
+       "require-dev": {
+               "jakub-onderka/php-parallel-lint": "0.9.2",
+               "mediawiki/mediawiki-codesniffer": "0.6.0"
+       },
+       "scripts": {
+               "fix": "phpcbf",
+               "test": [
+                       "parallel-lint . --exclude vendor",
+                       "phpcs -p -s"
+               ]
+       }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..d6d0f28
--- /dev/null
+++ b/package.json
@@ -0,0 +1,14 @@
+{
+  "private": true,
+  "scripts": {
+    "test": "grunt test"
+  },
+  "devDependencies": {
+    "grunt": "0.4.5",
+    "grunt-cli": "0.1.13",
+    "grunt-contrib-jshint": "0.11.3",
+    "grunt-banana-checker": "0.4.0",
+    "grunt-jscs": "2.5.0",
+    "grunt-jsonlint": "1.0.7"
+  }
+}
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/275518
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib7243df54b3aac2267c5ab7b434a940920dca067
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/WebChat
Gerrit-Branch: master
Gerrit-Owner: Siebrand <[email protected]>

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

Reply via email to