Пример #1
0
 def test_hearTellsClient(self):
     """
     When 'hear' is called on a ChatterElement, it should inform its client of what
     was said and by whom.
     """
     from chatthing.chatterbox import ChatRoom
     cb = ChatRoom().makeChatter()
     heard = []
     cb.callRemote = lambda method, who, what: heard.append((method, who, what))
     cb.hear(u'Hello', u'Chat')
     self.assertEquals(heard, [('displayUserMessage', u'Hello', u'Chat')])
Пример #2
0
 def test_wallTellsClient(self):
     """
     When 'wall' is called on a ChatterElement, it should inform its client of
     the message.
     """
     from chatthing.chatterbox import ChatRoom
     cb = ChatRoom().makeChatter()
     heard = []
     cb.callRemote = lambda method, msg: heard.append((method, msg))
     cb.wall(u'Message for everyone...')
     self.assertEquals(heard, [('displayMessage', u'Message for everyone...')])
Пример #3
0
 def test_username(self):
     """
     When a user sets their username in the chat room, it should set an
     attribute on their ChatterElement instance.
     """
     from chatthing.chatterbox import ChatterElement, ChatRoom
     cb = ChatterElement(ChatRoom())
     setUsername = expose.get(cb, 'setUsername')
     setUsername('jethro')
     self.assertIdentical('jethro', cb.username)
Пример #4
0
 def test_loginThenWall(self):
     """
     When a user logs in the 'wall' method on their ChatterElement gets called,
     notifiying everyone in the room that they have entered.
     """
     from chatthing.chatterbox import ChatRoom
     jethroHeard = []
     cletusHeard = []
     cr = ChatRoom()
     user1 = cr.makeChatter()
     user1.wall = lambda msg: jethroHeard.append(msg)
     user1.setUsername(u'jethro')
     user2 = cr.makeChatter()
     user2.wall = lambda msg: cletusHeard.append(msg)
     user2.setUsername(u'cletus')
     self.assertEquals(jethroHeard,
                       [u' * user jethro has joined the room',
                        u' * user cletus has joined the room'])
     self.assertEquals(cletusHeard, [u' * user cletus has joined the room'])
Пример #5
0
 def test_sayThenHear(self):
     """
     When a user calls the 'say' method on their ChatterElement, everyone (including
     them) should 'hear' it.
     """
     from chatthing.chatterbox import ChatRoom
     cr = ChatRoom()
     user1 = cr.makeChatter()
     user1.wall = lambda msg: msg
     user1.setUsername('jethro')
     user2 = cr.makeChatter()
     user2.wall = lambda msg: msg
     user2.setUsername('cletus')
     jethroHeard = []
     cletusHeard = []
     user1.hear = lambda who, what: jethroHeard.append((who, what))
     user2.hear = lambda who, what: cletusHeard.append((who, what))
     say = expose.get(user1, 'say')
     say('Hey, Cletus!')
     self.assertEqual(jethroHeard, cletusHeard)
     self.assertEqual(cletusHeard, [('jethro', 'Hey, Cletus!')])
Пример #6
0
 def test_sayThenHear(self):
     """
     When a user calls the 'say' method on their ChatterElement, everyone (including
     them) should 'hear' it.
     """
     from chatthing.chatterbox import ChatRoom
     cr = ChatRoom()
     user1 = cr.makeChatter()
     user1.wall = lambda msg: msg
     user1.setUsername(u'jethro')
     user2 = cr.makeChatter()
     user2.wall = lambda msg: msg
     user2.setUsername(u'cletus')
     jethroHeard = []
     cletusHeard = []
     user1.hear = lambda who, what: jethroHeard.append((who,what))
     user2.hear = lambda who, what: cletusHeard.append((who,what))
     say = expose.get(user1, 'say')
     say(u'Hey, Cletus!')
     self.assertEquals(jethroHeard, cletusHeard)
     self.assertEquals(cletusHeard, [(u'jethro', u'Hey, Cletus!')])
Пример #7
0
 def test_basicRendering(self):
     """
     Rendering the example element should produce a chat area.
     """
     from chatthing.chatterbox import ChatterElement, ChatRoom
     PROMPT = 'Choose your username: '******'s look for it to
         # make sure it rendered live:
         self.assertIn('id="athena:'+str(cb._athenaID)+'"', result)
         self.assertIn('athena:class="ChatThing.ChatterWidget"', result)
         self.assertIn(PROMPT, result)
     return renderLivePage(erlp).addCallback(checkContent)