Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 16 additions & 39 deletions test/net/imap/fixtures/response_parser/uidplus_extension.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,10 @@
data: !ruby/struct:Net::IMAP::ResponseText
code: !ruby/struct:Net::IMAP::ResponseCode
name: APPENDUID
data: !ruby/struct:Net::IMAP::UIDPlusData
data: !ruby/object:Net::IMAP::AppendUIDData
uidvalidity: 38505
source_uids:
assigned_uids:
- 3955
assigned_uids: !ruby/object:Net::IMAP::SequenceSet
string: '3955'
text: APPEND completed
raw_data: "A003 OK [APPENDUID 38505 3955] APPEND completed\r\n"

Expand All @@ -27,16 +26,12 @@
data: !ruby/struct:Net::IMAP::ResponseText
code: !ruby/struct:Net::IMAP::ResponseCode
name: COPYUID
data: !ruby/struct:Net::IMAP::UIDPlusData
data: !ruby/object:Net::IMAP::CopyUIDData
uidvalidity: 38505
source_uids:
- 304
- 319
- 320
assigned_uids:
- 3956
- 3957
- 3958
source_uids: !ruby/object:Net::IMAP::SequenceSet
string: 304,319:320
assigned_uids: !ruby/object:Net::IMAP::SequenceSet
string: 3956:3958
text: Done
raw_data: "A004 OK [COPYUID 38505 304,319:320 3956:3958] Done\r\n"

Expand All @@ -48,14 +43,10 @@
data: !ruby/struct:Net::IMAP::ResponseText
code: !ruby/struct:Net::IMAP::ResponseCode
name: APPENDUID
data: !ruby/struct:Net::IMAP::UIDPlusData
data: !ruby/object:Net::IMAP::AppendUIDData
uidvalidity: 2
source_uids:
assigned_uids:
- 4
- 6
- 7
- 9
assigned_uids: !ruby/object:Net::IMAP::SequenceSet
string: 4,6:7,9
text: APPEND completed
raw_data: "A003 OK [APPENDUID 2 4,6:7,9] APPEND completed\r\n"

Expand All @@ -71,25 +62,11 @@
data: !ruby/struct:Net::IMAP::ResponseText
code: !ruby/struct:Net::IMAP::ResponseCode
name: COPYUID
data: !ruby/struct:Net::IMAP::UIDPlusData
data: !ruby/object:Net::IMAP::CopyUIDData
uidvalidity: 9999
source_uids:
- 19
- 20
- 495
- 496
- 497
- 498
- 499
- 500
assigned_uids:
- 92
- 93
- 94
- 95
- 96
- 97
- 100
- 101
source_uids: !ruby/object:Net::IMAP::SequenceSet
string: 20:19,500:495
assigned_uids: !ruby/object:Net::IMAP::SequenceSet
string: 92:97,101:100
text: Done
raw_data: "A004 OK [copyUID 9999 20:19,500:495 92:97,101:100] Done\r\n"
25 changes: 19 additions & 6 deletions test/net/imap/test_imap_uidplus.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@
class IMAPUIDPlusTest < Net::IMAP::TestCase
include Net::IMAP::FakeServer::TestHelper

def setup
super
Net::IMAP.config.parser_use_deprecated_uidplus_data = false
end

def test_uidplus_appenduid
with_fake_server(select: "INBOX",
extensions: %i[UIDPLUS]) do |server, imap|
Expand All @@ -21,7 +26,10 @@ def test_uidplus_appenduid

hello world
EOF
assert_equal([38505, nil, [3955]], resp.data.code.data.to_a)
code = resp.data.code
assert_equal("APPENDUID", code.name)
assert_equal(38505, code.data.uidvalidity)
assert_equal([3955], code.data.assigned_uids.numbers)
assert_equal "APPEND", server.commands.pop.name
end
end
Expand All @@ -33,12 +41,13 @@ def test_uidplus_copyuid_multiple
cmd.done_ok code: "COPYUID 38505 3955,3960:3962 3963:3966"
end
resp = imap.uid_copy([3955,3960..3962], 'trash')
code = resp.data.code
cmd = server.commands.pop
assert_equal(["UID COPY", "3955,3960:3962 trash"], [cmd.name, cmd.args])
assert_equal(
[38505, [3955, 3960, 3961, 3962], [3963, 3964, 3965, 3966]],
resp.data.code.data.to_a
)
assert_equal("COPYUID", code.name)
assert_equal(38505, code.data.uidvalidity)
assert_equal([3955, 3960, 3961, 3962], code.data.source_uids.numbers)
assert_equal([3963, 3964, 3965, 3966], code.data.assigned_uids.numbers)
end
end

Expand All @@ -49,9 +58,13 @@ def test_uidplus_copyuid_single
cmd.done_ok code: "COPYUID 38505 3955 3967"
end
resp = imap.uid_copy(3955, 'trash')
code = resp.data.code
cmd = server.commands.pop
assert_equal(["UID COPY", "3955 trash"], [cmd.name, cmd.args])
assert_equal([38505, [3955], [3967]], resp.data.code.data.to_a)
assert_equal("COPYUID", code.name)
assert_equal(38505, code.data.uidvalidity)
assert_equal([3955], code.data.source_uids.numbers)
assert_equal([3967], code.data.assigned_uids.numbers)
end
end

Expand Down
5 changes: 5 additions & 0 deletions test/net/imap/test_response_parser.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,11 @@ class ResponseParserTest < Net::IMAP::TestCase
include NetIMAPTestHelpers
extend NetIMAPTestHelpers::TestFixtureGenerators

def setup
super
Net::IMAP.config.parser_use_deprecated_uidplus_data = false
end

############################################################################
# Tests that do no more than parse an example response and assert the result
# data has the correct values have been moved to yml test fixtures.
Expand Down