Siebrand has uploaded a new change for review.

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

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

Add tests

Fix all issues so tests pass.

Change-Id: I31124bf9fe7602e57141938b414b9d78ee8dd2ac
---
M .gitignore
A Gruntfile.js
M InviteSignup.php
M InviteStore.php
M SpecialInviteSignup.php
M composer.json
M i18n/en.json
A package.json
A phpcs.xml
9 files changed, 102 insertions(+), 50 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/InviteSignup 
refs/changes/10/243110/1

diff --git a/.gitignore b/.gitignore
index 98b092a..854a2d2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,6 @@
-.svn
 *~
 *.kate-swp
 .*.swp
+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/InviteSignup.php b/InviteSignup.php
index 4323c04..d7ede9a 100644
--- a/InviteSignup.php
+++ b/InviteSignup.php
@@ -5,9 +5,11 @@
        $wgMessagesDirs['InviteSignup'] = __DIR__ . '/i18n';
        $wgExtensionMessagesFiles['InviteSignup'] = __DIR__ . 
'/InviteSignup.alias.php';
        wfWarn(
-               'Deprecated PHP entry point used for InviteSignup extension. 
Please use wfLoadExtension instead, ' .
-               'see https://www.mediawiki.org/wiki/Extension_registration for 
more details.'
+               'Deprecated PHP entry point used for InviteSignup extension. ' .
+               'Please use     wfLoadExtension instead, see ' .
+               'https://www.mediawiki.org/wiki/Extension_registration for more 
details.'
        );
+
        return;
 } else {
        die( 'This version of the InviteSignup extension requires MediaWiki 
1.25+' );
diff --git a/InviteStore.php b/InviteStore.php
index a50b92c..e231a7a 100644
--- a/InviteStore.php
+++ b/InviteStore.php
@@ -30,6 +30,7 @@
                foreach ( $res as $row ) {
                        $invites[] = $this->rowToArray( $row );
                }
+
                return $invites;
        }
 
@@ -50,7 +51,6 @@
                return $hash;
        }
 
-
        public function deleteInvite( $hash ) {
                $conds = array( 'is_hash' => $hash );
                $this->db->delete( $this->dbTable, $conds, __METHOD__ );
@@ -60,6 +60,7 @@
                $fields = array( '*' );
                $conds = array( 'is_hash' => $hash );
                $res = $this->db->selectRow( $this->dbTable, $fields, $conds, 
__METHOD__ );
+
                return $this->rowToArray( $res );
        }
 
@@ -84,6 +85,7 @@
                        }
                        $array[substr( $key, 3 )] = $value;
                }
+
                return $array;
        }
 }
diff --git a/SpecialInviteSignup.php b/SpecialInviteSignup.php
index 38feeb0..24986e5 100644
--- a/SpecialInviteSignup.php
+++ b/SpecialInviteSignup.php
@@ -1,4 +1,5 @@
 <?php
+
 /**
  * Special page
  *
@@ -9,7 +10,6 @@
  * @copyright Copyright © 2012-2013 Lost in Translations Inc.
  * @license GPL-2.0+
  */
-
 class SpecialInviteSignup extends SpecialPage {
        protected $groups;
        protected $store;
@@ -28,6 +28,7 @@
                if ( $this->store === null ) {
                        $this->store = new InviteStore( wfGetDB( DB_MASTER ), 
'invitesignup' );
                }
+
                return $this->store;
        }
 
@@ -52,7 +53,10 @@
                                if ( trim( $email ) === '' ) {
                                        // Silence
                                } elseif ( !$okay ) {
-                                       $out->wrapWikiMsg( Html::rawElement( 
'div', array( 'class' => 'error' ), "$1" ), array( 'is-invalidemail', $email ) 
);
+                                       $out->wrapWikiMsg(
+                                               Html::rawElement( 'div', array( 
'class' => 'error' ), "$1" ),
+                                               array( 'is-invalidemail', 
$email )
+                                       );
                                } else {
                                        $groups = array();
                                        foreach ( $this->groups as $group ) {
@@ -104,9 +108,15 @@
                                Html::element( 'td', $whenSort, $when ) .
                                Html::element( 'td', null, $email ) .
                                Html::element( 'td', null, User::newFromId( 
$invite['inviter'] )->getName() ) .
-                               Html::element( 'td', array( 'data-sort-value' 
=> $invite['used'] ), $invite['used'] ? $lang->userTimeAndDate( 
$invite['used'], $user ) : '' ) .
+                               Html::element( 'td',
+                                       array( 'data-sort-value' => 
$invite['used'] ),
+                                       $invite['used'] ? 
$lang->userTimeAndDate( $invite['used'], $user ) : ''
+                               ) .
                                Html::element( 'td', null, $groups ) .
-                               Html::rawElement( 'td', null, $invite['used'] ? 
'' : $this->getDeleteButton( $invite['hash'] ) ) .
+                               Html::rawElement( 'td',
+                                       null,
+                                       $invite['used'] ? '' : 
$this->getDeleteButton( $invite['hash'] )
+                               ) .
                                Html::closeElement( 'tr' )
                        );
                }
