@@ -338,4 +338,41 @@ class WebhookHandlerTest < Minitest::Test
assert_equal "true", uri_addr['delivered']
end
em :test_message_received_group_stanza_has_addresses
+
+ def test_message_received_single_recipient_with_media_stanza
+ payload = {
+ "type" => "message-received",
+ "to" => "+15550000000",
+ "message" => {
+ "id" => "bw-in-media-001",
+ "direction" => "in",
+ "owner" => "+15550000000",
+ "from" => "+15551234567",
+ "to" => ["+15550000000"],
+ "time" => "2025-01-13T10:00:00Z",
+ "text" => "Check this",
+ "media" => ["https://example.com/image.jpg"]
+ }
+ }
+
+ invoke_webhook(payload)
+
+ assert_equal 2, written.length
+
+ oob_msg = written[0]
+ assert_equal "test@example.com", oob_msg.to.to_s
+ assert_equal "+15551234567@component", oob_msg.from.to_s
+ oob_x = oob_msg.find_first("x")
+ refute_nil oob_x
+ assert_equal "jabber:x:oob", oob_x['xmlns']
+ oob_url = oob_x.find_first("url")
+ refute_nil oob_url
+ assert_equal "https://example.com/image.jpg", oob_url.text
+
+ text_msg = written[1]
+ assert_equal "test@example.com", text_msg.to.to_s
+ assert_equal "+15551234567@component", text_msg.from.to_s
+ assert_equal "Check this", text_msg.body
+ end
+ em :test_message_received_single_recipient_with_media_stanza
end