diff options
author | shugo <shugo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-04-23 05:07:21 +0000 |
---|---|---|
committer | shugo <shugo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-04-23 05:07:21 +0000 |
commit | 8541ed6df6a0082cb5f319dcfccd628f8d1d755f (patch) | |
tree | f3894154200bf6b9d27f21d2ddbd79ea5e96e704 | |
parent | 3ae96e8c6bffe0e58d7bf9a5efb7259745368c7d (diff) | |
download | ruby-8541ed6df6a0082cb5f319dcfccd628f8d1d755f.tar.gz |
* lib/net/imap.rb (getacl_response): parse the mailbox of an ACL
response correctly. [ruby-core:54365] [Bug #8281]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40419 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | lib/net/imap.rb | 6 | ||||
-rw-r--r-- | test/net/imap/test_imap_response_parser.rb | 14 |
3 files changed, 22 insertions, 3 deletions
@@ -1,3 +1,8 @@ +Tue Apr 23 14:04:44 2013 Shugo Maeda <shugo@ruby-lang.org> + + * lib/net/imap.rb (getacl_response): parse the mailbox of an ACL + response correctly. [ruby-core:54365] [Bug #8281] + Tue Apr 23 11:58:46 2013 Nobuyoshi Nakada <nobu@ruby-lang.org> * string.c (rb_str_scrub): fix for UTF-32. strlen() on strings diff --git a/lib/net/imap.rb b/lib/net/imap.rb index f68fe4551e..a816b4e263 100644 --- a/lib/net/imap.rb +++ b/lib/net/imap.rb @@ -1740,7 +1740,7 @@ module Net # rights:: The access rights the indicated user has to the # mailbox. # - MailboxACLItem = Struct.new(:user, :rights) + MailboxACLItem = Struct.new(:user, :rights, :mailbox) # Net::IMAP::StatusData represents contents of the STATUS response. # @@ -2806,6 +2806,7 @@ module Net token = match(T_ATOM) name = token.value.upcase match(T_SPACE) + mailbox = astring data = [] token = lookahead if token.symbol == T_SPACE @@ -2821,8 +2822,7 @@ module Net user = astring match(T_SPACE) rights = astring - ##XXX data.push([user, rights]) - data.push(MailboxACLItem.new(user, rights)) + data.push(MailboxACLItem.new(user, rights, mailbox)) end end return UntaggedResponse.new(name, data, @str) diff --git a/test/net/imap/test_imap_response_parser.rb b/test/net/imap/test_imap_response_parser.rb index 4062e1b9e7..c329f4285f 100644 --- a/test/net/imap/test_imap_response_parser.rb +++ b/test/net/imap/test_imap_response_parser.rb @@ -223,4 +223,18 @@ EOF assert_equal("7BIT", delivery_status.encoding) assert_equal(410, delivery_status.size) end + + # [Bug #8281] + def test_acl + parser = Net::IMAP::ResponseParser.new + response = parser.parse(<<EOF.gsub(/\n/, "\r\n").taint) +* ACL "INBOX/share" "imshare2copy1366146467@xxxxxxxxxxxxxxxxxx.com" lrswickxteda +EOF + assert_equal("ACL", response.name) + assert_equal(1, response.data.length) + assert_equal("INBOX/share", response.data[0].mailbox) + assert_equal("imshare2copy1366146467@xxxxxxxxxxxxxxxxxx.com", + response.data[0].user) + assert_equal("lrswickxteda", response.data[0].rights) + end end |