@@ -125,6 +135,7 @@
                $form .= Html::hidden( 'do', 'delete' );
                $form .= Xml::submitButton( $this->msg( 'is-delete' )->text() );
                $form .= Html::closeElement( 'form' );
+
                return $form;
        }
 
@@ -145,7 +156,11 @@
 
                $groupChecks = array();
                foreach ( $this->groups as $group ) {
-                       $groupChecks[] = Xml::checkLabel( User::getGroupMember( 
$group ), "group-$group", "group-$group" );
+                       $groupChecks[] = Xml::checkLabel(
+                               User::getGroupMember( $group ),
+                               "group-$group",
+                               "group-$group"
+                       );
                }
 
                $row =
@@ -159,13 +174,16 @@
                        Html::rawElement( 'td', null, $add ) .
                        Html::closeElement( 'form' ) .
                        Html::closeElement( 'tr' );
+
                return $row;
        }
 
        public static function sendInviteEmail( User $inviter, $email, $hash ) {
                global $wgPasswordSender;
 
-               $url = Title::newFromText( 'Special:Userlogin/signup' 
)->getCanonicalUrl( array( 'invite' => $hash, 'returnto' => 'Special:Dashboard' 
) );
+               $url = Title::newFromText( 'Special:Userlogin/signup' 
)->getCanonicalUrl(
+                       array( 'invite' => $hash, 'returnto' => 
'Special:Dashboard' )
+               );
 
                $subj = wfMessage( 'is-emailsubj' )->inContentLanguage();
                $body = wfMessage( 'is-emailbody' )
@@ -178,7 +196,7 @@
                        'to' => $emailTo,
                        'from' => $emailFrom,
                        'replyto' => $emailFrom,
-                       'body' =>  $body->text(),
+                       'body' => $body->text(),
                        'subj' => $subj->text(),
                );
                $job = new EmaillingJob( Title::newMainPage(), $params );
diff --git a/composer.json b/composer.json
index b5d3999..4365e8a 100644
--- a/composer.json
+++ b/composer.json
@@ -1,24 +1,12 @@
 {
-       "name": "mediawiki/invite-signup",
-       "type": "mediawiki-extension",
-       "description": "Invite users to sign up",
-       "keywords": [
-               "MediaWiki"
-       ],
-       "homepage": "https://www.mediawiki.org/wiki/Extension:InviteSignup";,
-       "license": "GPL-2.0+",
-       "authors": [
-               {
-                       "name": "Niklas Laxström",
-                       "email": "niklas.laxst...@gmail.com",
-                       "role": "Developer"
-               }
-       ],
-       "support": {
-               "issues": "https://phabricator.wikimedia.org/";
+       "require-dev": {
+               "jakub-onderka/php-parallel-lint": "0.9",
+               "mediawiki/mediawiki-codesniffer": "0.4.0"
        },
-       "require": {
-               "php": ">=5.3.0",
-               "composer/installers": ">=1.0.1"
+       "scripts": {
+               "test": [
+                       "parallel-lint . --exclude vendor",
+                       "phpcs -p -s"
+               ]
        }
 }
diff --git a/i18n/en.json b/i18n/en.json
index 69ece62..de27600 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -1,21 +1,21 @@
 {
-    "@metadata": {
-        "authors": [
-            "Niklas Laxström"
-        ]
-    },
-    "invitesignup": "Invite people to this wiki",
-    "is-desc": "Send email invites",
-    "is-tableth-date": "Date",
-    "is-tableth-email": "Email",
-    "is-tableth-inviter": "Inviter",
-    "is-tableth-signup": "Signed up",
-    "is-tableth-groups": "Groups",
-    "is-add": "Add",
-    "is-delete": "Delete",
-    "is-invalidemail": "<b>$1</b> is not a valid email address.",
-    "is-emailsubj": "You are invited to join {{SITENAME}}",
-    "is-emailbody": "Hello,\n\n{{GENDER:$1|$1}} has invited you to sign up to 
{{SITENAME}}.\nYou can sign up at $2",
-    "right-invitesignup": "Invite users to sign up",
-    "action-invitesignup": "invite users to sign up to this site"
+       "@metadata": {
+               "authors": [
+                       "Niklas Laxström"
+               ]
+       },
+       "invitesignup": "Invite people to this wiki",
+       "is-desc": "Send email invites",
+       "is-tableth-date": "Date",
+       "is-tableth-email": "Email",
+       "is-tableth-inviter": "Inviter",
+       "is-tableth-signup": "Signed up",
+       "is-tableth-groups": "Groups",
+       "is-add": "Add",
+       "is-delete": "Delete",
+       "is-invalidemail": "<b>$1</b> is not a valid email address.",
+       "is-emailsubj": "You are invited to join {{SITENAME}}",
+       "is-emailbody": "Hello,\n\n{{GENDER:$1|$1}} has invited you to sign up 
to {{SITENAME}}.\nYou can sign up at $2",
+       "right-invitesignup": "Invite users to sign up",
+       "action-invitesignup": "invite users to sign up to this site"
 }
\ No newline at end of file
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/243110
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I31124bf9fe7602e57141938b414b9d78ee8dd2ac
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/InviteSignup
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