def test_add_messages_wrong_chat(self):
        chat = api.Chat(ROWID=1)
        wrongChat = api.Chat(ROWID=2)
        self.messageFrame.currentChat = chat

        result = self.messageFrame.addMessages(wrongChat)

        self.assertIsNone(result)
        self.assertDictEqual(self.messageFrame.messageBubbles, {})
    def test_add_message(self):
        style = ttk.Style()

        borderImage = tk.PhotoImage("borderImage",
                                    file='localCode/messageBox.png')
        style.element_create("RoundedFrame",
                             "image",
                             borderImage, ("focus", borderImage),
                             border=16,
                             sticky="nsew")
        style.layout("RoundedFrame", [("RoundedFrame", {"sticky": "nsew"})])

        chat = api.Chat(ROWID=1)
        i = 0
        message = api.Message(ROWID=1, guid='ABC-DEF-GHI-JKL', text='hi')
        chat.addMessage(message)
        prevMessage = None
        lastFromMeId = None

        self.messageFrame.addMessage(chat, i, message, prevMessage,
                                     lastFromMeId)

        self.assertIn(message.rowid, self.messageFrame.messageBubbles)
        self.assertEqual(
            self.messageFrame.messageBubbles[message.rowid][0].pack_info()
            ['anchor'], 'w')
Exemplo n.º 3
0
    def test_get_name_with_display_name(self):
        displayName = 'Test name'
        chat = api.Chat(ROWID=1, display_name=displayName)

        name = chat.getName()

        self.assertEqual(name, displayName)
    def test_add_message_remove_temp(self):
        chat = api.Chat(ROWID=1)
        i = 0
        tempMsg = api.Message(ROWID=-1, guid='-1', text='hi', is_from_me=1)
        message = api.Message(ROWID=1,
                              guid='ABC-DEF-GHI-JKL',
                              text='hi',
                              is_from_me=1)
        chat.messageList.append(tempMsg)
        chat.outgoingList.append(tempMsg)

        prevMessage = None
        self.messageFrame.addMessage(chat, i, tempMsg, prevMessage, None)
        prevMessage = tempMsg
        lastFromMeId = -1

        self.assertIn(tempMsg.rowid, self.messageFrame.messageBubbles)

        chat.addMessage(message)
        self.messageFrame.addMessage(chat, i, message, prevMessage,
                                     lastFromMeId)

        self.assertIn(message.rowid, self.messageFrame.messageBubbles)
        self.assertNotIn(tempMsg.rowid, self.messageFrame.messageBubbles)
        self.assertEqual(
            self.messageFrame.messageBubbles[message.rowid][0].pack_info()
            ['anchor'], 'e')
    def test_need_read_receipt_from_me_not_group_imessage_last_from_me(self):
        msg = api.Message(ROWID=1, is_from_me=1, service='iMessage')
        chat = api.Chat(ROWID=1)

        result = self.messageFrame.needReadReceipt(chat, msg, msg.rowid)

        self.assertTrue(result)
    def test_add_message_with_attachments_remove_temp(self):
        chat = api.Chat(ROWID=1)
        i = 0
        tempMsg = api.Message(ROWID=-1, guid='-1', text='hi', is_from_me=1)
        message = api.Message(ROWID=1,
                              guid='ABC-DEF-GHI-JKL',
                              text='hi',
                              is_from_me=1)
        attachment = api.Attachment(ROWID=1,
                                    guid='NOT-ABC',
                                    uti='public.png',
                                    filename='bogus.png')
        tempMsg.addAttachment(attachment, 0)
        message.addAttachment(attachment, 0)

        chat.messageList.append(tempMsg)
        chat.outgoingList.append(tempMsg)

        prevMessage = None
        self.messageFrame.addMessage(chat, i, tempMsg, prevMessage, None)
        prevMessage = tempMsg
        lastFromMeId = -1

        self.assertIn(tempMsg.rowid, self.messageFrame.messageBubbles)

        chat.addMessage(message)
        self.messageFrame.addMessage(chat, i, message, prevMessage,
                                     lastFromMeId)

        self.assertIn(message.rowid, self.messageFrame.messageBubbles)
        self.assertEqual(len(self.messageFrame.messageBubbles[message.rowid]),
                         2)
        self.assertNotIn(tempMsg.rowid, self.messageFrame.messageBubbles)
Exemplo n.º 7
0
    def test_get_name_display_name_with_emoji(self):
        displayName = 'Recipient 🍄 emoji'
        correctName = 'Recipient  emoji'
        chat = api.Chat(ROWID=1, display_name=displayName)

        name = chat.getName()

        self.assertEqual(name, correctName)
