diff options
Diffstat (limited to 'static')
| -rw-r--r-- | static/js/pichat.js | 23 | ||||
| -rw-r--r-- | static/register.html | 2 | ||||
| -rw-r--r-- | static/test/bugchat.html | 14 | ||||
| -rw-r--r-- | static/test/bugchat.js | 138 |
4 files changed, 153 insertions, 24 deletions
diff --git a/static/js/pichat.js b/static/js/pichat.js index dbe58ac..e2ab061 100644 --- a/static/js/pichat.js +++ b/static/js/pichat.js @@ -352,26 +352,6 @@ function isDuplicateMessage(m) { } } -var CurrentTopic = null; - -function isSameTopic(curTopic, newTopic) { - if (!!curTopic != !!newTopic) { return false; } - else if (!curTopic) { return false; } // => !newTopic also - else { - return curTopic.topic == newTopic.topic && - curTopic.deadline == newTopic.deadline && - curTopic.maker == newTopic.maker; - } -} - -function updateTopic(newTopic) { - if (isSameTopic(CurrentTopic, newTopic)) { return; } - alert('new topic'); - CurrentTopic = newTopic; - $('#topic').text(topic.topic); - -} - function refresh() { var onSuccess = function(json) { try { @@ -390,9 +370,6 @@ function refresh() { if (typeof UnseenMsgCounter !== 'undefined' && !HasFocus) { UnseenMsgCounter += messages.length; } - if (json.topic) { - updateTopic(json.topic); - } } catch(e) { if (IsAdmin && window.console) { console.error(e); diff --git a/static/register.html b/static/register.html index 00540d7..18849e2 100644 --- a/static/register.html +++ b/static/register.html @@ -1,4 +1,4 @@ -</html><head> +<html><head> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> <script type="text/javascript" src="/static/js/underscore-min.js"></script> <script type="text/javascript" src="/static/js/sha1.js"></script> diff --git a/static/test/bugchat.html b/static/test/bugchat.html new file mode 100644 index 0000000..548eb6d --- /dev/null +++ b/static/test/bugchat.html @@ -0,0 +1,14 @@ +<html> + <head> + <title>BUG CHAT</title> + <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> + <script type="text/javascript" src="/static/test/bugchat.js"></script> + <script> + $(initClient); + </script> + </head> + <body> + <div id="msgs"> + </div> + </body> +</html> diff --git a/static/test/bugchat.js b/static/test/bugchat.js new file mode 100644 index 0000000..5d9a7b5 --- /dev/null +++ b/static/test/bugchat.js @@ -0,0 +1,138 @@ +var alphaChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + +function generateRandomKey(length) { + s = ""; + for (var i = 0; i < length; i++) { + var r = Math.floor(Math.random() * 26); + s += alphaChars[r]; + } + return s; +} + +function formatTime() { + var a_p = ""; + var d = new Date(); + var curr_hour = d.getHours(); + if (curr_hour < 12) + { + a_p = "AM"; + } + else + { + a_p = "PM"; + } + if (curr_hour == 0) + { + curr_hour = 12; + } + if (curr_hour > 12) + { + curr_hour = curr_hour - 12; + } + + if (curr_hour.length == 1) + curr_hour = "0" + curr_hour; + + var curr_min = d.getMinutes(); + + curr_min = curr_min + ""; + + if (curr_min.length == 1) + { + curr_min = "0" + curr_min; + } + return curr_hour + ":" + curr_min + " " + a_p; +} + +Key = generateRandomKey(10); +Timestamp = 0; +Counter = 0; +ClientMap = {}; + +function showError(err) { + var msg = formatTime() + " " + err; + console.error(msg); + $('#msgs').append($('<div>').css('color', 'red').text(msg)); +}; + + +function handleMessages(msgs) { + $.map(msgs, function(m) { + var split = m.content.split("-"); + if (split.length != 2) { + showError("Bad message " + m.content); + return; + } + var client = split[0]; + var i = parseInt(split[1]); + console.warn(client + " " + i); + + if (client in ClientMap) { + var p = ClientMap[client]; + if (i - p != 1) { + showError("[" + Key + "] Error for client " + client + + "! Expected " + (p+1) + ", got " + i); + } + } + ClientMap[client] = i; + }); +} + +function refresh() { + var onSuccess = function(json) { + try { + Timestamp = json.timestamp; + handleMessages(json.messages); + } catch(e) { + console.error(e); + $('#msgs').append($('<div>').css('color', 'red').text(e)); + } + setTimeout(refresh, 1000); + }; + var onError = function(resp, textStatus, errorThrown) { + console.error($.trim(resp.responseText)); + setTimeout(refresh, 1000); + }; + + $.ajax({ + type: 'GET', + timeout: 5000, + url: '/refresh', + data: { 'room': 'test', 'since': Timestamp }, + cache: false, + dataType: 'json', + success: onSuccess, + error: onError + }); +} + +function postMessageWrapper() { + var delay = Math.ceil(1000 + Math.random() * 3000); + setTimeout(postMessage, delay); +} + +function postMessage() { + var content = Key + "-" + Counter; + Counter++; + var onError = function(resp, textStatus, errorThrown) { + showError("Error posting " + content + ": " + resp.responseText); + postMessageWrapper(); + }; + + $.ajax({ + type: 'POST', + timeout: 5000, + url: '/msg', + data: { 'room': 'test', 'content': content }, + cache: false, + dataType: 'json', + success: postMessageWrapper, + error: onError + }); +} + +function initClient() { + showError("Initializing client " + Key); + refresh(); + postMessageWrapper(); +};
\ No newline at end of file |
