diff --git a/test/net/imap/fixtures/response_parser/uidplus_extension.yml b/test/net/imap/fixtures/response_parser/uidplus_extension.yml index c2f084c4..bbb1c0bc 100644 --- a/test/net/imap/fixtures/response_parser/uidplus_extension.yml +++ b/test/net/imap/fixtures/response_parser/uidplus_extension.yml @@ -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" @@ -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" @@ -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" @@ -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" diff --git a/test/net/imap/test_imap_uidplus.rb b/test/net/imap/test_imap_uidplus.rb index d19af5f7..426f988c 100644 --- a/test/net/imap/test_imap_uidplus.rb +++ b/test/net/imap/test_imap_uidplus.rb @@ -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| @@ -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 @@ -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 @@ -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 diff --git a/test/net/imap/test_response_parser.rb b/test/net/imap/test_response_parser.rb index f6a4b756..ee54a24d 100644 --- a/test/net/imap/test_response_parser.rb +++ b/test/net/imap/test_response_parser.rb @@ -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.