Exemplo n.º 8
0
    def test__add_recipient_blank_recipient(self):
        chat = api.Chat(ROWID=1)
        recipient = ''

        returnVal = chat._addRecipient(recipient)

        self.assertListEqual(chat.recipientList, [])
        self.assertFalse(returnVal)
Exemplo n.º 9
0
    def test_get_name_no_display_name_with_recipient(self):
        chat = api.Chat(ROWID=1)
        recipient = 'test recipient'
        chat.addRecipient(recipient)

        name = chat.getName()

        self.assertEqual(name, recipient)
Exemplo n.º 10
0
    def test__add_message_from_me(self):
        chat = api.Chat(ROWID=1)
        msg = api.Message(ROWID=1, is_from_me=1)
        correctMessageDict = {msg.ROWID: msg}

        chat._addMessage(msg)

        self.assertDictEqual(chat.messageList.messages, correctMessageDict)
Exemplo n.º 11
0
    def test_get_most_recent_message(self):
        chat = api.Chat(ROWID=1)
        msg = api.Message(ROWID=1, text='new text')
        chat.addMessage(msg)

        recentMessage = chat.getMostRecentMessage()

        self.assertEqual(recentMessage, msg)
Exemplo n.º 12
0
    def test_get_name_no_display_name_with_recipients(self):
        chat = api.Chat(ROWID=1)
        recipients = ['test recipient {}'.format(i) for i in range(1, 4)]
        chat.addRecipients(recipients)

        name = chat.getName()

        self.assertEqual(name, ', '.join(recipients))
Exemplo n.º 13
0
    def test__add_recipient(self):
        chat = api.Chat(ROWID=1)
        recipient = '+15555555555'

        returnVal = chat._addRecipient(recipient)

        self.assertListEqual(chat.recipientList, [recipient])
        self.assertTrue(returnVal)
Exemplo n.º 14
0
    def test_add_recipients_one_bad_recipient(self):
        chat = api.Chat(ROWID=1)
        recipients = ['', '+15555555555']

        returnVal = chat.addRecipients(recipients)

        self.assertListEqual(chat.recipientList, ['+15555555555'])
        self.assertFalse(returnVal)
    def test_need_read_receipt_not_imessage(self):
        msg = api.Message(ROWID=1, is_from_me=1, service='SMS')
        chat = api.Chat(ROWID=1)

        result = self.messageFrame.needReadReceipt(chat, msg, None)

        self.assertFalse(msg.isiMessage)
        self.assertFalse(result)
    def test_need_read_receipt_is_group(self):
        msg = api.Message(ROWID=1, is_from_me=0)
        chat = api.Chat(ROWID=1, style=43)

        result = self.messageFrame.needReadReceipt(chat, msg, None)

        self.assertTrue(chat.isGroup)
        self.assertFalse(result)
Exemplo n.º 17
0
    def test_add_recipients(self):
        chat = api.Chat(ROWID=1)
        recipients = ['+15555555555', '*****@*****.**']

        returnVal = chat.addRecipients(recipients)

        for recipient in recipients:
            self.assertIn(recipient, chat.recipientList)
        self.assertTrue(returnVal)
Exemplo n.º 18
0
    def test_default_properties(self):
        chat = api.Chat(ROWID=1)

        self.assertEqual(chat.chatId, chat.ROWID)
        self.assertEqual(chat.serviceName, chat.service_name)
        self.assertEqual(chat.chatIdentifier, chat.chat_identifier)
        self.assertEqual(chat.displayName, chat.display_name)
        self.assertFalse(chat.isiMessage)
        self.assertFalse(chat.isGroup)
Exemplo n.º 19
0
    def test_add_message(self):
        chat = api.Chat(ROWID=1)
        msg = api.Message(ROWID=1)
        correctMessageDict = {msg.ROWID: msg}

        chat.addMessage(msg)

        self.assertDictEqual(chat.messageList.messages, correctMessageDict)
        self.assertEqual(chat.lastAccessTime, 0)
    def test_change_chat(self):
        chat = api.Chat(ROWID=1)

        self.messageFrame.changeChat(chat)

        self.assertDictEqual(self.messageFrame.messageBubbles, {})
        self.assertEqual(self.messageFrame.messageLimit, 15)
        self.assertEqual(self.messageFrame.currentChat, chat)
        self.assertEqual(id(self.messageFrame.currentChat), id(chat))
Exemplo n.º 21
0
    def test_get_messages(self):
        chat = api.Chat(ROWID=1)
        msg = api.Message(ROWID=1, text='new text')
        chat.addMessage(msg)
        correctMessageDict = {msg.ROWID: msg}

        messages = chat.getMessages()

        self.assertDictEqual(messages, correctMessageDict)
        self.assertDictEqual(messages, chat.messageList.messages)
