Add MSP media protocol support
This commit is contained in:
@@ -66,6 +66,24 @@ module MeowTelnetTest
|
||||
MeowTest.assert_equal([bytes(Telnet::IAC, Telnet::WONT, 43)], local_unknown.replies)
|
||||
end
|
||||
|
||||
MeowTest.test("Telnet negotiates MSP only when media is enabled") do
|
||||
disabled = Telnet::Parser.new.feed(bytes(Telnet::IAC, Telnet::WILL, Telnet::MSP))
|
||||
enabled = Telnet::Parser.new(:enable_msp => true).feed(bytes(Telnet::IAC, Telnet::WILL, Telnet::MSP))
|
||||
MeowTest.assert_equal([bytes(Telnet::IAC, Telnet::DONT, Telnet::MSP)], disabled.replies)
|
||||
MeowTest.assert_empty(disabled.events)
|
||||
MeowTest.assert_equal([bytes(Telnet::IAC, Telnet::DO, Telnet::MSP)], enabled.replies)
|
||||
MeowTest.assert_equal([[:msp_enabled, true]], enabled.events)
|
||||
end
|
||||
|
||||
MeowTest.test("Telnet emits negotiated MSP subnegotiation payloads") do
|
||||
parser = Telnet::Parser.new(:enable_msp => true)
|
||||
parser.feed(bytes(Telnet::IAC, Telnet::WILL, Telnet::MSP))
|
||||
body = "SOUND(chime.wav U=http://media.example/)".b
|
||||
packet = bytes(Telnet::IAC, Telnet::SB, Telnet::MSP) + body + bytes(Telnet::IAC, Telnet::SE)
|
||||
result = collect(parser, packet.bytes.map { |byte| bytes(byte) })
|
||||
MeowTest.assert_equal([[:msp, body]], result[:events])
|
||||
end
|
||||
|
||||
MeowTest.test("Telnet sends terminal type only after accepting the option") do
|
||||
request = bytes(Telnet::IAC, Telnet::SB, Telnet::TERMINAL_TYPE, Telnet::TTYPE_SEND, Telnet::IAC, Telnet::SE)
|
||||
parser = Telnet::Parser.new
|
||||
|
||||
Reference in New Issue
Block a user