diff --git a/login/connection_test.js b/login/connection_test.js
new file mode 100644
index 0000000..3debb5b
--- /dev/null
+++ b/login/connection_test.js
@@ -0,0 +1,103 @@
+loginInformation = document.login_information;
+
+loginInformation.elements.test_websocket.addEventListener("click", init);
+loginInformation.elements.disconnect_websocket.addEventListener("click", closeWebsocket);
+
+var server,
+ username,
+ testMessage,
+ websocketOutput;
+
+function init() {
+
+ server = document.getElementById("server").value.toString();
+ if (server === "other") {
+ server = document.getElementById("server_other_input").value.toString();
+ }
+ username = document.getElementById("username").value.toString();
+ testMessage = document.getElementById("test_message").value.toString();
+ if (!testMessage) {
+ testMessage = '{ "command": "login", "username": "' + username + '" }';
+ }
+
+ websocketOutput = document.getElementById("websocket_output");
+ testWebSocket();
+}
+
+function testWebSocket() {
+
+ // Append input values to document prior to printing test results
+
+ var wsHeader = document.createElement("h3");
+ wsHeader.innerHTML = "Testing WebSocket connection...";
+ websocketOutput.appendChild(wsHeader);
+
+ var wsInput = document.createElement("p");
+ wsInput.innerHTML =
+ "Server: " + server + "
" +
+ "Username: " + username + "
" +
+ "Message: " + testMessage;
+
+ websocketOutput.appendChild(wsInput);
+
+ // Begin WebSocket test
+
+ websocket = new WebSocket(server);
+ websocket.onopen = function(evt) {
+ onOpen(evt)
+ };
+ /*websocket.onclose = function(evt) {
+ onClose(evt)
+ };*/
+ websocket.onmessage = function(evt) {
+ onMessage(evt)
+ };
+ websocket.onerror = function(evt) {
+ onError(evt)
+ };
+
+ /* Close websocket if page is closed or refreshed */
+ window.onbeforeunload = function() {
+ websocket.onclose = function () {}; // disable onclose handler
+ websocket.close()
+ };
+}
+
+function closeWebsocket() {
+ websocket.onclose = function(evt) {
+ onClose(evt)
+ };
+ websocket.close();
+ //writeToScreen("DISCONNECTED");
+}
+
+
+
+function onOpen(evt) {
+ writeToScreen("CONNECTED");
+ doSend(testMessage);
+}
+
+function onClose(evt) {
+ writeToScreen("DISCONNECTED");
+}
+
+function onMessage(evt) {
+ writeToScreen('RESPONSE: ' + evt.data + '');
+}
+
+function onError(evt) {
+ writeToScreen('ERROR: ' + evt.data);
+}
+
+function doSend(message) {
+ writeToScreen("SENT: " + message);
+ websocket.send(message);
+}
+
+function writeToScreen(message) {
+ var pre = document.createElement("p");
+ //pre.style.wordWrap = "break-word";
+ pre.innerHTML = message;
+ websocketOutput.appendChild(pre);
+}
diff --git a/login/login.html b/login/login.html
index b4d73c9..faaf2e1 100644
--- a/login/login.html
+++ b/login/login.html
@@ -20,7 +20,7 @@