summaryrefslogtreecommitdiff
path: root/tests/unit
diff options
context:
space:
mode:
authorKali Kaneko (leap communications) <kali@leap.se>2017-04-27 15:20:24 +0200
committerRuben Pollan <meskio@sindominio.net>2017-05-16 19:28:35 +0200
commitc980cae46d101c0def23bf3398b65b2e0c614d2a (patch)
tree6e421dc1d1a65572ab621f564b281ed1ffe5a0f3 /tests/unit
parent401bf8067bf6eb1fd27477550a6edc0ab08647e4 (diff)
[bug] fix notification for incoming mail with several listeners registered
When setting the listeners in the IMAP Folder, we avoid setting more than one listener for the same imap mailbox (because in some situations we were registering way too many listeners). this was making the pixelated inbox registering the notification and therefore the imap mailbox not being registered. this MR also refactors the way pixelated is initialized, so that it avoid creating a second Account instance. In this way, we make sure that the pixelated mua and the imap server share the same collections for a given mailbox, and therefore any of the two is able to get a notification whenever the other adds a message to the mailbox. - Resolves: #8846, #8798
Diffstat (limited to 'tests/unit')
-rw-r--r--tests/unit/mail/imap/test_mailbox.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/tests/unit/mail/imap/test_mailbox.py b/tests/unit/mail/imap/test_mailbox.py
new file mode 100644
index 00000000..ce269dca
--- /dev/null
+++ b/tests/unit/mail/imap/test_mailbox.py
@@ -0,0 +1,49 @@
+# -*- coding: utf-8 -*-
+# test_service.py
+# Copyright (C) 2016 LEAP
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+import unittest
+
+from leap.bitmask.mail.imap.mailbox import make_collection_listener
+
+
+class _mbox(object):
+ pass
+
+
+class TestListener(unittest.TestCase):
+
+ def setUp(self):
+ pass
+
+ def test_mailbox_listener(self):
+ mbox1 = _mbox()
+ mbox1.mbox_name = 'inbox'
+
+ mbox2 = _mbox()
+ mbox2.mbox_name = 'inbox'
+
+ mbox3 = _mbox()
+ mbox3.mbox_name = 'trash'
+
+ _set1 = set([mbox1] + [make_collection_listener(mbox2)] +
+ [make_collection_listener(mbox3)])
+ assert len(_set1) == 3
+
+ _set2 = set([make_collection_listener(mbox1)] +
+ [make_collection_listener(mbox2)] +
+ [make_collection_listener(mbox3)])
+ assert len(_set2) == 2