source: trunk/server/www/vendors/simpletest/test/xml_test.php @ 6

Last change on this file since 6 was 6, checked in by sander, 12 years ago

Added SimpleTest? test framework

File size: 7.3 KB
Line 
1<?php
2// $Id: xml_test.php 1509 2007-05-08 22:11:49Z lastcraft $
3require_once(dirname(__FILE__) . '/../autorun.php');
4require_once(dirname(__FILE__) . '/../xml.php');
5Mock::generate('SimpleScorer');
6
7if (! function_exists('xml_parser_create')) {
8    SimpleTest::ignore('TestOfXmlStructureParsing');
9    SimpleTest::ignore('TestOfXmlResultsParsing');
10}
11
12class TestOfNestingTags extends UnitTestCase {
13    function testGroupSize() {
14        $nesting = new NestingGroupTag(array('SIZE' => 2));
15        $this->assertEqual($nesting->getSize(), 2);
16    }
17}
18
19class TestOfXmlStructureParsing extends UnitTestCase {
20    function testValidXml() {
21        $listener = &new MockSimpleScorer();
22        $listener->expectNever('paintGroupStart');
23        $listener->expectNever('paintGroupEnd');
24        $listener->expectNever('paintCaseStart');
25        $listener->expectNever('paintCaseEnd');
26        $parser = &new SimpleTestXmlParser($listener);
27        $this->assertTrue($parser->parse("<?xml version=\"1.0\"?>\n"));
28        $this->assertTrue($parser->parse("<run>\n"));
29        $this->assertTrue($parser->parse("</run>\n"));
30    }
31
32    function testEmptyGroup() {
33        $listener = &new MockSimpleScorer();
34        $listener->expectOnce('paintGroupStart', array('a_group', 7));
35        $listener->expectOnce('paintGroupEnd', array('a_group'));
36        $parser = &new SimpleTestXmlParser($listener);
37        $parser->parse("<?xml version=\"1.0\"?>\n");
38        $parser->parse("<run>\n");
39        $this->assertTrue($parser->parse("<group size=\"7\">\n"));
40        $this->assertTrue($parser->parse("<name>a_group</name>\n"));
41        $this->assertTrue($parser->parse("</group>\n"));
42        $parser->parse("</run>\n");
43    }
44
45    function testEmptyCase() {
46        $listener = &new MockSimpleScorer();
47        $listener->expectOnce('paintCaseStart', array('a_case'));
48        $listener->expectOnce('paintCaseEnd', array('a_case'));
49        $parser = &new SimpleTestXmlParser($listener);
50        $parser->parse("<?xml version=\"1.0\"?>\n");
51        $parser->parse("<run>\n");
52        $this->assertTrue($parser->parse("<case>\n"));
53        $this->assertTrue($parser->parse("<name>a_case</name>\n"));
54        $this->assertTrue($parser->parse("</case>\n"));
55        $parser->parse("</run>\n");
56    }
57
58    function testEmptyMethod() {
59        $listener = &new MockSimpleScorer();
60        $listener->expectOnce('paintCaseStart', array('a_case'));
61        $listener->expectOnce('paintCaseEnd', array('a_case'));
62        $listener->expectOnce('paintMethodStart', array('a_method'));
63        $listener->expectOnce('paintMethodEnd', array('a_method'));
64        $parser = &new SimpleTestXmlParser($listener);
65        $parser->parse("<?xml version=\"1.0\"?>\n");
66        $parser->parse("<run>\n");
67        $parser->parse("<case>\n");
68        $parser->parse("<name>a_case</name>\n");
69        $this->assertTrue($parser->parse("<test>\n"));
70        $this->assertTrue($parser->parse("<name>a_method</name>\n"));
71        $this->assertTrue($parser->parse("</test>\n"));
72        $parser->parse("</case>\n");
73        $parser->parse("</run>\n");
74    }
75
76    function testNestedGroup() {
77        $listener = &new MockSimpleScorer();
78        $listener->expectArgumentsAt(0, 'paintGroupStart', array('a_group', 7));
79        $listener->expectArgumentsAt(1, 'paintGroupStart', array('b_group', 3));
80        $listener->expectCallCount('paintGroupStart', 2);
81        $listener->expectArgumentsAt(0, 'paintGroupEnd', array('b_group'));
82        $listener->expectArgumentsAt(1, 'paintGroupEnd', array('a_group'));
83        $listener->expectCallCount('paintGroupEnd', 2);
84
85        $parser = &new SimpleTestXmlParser($listener);
86        $parser->parse("<?xml version=\"1.0\"?>\n");
87        $parser->parse("<run>\n");
88
89        $this->assertTrue($parser->parse("<group size=\"7\">\n"));
90        $this->assertTrue($parser->parse("<name>a_group</name>\n"));
91        $this->assertTrue($parser->parse("<group size=\"3\">\n"));
92        $this->assertTrue($parser->parse("<name>b_group</name>\n"));
93        $this->assertTrue($parser->parse("</group>\n"));
94        $this->assertTrue($parser->parse("</group>\n"));
95        $parser->parse("</run>\n");
96    }
97}
98
99class AnyOldSignal {
100    var $stuff = true;
101}
102
103class TestOfXmlResultsParsing extends UnitTestCase {
104
105    function sendValidStart(&$parser) {
106        $parser->parse("<?xml version=\"1.0\"?>\n");
107        $parser->parse("<run>\n");
108        $parser->parse("<case>\n");
109        $parser->parse("<name>a_case</name>\n");
110        $parser->parse("<test>\n");
111        $parser->parse("<name>a_method</name>\n");
112    }
113
114    function sendValidEnd(&$parser) {
115        $parser->parse("</test>\n");
116        $parser->parse("</case>\n");
117        $parser->parse("</run>\n");
118    }
119
120    function testPass() {
121        $listener = &new MockSimpleScorer();
122        $listener->expectOnce('paintPass', array('a_message'));
123        $parser = &new SimpleTestXmlParser($listener);
124        $this->sendValidStart($parser);
125        $this->assertTrue($parser->parse("<pass>a_message</pass>\n"));
126        $this->sendValidEnd($parser);
127    }
128
129    function testFail() {
130        $listener = &new MockSimpleScorer();
131        $listener->expectOnce('paintFail', array('a_message'));
132        $parser = &new SimpleTestXmlParser($listener);
133        $this->sendValidStart($parser);
134        $this->assertTrue($parser->parse("<fail>a_message</fail>\n"));
135        $this->sendValidEnd($parser);
136    }
137
138    function testException() {
139        $listener = &new MockSimpleScorer();
140        $listener->expectOnce('paintError', array('a_message'));
141        $parser = &new SimpleTestXmlParser($listener);
142        $this->sendValidStart($parser);
143        $this->assertTrue($parser->parse("<exception>a_message</exception>\n"));
144        $this->sendValidEnd($parser);
145    }
146
147    function testSkip() {
148        $listener = &new MockSimpleScorer();
149        $listener->expectOnce('paintSkip', array('a_message'));
150        $parser = &new SimpleTestXmlParser($listener);
151        $this->sendValidStart($parser);
152        $this->assertTrue($parser->parse("<skip>a_message</skip>\n"));
153        $this->sendValidEnd($parser);
154    }
155
156    function testSignal() {
157        $signal = new AnyOldSignal();
158        $signal->stuff = "Hello";
159        $listener = &new MockSimpleScorer();
160        $listener->expectOnce('paintSignal', array('a_signal', $signal));
161        $parser = &new SimpleTestXmlParser($listener);
162        $this->sendValidStart($parser);
163        $this->assertTrue($parser->parse(
164                "<signal type=\"a_signal\"><![CDATA[" .
165                serialize($signal) . "]]></signal>\n"));
166        $this->sendValidEnd($parser);
167    }
168
169    function testMessage() {
170        $listener = &new MockSimpleScorer();
171        $listener->expectOnce('paintMessage', array('a_message'));
172        $parser = &new SimpleTestXmlParser($listener);
173        $this->sendValidStart($parser);
174        $this->assertTrue($parser->parse("<message>a_message</message>\n"));
175        $this->sendValidEnd($parser);
176    }
177
178    function testFormattedMessage() {
179        $listener = &new MockSimpleScorer();
180        $listener->expectOnce('paintFormattedMessage', array("\na\tmessage\n"));
181        $parser = &new SimpleTestXmlParser($listener);
182        $this->sendValidStart($parser);
183        $this->assertTrue($parser->parse("<formatted><![CDATA[\na\tmessage\n]]></formatted>\n"));
184        $this->sendValidEnd($parser);
185    }
186}
187?>
Note: See TracBrowser for help on using the repository browser.