prefill form with IMAP account get mailbox with correct folder delimiter
darcs-hash:20071031170446-86b55-98606724f6da2bde3fb610d575f926f59d6ec07a.gz
This commit is contained in:
@@ -73,7 +73,6 @@ class MailAccountManager(AccountManager):
|
|||||||
else:
|
else:
|
||||||
info_query = info_query.make_result_response()
|
info_query = info_query.make_result_response()
|
||||||
model.db_connect()
|
model.db_connect()
|
||||||
# TODO : "/" is default, "." could be
|
|
||||||
imap_dir = "/".join(splitted_node[1:])
|
imap_dir = "/".join(splitted_node[1:])
|
||||||
bare_from_jid = from_jid.bare()
|
bare_from_jid = from_jid.bare()
|
||||||
_account = account.get_account_filter(\
|
_account = account.get_account_filter(\
|
||||||
@@ -95,13 +94,14 @@ class MailAccountManager(AccountManager):
|
|||||||
_account)
|
_account)
|
||||||
result["name"].value = None
|
result["name"].value = None
|
||||||
result["name"].type = "text-single"
|
result["name"].type = "text-single"
|
||||||
|
result["mailbox"].value = imap_dir.replace("/", _account.delimiter)
|
||||||
else:
|
else:
|
||||||
# create new account from scratch
|
# create new account from scratch
|
||||||
result = self.generate_registration_form(\
|
result = self.generate_registration_form(\
|
||||||
lang_class,
|
lang_class,
|
||||||
IMAPAccount,
|
IMAPAccount,
|
||||||
bare_from_jid)
|
bare_from_jid)
|
||||||
result["mailbox"].value = imap_dir
|
result["mailbox"].value = imap_dir
|
||||||
result.as_xml(query)
|
result.as_xml(query)
|
||||||
return [info_query]
|
return [info_query]
|
||||||
|
|
||||||
|
|||||||
@@ -729,7 +729,7 @@ class MailComponent_TestCase(JCLTestCase):
|
|||||||
account11.away_action = PresenceAccount.DO_NOTHING
|
account11.away_action = PresenceAccount.DO_NOTHING
|
||||||
account11.xa_action = PresenceAccount.DO_NOTHING
|
account11.xa_action = PresenceAccount.DO_NOTHING
|
||||||
account11.dnd_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"),
|
account21 = MockIMAPAccount(user=User(jid="user2@test.com"),
|
||||||
name="account21",
|
name="account21",
|
||||||
jid="account21@jcl.test.com")
|
jid="account21@jcl.test.com")
|
||||||
@@ -878,11 +878,12 @@ class MailComponent_TestCase(JCLTestCase):
|
|||||||
account1.away_action = PresenceAccount.DO_NOTHING
|
account1.away_action = PresenceAccount.DO_NOTHING
|
||||||
account1.xa_action = PresenceAccount.DO_NOTHING
|
account1.xa_action = PresenceAccount.DO_NOTHING
|
||||||
account1.dnd_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,
|
account11 = MockIMAPAccount(user=user1,
|
||||||
name="account11",
|
name="account11",
|
||||||
jid="account11@jcl.test.com")
|
jid="account11@jcl.test.com")
|
||||||
account11.maildir = "INBOX/dir1"
|
account11.maildir = "INBOX/dir1"
|
||||||
|
account11.delimiter = "/"
|
||||||
account21 = MockIMAPAccount(user=User(jid="user2@test.com"),
|
account21 = MockIMAPAccount(user=User(jid="user2@test.com"),
|
||||||
name="account21",
|
name="account21",
|
||||||
jid="account21@jcl.test.com")
|
jid="account21@jcl.test.com")
|
||||||
@@ -1008,6 +1009,159 @@ class MailComponent_TestCase(JCLTestCase):
|
|||||||
self.assertEquals(field.children.name, "value")
|
self.assertEquals(field.children.name, "value")
|
||||||
self.assertEquals(field.children.content, "INBOX/dir1/subdir1")
|
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):
|
class SendMailMessageHandler_TestCase(unittest.TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.handler = SendMailMessageHandler(None)
|
self.handler = SendMailMessageHandler(None)
|
||||||
|
|||||||
Reference in New Issue
Block a user