Skip to content

Commit 63653bf

Browse files
committed
add read_until test case for UTF-16
1 parent 622011f commit 63653bf

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

test/test_document.rb

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -403,6 +403,40 @@ def test_utf_16
403403
assert_equal(expected_xml, actual_xml)
404404
end
405405
end
406+
407+
class Read_until_Test < Test::Unit::TestCase
408+
def test_utf_8
409+
xml = <<-EOX.force_encoding("ASCII-8BIT")
410+
<?xml version="1.0" encoding="UTF-8"?>
411+
<message testing=">">Hello world!</message>
412+
EOX
413+
document = REXML::Document.new(xml)
414+
assert_equal("UTF-8", document.encoding)
415+
assert_equal(">", REXML::XPath.match(document, "/message")[0].attribute("testing").value)
416+
end
417+
418+
def test_utf_16le
419+
xml = <<-EOX.encode("UTF-16LE").force_encoding("ASCII-8BIT")
420+
<?xml version="1.0" encoding="UTF-16"?>
421+
<message testing=">">Hello world!</message>
422+
EOX
423+
bom = "\ufeff".encode("UTF-16LE").force_encoding("ASCII-8BIT")
424+
document = REXML::Document.new(bom + xml)
425+
assert_equal("UTF-16", document.encoding)
426+
assert_equal(">", REXML::XPath.match(document, "/message")[0].attribute("testing").value)
427+
end
428+
429+
def test_utf_16be
430+
xml = <<-EOX.encode("UTF-16BE").force_encoding("ASCII-8BIT")
431+
<?xml version="1.0" encoding="UTF-16"?>
432+
<message testing=">">Hello world!</message>
433+
EOX
434+
bom = "\ufeff".encode("UTF-16BE").force_encoding("ASCII-8BIT")
435+
document = REXML::Document.new(bom + xml)
436+
assert_equal("UTF-16", document.encoding)
437+
assert_equal(">", REXML::XPath.match(document, "/message")[0].attribute("testing").value)
438+
end
439+
end
406440
end
407441
end
408442
end

0 commit comments

Comments
 (0)