diff --git a/socket.io.users/socket.io.users-tests.ts b/socket.io.users/socket.io.users-tests.ts
new file mode 100644
index 000000000..54a047262
--- /dev/null
+++ b/socket.io.users/socket.io.users-tests.ts
@@ -0,0 +1,58 @@
+///
+///
+///
+///
+var express = require('express');
+var app = express();
+var httpServer = require('http').createServer(app);
+var io = require('socket.io')(httpServer);
+import ioUsers = require("socket.io.users");
+
+
+
+ioUsers.Session(app, {
+ "secret": "socket.io.users secret test",
+ "resave": true,
+ "saveUninitialized": true
+});
+
+io.use(ioUsers.Middleware());
+
+var users = ioUsers.Users.of("/");
+
+
+var userDisconnected = (user: ioUsers.User) => {
+ console.log(user.get("username") + " has disconnected from all web browser windows or/and tabs");
+}
+
+var setUsername = (user: ioUsers.User, data: any) => {
+ console.log(user.ip + ' is for first time visiting our site. He/she wants ' + data.username + ' for username');
+ user.set("username", data.username);
+}
+
+var joinRoom = (user: ioUsers.User, roomToJoin: string) => {
+ console.log(user.get("username") + ' joined to ' + roomToJoin);
+}
+
+var leaveRoom = (user: ioUsers.User, roomToJoin: string) => {
+ console.log(user.get("username") + ' joined to ' + roomToJoin);
+}
+
+var sendMessage = (user: ioUsers.User, data: any) => {
+ console.log(user.get("username") + 'send ' + data.content + ' to room: ' + data.room);
+}
+
+users.on('disconnected', userDisconnected);
+users.on('set username', setUsername);
+users.on('join room', joinRoom); //notify other = user joined room or (GLOBAL) room created.
+users.on('leave room', leaveRoom); //notify other = user left room or (GLOBAL) room removed.
+users.on("send message", sendMessage); //notify other = receive message.
+
+httpServer.on('uncaughtException', function(err: any) {
+ console.log(err);
+})
+
+var httpPort = 80;
+httpServer.listen(httpPort, function() {
+ console.log("Server is running on " + httpPort);
+});