Skip to content
Merged
Prev Previous commit
Next Next commit
🍒 pick 6546305: ✅ Test current #setquota behavior [backports #636]
Includes fixes for v0.4 compatibility.
  • Loading branch information
nevans committed Apr 23, 2026
commit 95ed89cf4c890cf00da4b80f62a58b3be91f4d9d
48 changes: 48 additions & 0 deletions test/net/imap/test_imap_quota.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# frozen_string_literal: true

require "net/imap"
require "test/unit"
require_relative "fake_server"

class IMAPQuotaTest < Test::Unit::TestCase
include Net::IMAP::FakeServer::TestHelper

def setup
Net::IMAP.config.reset
@do_not_reverse_lookup = Socket.do_not_reverse_lookup
Socket.do_not_reverse_lookup = true
@threads = []
end

def teardown
if !@threads.empty?
assert_join_threads(@threads)
end
ensure
Socket.do_not_reverse_lookup = @do_not_reverse_lookup
end

test "#setquota(quota_root, limit)" do
with_fake_server do |server, imap|
server.on "SETQUOTA", &:done_ok

# integer arg
imap.setquota "INBOX", 512
rcvd_cmd = server.commands.pop
assert_equal "SETQUOTA", rcvd_cmd.name
assert_equal "INBOX (STORAGE 512)", rcvd_cmd.args

# string arg
imap.setquota "INBOX", "512"
rcvd_cmd = server.commands.pop
assert_equal "SETQUOTA", rcvd_cmd.name
assert_equal "INBOX (STORAGE 512)", rcvd_cmd.args

# empty quota root, null limit
imap.setquota "", nil
rcvd_cmd = server.commands.pop
assert_equal "SETQUOTA", rcvd_cmd.name
assert_equal '"" ()', rcvd_cmd.args
end
end
end