1# frozen_string_literal: true
 2
 3require "test_helper"
 4require "proxied_jid"
 5
 6class ProxiedJIDTest < Minitest::Test
 7	def test_unproxied
 8		jid = ProxiedJID.new(Blather::JID.new("test\\40example.com@example.net"))
 9		assert_equal "test@example.com", jid.unproxied.to_s
10	end
11
12	def test_proxied
13		jid = ProxiedJID.proxy(Blather::JID.new("test@example.com"))
14		assert_equal "test\\40example.com@example.net", jid.to_s
15	end
16
17	def test_escape
18		jid = ProxiedJID.proxy(Blather::JID.new("test \"&'/:<>", "example.com"))
19		assert_equal(
20			"test\\20\\22\\26\\27\\2f\\3a\\3c\\3e\\40example.com@example.net",
21			jid.to_s
22		)
23	end
24
25	def test_backlash_necessary
26		jid = ProxiedJID.proxy(Blather::JID.new("moop\\27@example.com"))
27		assert_equal "moop\\5c27\\40example.com@example.net", jid.to_s
28	end
29
30	def test_backslash_unnecessary
31		jid = ProxiedJID.proxy(Blather::JID.new("moop\\things@example.com"))
32		assert_equal "moop\\things\\40example.com@example.net", jid.to_s
33	end
34end