diff options
author | David Rousselie <dax@happycoders.org> | 2007-10-31 20:04:46 +0300 |
---|---|---|
committer | David Rousselie <dax@happycoders.org> | 2007-10-31 20:04:46 +0300 |
commit | 533c9e36251afbcdc4a7866a79b889ab95534fa4 (patch) | |
tree | 3ba1118a21f5d4bf3de66c1554f2d7e6bdd936b4 /src/jmc | |
parent | 511e4916c3f5b2b013fb1bd8d5ba35b7520ee756 (diff) |
prefill form with IMAP account get mailbox with correct folder delimiter
darcs-hash:20071031170446-86b55-98606724f6da2bde3fb610d575f926f59d6ec07a.gz
Diffstat (limited to 'src/jmc')
-rw-r--r-- | src/jmc/jabber/component.py | 4 | ||||
-rw-r--r-- | src/jmc/jabber/tests/component.py | 158 |
2 files changed, 158 insertions, 4 deletions
diff --git a/src/jmc/jabber/component.py b/src/jmc/jabber/component.py index b6f8cb2..7fa63d4 100644 --- a/src/jmc/jabber/component.py +++ b/src/jmc/jabber/component.py @@ -73,7 +73,6 @@ class MailAccountManager(AccountManager): else: info_query = info_query.make_result_response() model.db_connect() - # TODO : "/" is default, "." could be imap_dir = "/".join(splitted_node[1:]) bare_from_jid = from_jid.bare() _account = account.get_account_filter(\ @@ -95,13 +94,14 @@ class MailAccountManager(AccountManager): _account) result["name"].value = None result["name"].type = "text-single" + result["mailbox"].value = imap_dir.replace("/", _account.delimiter) else: # create new account from scratch result = self.generate_registration_form(\ lang_class, IMAPAccount, bare_from_jid) - result["mailbox"].value = imap_dir + result["mailbox"].value = imap_dir result.as_xml(query) return [info_query] diff --git a/src/jmc/jabber/tests/component.py b/src/jmc/jabber/tests/component.py index f54bf53..2caa48d 100644 --- a/src/jmc/jabber/tests/component.py +++ b/src/jmc/jabber/tests/component.py @@ -729,7 +729,7 @@ class MailComponent_TestCase(JCLTestCase): account11.away_action = PresenceAccount.DO_NOTHING account11.xa_action = PresenceAccount.DO_NOTHING account11.dnd_action = PresenceAccount.DO_NOTHING - account11.offline_action = PresenceAccount.DO_NOTHING + account11.offline_action = PresenceAccount.DO_NOTHING account21 = MockIMAPAccount(user=User(jid="user2@test.com"), name="account21", jid="account21@jcl.test.com") @@ -878,11 +878,12 @@ class MailComponent_TestCase(JCLTestCase): account1.away_action = PresenceAccount.DO_NOTHING account1.xa_action = PresenceAccount.DO_NOTHING account1.dnd_action = PresenceAccount.DO_NOTHING - account1.offline_action = PresenceAccount.DO_NOTHING + account1.offline_action = PresenceAccount.DO_NOTHING account11 = MockIMAPAccount(user=user1, name="account11", jid="account11@jcl.test.com") account11.maildir = "INBOX/dir1" + account11.delimiter = "/" account21 = MockIMAPAccount(user=User(jid="user2@test.com"), name="account21", jid="account21@jcl.test.com") @@ -1008,6 +1009,159 @@ class MailComponent_TestCase(JCLTestCase): self.assertEquals(field.children.name, "value") self.assertEquals(field.children.content, "INBOX/dir1/subdir1") + def test_account_get_register_imap_dir_new(self): + model.db_connect() + self.comp.stream = MockStream() + self.comp.stream_class = MockStream + user1 = User(jid="user1@test.com") + account1 = MockIMAPAccount(user=user1, + name="account1", + jid="account1@jcl.test.com") + account1.maildir = "INBOX" + account1.password = "pass1" + account1.port = 993 + account1.host = "host1" + account1.login = "login1" + account1.ssl = True + account1.interval = 1 + account1.store_password = False + account1.live_email_only = True + account1.chat_action = PresenceAccount.DO_NOTHING + account1.online_action = PresenceAccount.DO_NOTHING + account1.away_action = PresenceAccount.DO_NOTHING + account1.xa_action = PresenceAccount.DO_NOTHING + account1.dnd_action = PresenceAccount.DO_NOTHING + account1.offline_action = PresenceAccount.DO_NOTHING + account11 = MockIMAPAccount(user=user1, + name="account11", + jid="account11@jcl.test.com") + account11.maildir = "INBOX/dir1" + account11.delimiter = "." + account21 = MockIMAPAccount(user=User(jid="user2@test.com"), + name="account21", + jid="account21@jcl.test.com") + model.db_disconnect() + self.comp.handle_get_register(Iq(stanza_type="get", + from_jid="user1@test.com", + to_jid="account1@jcl.test.com/IMAP/INBOX/dir1/subdir1")) + self.assertEquals(len(self.comp.stream.sent), 1) + iq_sent = self.comp.stream.sent[0] + self.assertEquals(iq_sent.get_to(), "user1@test.com") + titles = iq_sent.xpath_eval("jir:query/jxd:x/jxd:title", + {"jir" : "jabber:iq:register", + "jxd" : "jabber:x:data"}) + self.assertEquals(len(titles), 1) + self.assertEquals(titles[0].content, + Lang.en.register_title) + instructions = iq_sent.xpath_eval("jir:query/jxd:x/jxd:instructions", + {"jir" : "jabber:iq:register", + "jxd" : "jabber:x:data"}) + self.assertEquals(len(instructions), 1) + self.assertEquals(instructions[0].content, + Lang.en.register_instructions) + fields = iq_sent.xpath_eval("jir:query/jxd:x/jxd:field", + {"jir" : "jabber:iq:register", + "jxd" : "jabber:x:data"}) + self.assertEquals(len(fields), 16) + field = fields[0] + self.assertEquals(field.prop("type"), "text-single") + self.assertEquals(field.prop("var"), "name") + self.assertEquals(field.prop("label"), Lang.en.account_name) + self.assertEquals(field.children.name, "required") + self.assertEquals(field.children.next, None) + field = fields[1] + self.assertEquals(field.prop("type"), "list-single") + self.assertEquals(field.prop("var"), "chat_action") + self.assertEquals(field.prop("label"), Lang.en.field_chat_action) + self.assertEquals(field.children.name, "value") + self.assertEquals(field.children.content, "0") + field = fields[2] + self.assertEquals(field.prop("type"), "list-single") + self.assertEquals(field.prop("var"), "online_action") + self.assertEquals(field.prop("label"), Lang.en.field_online_action) + self.assertEquals(field.children.name, "value") + self.assertEquals(field.children.content, "0") + field = fields[3] + self.assertEquals(field.prop("type"), "list-single") + self.assertEquals(field.prop("var"), "away_action") + self.assertEquals(field.prop("label"), Lang.en.field_away_action) + self.assertEquals(field.children.name, "value") + self.assertEquals(field.children.content, "0") + field = fields[4] + self.assertEquals(field.prop("type"), "list-single") + self.assertEquals(field.prop("var"), "xa_action") + self.assertEquals(field.prop("label"), Lang.en.field_xa_action) + self.assertEquals(field.children.name, "value") + self.assertEquals(field.children.content, "0") + field = fields[5] + self.assertEquals(field.prop("type"), "list-single") + self.assertEquals(field.prop("var"), "dnd_action") + self.assertEquals(field.prop("label"), Lang.en.field_dnd_action) + self.assertEquals(field.children.name, "value") + self.assertEquals(field.children.content, "0") + field = fields[6] + self.assertEquals(field.prop("type"), "list-single") + self.assertEquals(field.prop("var"), "offline_action") + self.assertEquals(field.prop("label"), Lang.en.field_offline_action) + self.assertEquals(field.children.name, "value") + self.assertEquals(field.children.content, "0") + field = fields[7] + self.assertEquals(field.prop("type"), "text-single") + self.assertEquals(field.prop("var"), "login") + self.assertEquals(field.prop("label"), Lang.en.field_login) + self.assertEquals(field.children.name, "value") + self.assertEquals(field.children.content, "login1") + self.assertEquals(field.children.next.name, "required") + field = fields[8] + self.assertEquals(field.prop("type"), "text-private") + self.assertEquals(field.prop("var"), "password") + self.assertEquals(field.prop("label"), Lang.en.field_password) + self.assertEquals(field.children.name, "value") + self.assertEquals(field.children.content, "pass1") + field = fields[9] + self.assertEquals(field.prop("type"), "text-single") + self.assertEquals(field.prop("var"), "host") + self.assertEquals(field.prop("label"), Lang.en.field_host) + self.assertEquals(field.children.name, "value") + self.assertEquals(field.children.content, "host1") + self.assertEquals(field.children.next.name, "required") + field = fields[10] + self.assertEquals(field.prop("type"), "text-single") + self.assertEquals(field.prop("var"), "port") + self.assertEquals(field.prop("label"), Lang.en.field_port) + self.assertEquals(field.children.name, "value") + self.assertEquals(field.children.content, "993") + field = fields[11] + self.assertEquals(field.prop("type"), "boolean") + self.assertEquals(field.prop("var"), "ssl") + self.assertEquals(field.prop("label"), Lang.en.field_ssl) + self.assertEquals(field.children.name, "value") + self.assertEquals(field.children.content, "1") + field = fields[12] + self.assertEquals(field.prop("type"), "boolean") + self.assertEquals(field.prop("var"), "store_password") + self.assertEquals(field.prop("label"), Lang.en.field_store_password) + self.assertEquals(field.children.name, "value") + self.assertEquals(field.children.content, "0") + field = fields[13] + self.assertEquals(field.prop("type"), "boolean") + self.assertEquals(field.prop("var"), "live_email_only") + self.assertEquals(field.prop("label"), Lang.en.field_live_email_only) + self.assertEquals(field.children.name, "value") + self.assertEquals(field.children.content, "1") + field = fields[14] + self.assertEquals(field.prop("type"), "text-single") + self.assertEquals(field.prop("var"), "interval") + self.assertEquals(field.prop("label"), Lang.en.field_interval) + self.assertEquals(field.children.name, "value") + self.assertEquals(field.children.content, "1") + field = fields[15] + self.assertEquals(field.prop("type"), "text-single") + self.assertEquals(field.prop("var"), "mailbox") + self.assertEquals(field.prop("label"), Lang.en.field_mailbox) + self.assertEquals(field.children.name, "value") + self.assertEquals(field.children.content, "INBOX.dir1.subdir1") + class SendMailMessageHandler_TestCase(unittest.TestCase): def setUp(self): self.handler = SendMailMessageHandler(None) |