diff options
author | David Rousselie <dax@happycoders.org> | 2007-10-23 10:19:47 +0400 |
---|---|---|
committer | David Rousselie <dax@happycoders.org> | 2007-10-23 10:19:47 +0400 |
commit | 204b03ea90e6ebf1dcf02242e364e5e93757a8a4 (patch) | |
tree | d165e8e833eac499cbd2351103f7d5db096fc153 | |
parent | 98510aa128b0848dcbb3cd1e9acbb8a7fc5a8460 (diff) |
Pre-fill registration form when registering IMAP folder
darcs-hash:20071023061947-86b55-08df84d7152d7804866ccdc1e37b35b9a36f3664.gz
-rw-r--r-- | src/jmc/jabber/component.py | 22 | ||||
-rw-r--r-- | src/jmc/jabber/tests/component.py | 204 |
2 files changed, 217 insertions, 9 deletions
diff --git a/src/jmc/jabber/component.py b/src/jmc/jabber/component.py index 1e1e38d..075f718 100644 --- a/src/jmc/jabber/component.py +++ b/src/jmc/jabber/component.py @@ -79,15 +79,23 @@ class MailAccountManager(AccountManager): account_class=IMAPAccount) query = info_query.new_query("jabber:iq:register") if _account is not None: - self.generate_registration_form_init(lang_class, - _account).as_xml(query) + result = self.generate_registration_form_init(lang_class, + _account) else: - result = self.generate_registration_form(\ - lang_class, - IMAPAccount, - bare_from_jid) + _account = account.get_account(bare_from_jid, name, + IMAPAccount) + if _account is not None: + result = self.generate_registration_form_init(lang_class, + _account) + result["name"].value = None + result["name"].type = "text-single" + else: + result = self.generate_registration_form(\ + lang_class, + IMAPAccount, + bare_from_jid) result["mailbox"].value = imap_dir - result.as_xml(query) + result.as_xml(query) return [info_query] class MailComponent(FeederComponent): diff --git a/src/jmc/jabber/tests/component.py b/src/jmc/jabber/tests/component.py index a99b265..8312a8b 100644 --- a/src/jmc/jabber/tests/component.py +++ b/src/jmc/jabber/tests/component.py @@ -712,6 +712,20 @@ class MailComponent_TestCase(JCLTestCase): name="account11", jid="account11@jcl.test.com") account11.mailbox = "INBOX/dir1" + account11.password = "pass1" + account11.port = 993 + account11.host = "host1" + account11.login = "login1" + account11.ssl = True + account11.interval = 1 + account11.store_password = False + account11.live_email_only = True + account11.chat_action = PresenceAccount.DO_NOTHING + account11.online_action = PresenceAccount.DO_NOTHING + account11.away_action = PresenceAccount.DO_NOTHING + account11.xa_action = PresenceAccount.DO_NOTHING + account11.dnd_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") @@ -745,6 +759,92 @@ class MailComponent_TestCase(JCLTestCase): self.assertEquals(field.children.name, "value") self.assertEquals(field.children.content, "account11") self.assertEquals(field.children.next.name, "required") + 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") @@ -761,9 +861,23 @@ class MailComponent_TestCase(JCLTestCase): 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") + name="account11", + jid="account11@jcl.test.com") account11.maildir = "INBOX/dir1" account21 = MockIMAPAccount(user=User(jid="user2@test.com"), name="account21", @@ -797,6 +911,92 @@ class MailComponent_TestCase(JCLTestCase): 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") |