Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dax/jmc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Rousselie <dax@happycoders.org>2007-10-23 10:19:47 +0400
committerDavid Rousselie <dax@happycoders.org>2007-10-23 10:19:47 +0400
commit204b03ea90e6ebf1dcf02242e364e5e93757a8a4 (patch)
treed165e8e833eac499cbd2351103f7d5db096fc153
parent98510aa128b0848dcbb3cd1e9acbb8a7fc5a8460 (diff)
Pre-fill registration form when registering IMAP folder
darcs-hash:20071023061947-86b55-08df84d7152d7804866ccdc1e37b35b9a36f3664.gz
-rw-r--r--src/jmc/jabber/component.py22
-rw-r--r--src/jmc/jabber/tests/component.py204
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")