Skip to content

Commit 5e29e9d

Browse files
committed
test: add tests
1 parent f69bcb2 commit 5e29e9d

File tree

2 files changed

+150
-0
lines changed

2 files changed

+150
-0
lines changed

test/test_xml_escape.rb

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
require "stringio"
2+
require 'rexml/document'
3+
require "test/unit"
4+
require "test/unit/ui/junitxml/testrunner"
5+
require_relative "check"
6+
7+
class TestXmlEscape < Test::Unit::TestCase
8+
include Check
9+
10+
setup do
11+
test_case = Class.new(Test::Unit::TestCase) do
12+
test %(<"success>) do
13+
assert_equal(1, 1)
14+
end
15+
16+
def test_failure
17+
assert_equal(1, 1)
18+
assert_equal(1, 2, %(<"'two>))
19+
end
20+
21+
def test_error
22+
assert_equal(1, 1)
23+
assert_equal(1, 1)
24+
assert_equal(1, 1)
25+
raise %(<"'hello>)
26+
end
27+
28+
def test_omission
29+
omit(%(<"'omit>))
30+
end
31+
32+
def test_pending
33+
pend(%(<"'pend>))
34+
end
35+
end
36+
37+
output = StringIO.new
38+
runner = Test::Unit::UI::JUnitXml::TestRunner.new(
39+
test_case.suite, :output => output)
40+
runner.start
41+
42+
output.rewind
43+
@doc = REXML::Document.new(output)
44+
end
45+
46+
test "testsuites" do
47+
testsuites_array = @doc.get_elements("/testsuites")
48+
assert_equal(1, testsuites_array.size)
49+
end
50+
51+
test "testsuite" do
52+
testsuite_array = @doc.get_elements("/testsuites/testsuite")
53+
assert_equal(1, testsuite_array.size)
54+
check_testsuite(testsuite_array.first, "", 5, 1, 1, 2)
55+
end
56+
57+
test "testcase success" do
58+
testcase_array = @doc.get_elements(
59+
%(/testsuites/testsuite/testcase[@name='<"success>']))
60+
assert_equal(1, testcase_array.size)
61+
check_testcase_success(testcase_array.first, "", 1)
62+
end
63+
64+
test "testcase failure" do
65+
testcase_array = @doc.get_elements(
66+
"/testsuites/testsuite/testcase[@name='test_failure()']")
67+
assert_equal(1, testcase_array.size)
68+
check_testcase_failure(testcase_array.first, "", 2, %(<"'two>))
69+
end
70+
71+
test "testcase error" do
72+
testcase_array = @doc.get_elements(
73+
"/testsuites/testsuite/testcase[@name='test_error()']")
74+
assert_equal(1, testcase_array.size)
75+
check_testcase_error(testcase_array.first, "", 3, %(<"'hello>))
76+
end
77+
78+
test "testcase omission" do
79+
testcase_array = @doc.get_elements(
80+
"/testsuites/testsuite/testcase[@name='test_omission()']")
81+
assert_equal(1, testcase_array.size)
82+
check_testcase_skipped(testcase_array.first, "", 0, %(<"'omit>))
83+
end
84+
85+
test "testcase pending" do
86+
testcase_array = @doc.get_elements(
87+
"/testsuites/testsuite/testcase[@name='test_pending()']")
88+
assert_equal(1, testcase_array.size)
89+
check_testcase_skipped(testcase_array.first, "", 0, %(<"'pend>))
90+
end
91+
end

test/test_xml_multi_testcases.rb

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
require "stringio"
2+
require 'rexml/document'
3+
require "test/unit"
4+
require "test/unit/ui/junitxml/testrunner"
5+
require_relative "check"
6+
7+
class TestXmlMultiTestcases < Test::Unit::TestCase
8+
include Check
9+
10+
setup do
11+
test_case1 = Class.new(Test::Unit::TestCase) do
12+
test "success" do
13+
assert_equal(1, 1)
14+
end
15+
end
16+
17+
test_case2 = Class.new(Test::Unit::TestCase) do
18+
test "failure" do
19+
assert_equal(1, 2)
20+
end
21+
end
22+
23+
output = StringIO.new
24+
suite = Test::Unit::TestSuite.new
25+
suite << test_case1.suite << test_case2.suite
26+
runner = Test::Unit::UI::JUnitXml::TestRunner.new(
27+
suite, :output => output)
28+
runner.start
29+
30+
output.rewind
31+
@doc = REXML::Document.new(output)
32+
end
33+
34+
test "testsuites" do
35+
testsuites_array = @doc.get_elements("/testsuites")
36+
assert_equal(1, testsuites_array.size)
37+
end
38+
39+
test "testsuite" do
40+
testsuite_array = @doc.get_elements("/testsuites/testsuite")
41+
assert_equal(2, testsuite_array.size)
42+
check_testsuite(testsuite_array[0], "", 1, 0, 0, 0)
43+
check_testsuite(testsuite_array[1], "", 1, 0, 1, 0)
44+
end
45+
46+
test "testcase success" do
47+
testcase_array = @doc.get_elements(
48+
"/testsuites/testsuite/testcase[@name='success']")
49+
assert_equal(1, testcase_array.size)
50+
check_testcase_success(testcase_array.first, "", 1)
51+
end
52+
53+
test "testcase failure" do
54+
testcase_array = @doc.get_elements(
55+
"/testsuites/testsuite/testcase[@name='failure']")
56+
assert_equal(1, testcase_array.size)
57+
check_testcase_failure(testcase_array.first, "", 1)
58+
end
59+
end

0 commit comments

Comments
 (0)