Exemplo n.º 22
0
    def test_send_reaction(self):
        chat = api.Chat(ROWID=1)
        testMessageId = 1
        testReactionType = 2000

        chat.sendReaction(self.StubMessagePasser(), testMessageId,
                          testReactionType)

        self.assertDictEqual(chat.messageList.messages, {})
        self.assertDictEqual(chat.outgoingList.messages, {})
Exemplo n.º 23
0
    def test_add_message_with_update_time(self):
        chat = api.Chat(ROWID=1)
        msg = api.Message(ROWID=1)
        lastAccessTime = 1
        correctMessageDict = {msg.ROWID: msg}

        chat.addMessage(msg, lastAccessTime)

        self.assertDictEqual(chat.messageList.messages, correctMessageDict)
        self.assertEqual(chat.lastAccessTime, lastAccessTime)
Exemplo n.º 24
0
    def test_get_chats_to_update_with_local_updates(self):
        messageDb = api.MessageDatabase()
        chat = api.Chat(ROWID=1)
        chat.localUpdate = True

        (chats, maxUpdate) = messageDb.getChatsToUpdate(0, {chat.ROWID: chat})

        self.assertEqual(maxUpdate, 1596330123)
        self.assertListEqual(chats, [82, 85, 86, 87, 1])
        self.assertFalse(chat.localUpdate)
    def test_get_messages_up_to_limit(self):
        chat = api.Chat(ROWID=1)
        maxId = self.messageFrame.messageLimit + 2
        for i in range(1, maxId):
            chat.addMessage(api.Message(ROWID=i, guid=str(i)))
        messageDict = chat.getMessages()

        subList = self.messageFrame.getMessagesUpToLimit(
            messageDict, self.messageFrame.messageLimit)

        self.assertEqual(len(subList), self.messageFrame.messageLimit)
Exemplo n.º 26
0
    def test_send_message(self):
        chat = api.Chat(ROWID=1)
        testText = 'Test text'
        recipient = '+15555555555'

        chat.sendMessage(self.StubMessagePasser(), testText, recipient)

        self.assertEqual(chat.messagePreviewId, -2)
        self.assertIn(-1, chat.messageList.messages)
        self.assertIn(-1, chat.outgoingList.messages)
        self.assertTrue(chat.localUpdate)
    def test_add_messages_pass_limit(self):
        chat = api.Chat(ROWID=1)
        maxId = self.messageFrame.messageLimit + 2
        for i in range(1, maxId):
            chat.addMessage(api.Message(ROWID=i, guid=str(i)))
        self.messageFrame.currentChat = chat

        result = self.messageFrame.addMessages(chat)

        self.assertFalse(result)
        self.assertListEqual(list(self.messageFrame.messageBubbles.keys()),
                             [i for i in range(2, maxId)])
Exemplo n.º 28
0
    def test_add_messages(self):
        chat = api.Chat(ROWID=1)
        msg = api.Message(ROWID=1)
        msg2 = api.Message(ROWID=2)
        correctMessageDict = {msg.ROWID: msg, msg2.ROWID: msg2}

        chat.addMessages([msg, msg2])

        self.assertDictEqual(chat.messageList.messages, correctMessageDict)
        self.assertListEqual(list(chat.messageList.messages),
                             list(correctMessageDict))
        self.assertEqual(chat.lastAccessTime, 0)
Exemplo n.º 29
0
    def test_remove_temporary_message(self):
        chat = api.Chat(ROWID=1)
        testText = 'Test text'
        tempMsg = api.Message(ROWID=-1, text=testText, is_from_me=1)
        chat.outgoingList.append(tempMsg)
        chat.addMessage(tempMsg)
        msg = api.Message(ROWID=1, text=testText, is_from_me=1)

        chat.removeTemporaryMessage(msg)

        self.assertDictEqual(chat.outgoingList.messages, {})
        self.assertDictEqual(chat.messageList.messages, {})
Exemplo n.º 30
0
    def test_remove_temporary_message_same_message(self):
        chat = api.Chat(ROWID=1)
        testText = 'Test text'
        tempMsg = api.Message(ROWID=-2, text=testText, is_from_me=1)
        chat.outgoingList.append(tempMsg)
        chat.addMessage(tempMsg)
        correctMessageDict = {tempMsg.ROWID: tempMsg}

        chat.removeTemporaryMessage(tempMsg)

        self.assertDictEqual(chat.outgoingList.messages, correctMessageDict)
        self.assertDictEqual(chat.messageList.messages, correctMessageDict)