diff options
Diffstat (limited to 'tests/frontend/specs/chat.js')
-rw-r--r-- | tests/frontend/specs/chat.js | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/tests/frontend/specs/chat.js b/tests/frontend/specs/chat.js new file mode 100644 index 00000000..a488193f --- /dev/null +++ b/tests/frontend/specs/chat.js @@ -0,0 +1,99 @@ +describe("Chat messages and UI", function(){ + //create a new pad before each test run + beforeEach(function(cb){ + helper.newPad(cb); + this.timeout(60000); + }); + + it("opens chat, sends a message and makes sure it exists on the page", function(done) { + var inner$ = helper.padInner$; + var chrome$ = helper.padChrome$; + var chatValue = "JohnMcLear"; + + //click on the chat button to make chat visible + var $chatButton = chrome$("#chaticon"); + $chatButton.click(); + var $chatInput = chrome$("#chatinput"); + $chatInput.sendkeys('JohnMcLear'); // simulate a keypress of typing JohnMcLear + $chatInput.sendkeys('{enter}'); // simulate a keypress of enter actually does evt.which = 10 not 13 + + //check if chat shows up + helper.waitFor(function(){ + return chrome$("#chattext").children("p").length !== 0; // wait until the chat message shows up + }).done(function(){ + var $firstChatMessage = chrome$("#chattext").children("p"); + var containsMessage = $firstChatMessage.text().indexOf("JohnMcLear") !== -1; // does the string contain JohnMcLear? + expect(containsMessage).to.be(true); // expect the first chat message to contain JohnMcLear + + // do a slightly more thorough check + var username = $firstChatMessage.children("b"); + var usernameValue = username.text(); + var time = $firstChatMessage.children(".time"); + var timeValue = time.text(); + var discoveredValue = $firstChatMessage.text(); + var chatMsgExists = (discoveredValue.indexOf("JohnMcLear") !== -1); + expect(chatMsgExists).to.be(true); + done(); + }); + + }); + + it("makes sure that an empty message can't be sent", function(done) { + var inner$ = helper.padInner$; + var chrome$ = helper.padChrome$; + + //click on the chat button to make chat visible + var $chatButton = chrome$("#chaticon"); + $chatButton.click(); + var $chatInput = chrome$("#chatinput"); + $chatInput.sendkeys('{enter}'); // simulate a keypress of enter (to send an empty message) + $chatInput.sendkeys('mluto'); // simulate a keypress of typing mluto + $chatInput.sendkeys('{enter}'); // simulate a keypress of enter (to send 'mluto') + + //check if chat shows up + helper.waitFor(function(){ + return chrome$("#chattext").children("p").length !== 0; // wait until the chat message shows up + }).done(function(){ + // check that the empty message is not there + expect(chrome$("#chattext").children("p").length).to.be(1); + // check that the received message is not the empty one + var $firstChatMessage = chrome$("#chattext").children("p"); + var containsMessage = $firstChatMessage.text().indexOf("mluto") !== -1; + expect(containsMessage).to.be(true); + done(); + }); + }); + + it("makes chat stick to right side of the screen", function(done) { + var inner$ = helper.padInner$; + var chrome$ = helper.padChrome$; + + //click on the settings button to make settings visible + var $settingsButton = chrome$(".buttonicon-settings"); + $settingsButton.click(); + + //get the chat selector + var $stickychatCheckbox = chrome$("#options-stickychat"); + + //select chat always on screen and fire change event + $stickychatCheckbox.attr('selected','selected'); + $stickychatCheckbox.change(); + $stickychatCheckbox.click(); + + //check if chat changed to get the stickychat Class + var $chatbox = chrome$("#chatbox"); + var hasStickyChatClass = $chatbox.hasClass("stickyChat"); + expect(hasStickyChatClass).to.be(true); + + //select chat always on screen and fire change event + $stickychatCheckbox.attr('selected','selected'); + $stickychatCheckbox.change(); + $stickychatCheckbox.click(); + + //check if chat changed to remove the stickychat Class + var hasStickyChatClass = $chatbox.hasClass("stickyChat"); + expect(hasStickyChatClass).to.be(false); + + done(); + }); +}); |