PageRenderTime 39ms CodeModel.GetById 11ms RepoModel.GetById 0ms app.codeStats 0ms

/lib/simpletest/test/xml_test.php

https://bitbucket.org/jstechnologies/cats
PHP | 178 lines | 157 code | 20 blank | 1 comment | 1 complexity | 6600187c0c325d7888d687dd227ee168 MD5 | raw file
  1. <?php
  2. // $Id: xml_test.php 424 2006-07-21 02:20:17Z will $
  3. require_once(dirname(__FILE__) . '/../xml.php');
  4. Mock::generate('SimpleScorer');
  5. if (! function_exists('xml_parser_create')) {
  6. SimpleTest::ignore('TestOfXmlStructureParsing');
  7. SimpleTest::ignore('TestOfXmlResultsParsing');
  8. }
  9. class TestOfNestingTags extends UnitTestCase {
  10. function testGroupSize() {
  11. $nesting = new NestingGroupTag(array('SIZE' => 2));
  12. $this->assertEqual($nesting->getSize(), 2);
  13. }
  14. }
  15. class TestOfXmlStructureParsing extends UnitTestCase {
  16. function testValidXml() {
  17. $listener = &new MockSimpleScorer();
  18. $listener->expectNever('paintGroupStart');
  19. $listener->expectNever('paintGroupEnd');
  20. $listener->expectNever('paintCaseStart');
  21. $listener->expectNever('paintCaseEnd');
  22. $parser = &new SimpleTestXmlParser($listener);
  23. $this->assertTrue($parser->parse("<?xml version=\"1.0\"?>\n"));
  24. $this->assertTrue($parser->parse("<run>\n"));
  25. $this->assertTrue($parser->parse("</run>\n"));
  26. }
  27. function testEmptyGroup() {
  28. $listener = &new MockSimpleScorer();
  29. $listener->expectOnce('paintGroupStart', array('a_group', 7));
  30. $listener->expectOnce('paintGroupEnd', array('a_group'));
  31. $parser = &new SimpleTestXmlParser($listener);
  32. $parser->parse("<?xml version=\"1.0\"?>\n");
  33. $parser->parse("<run>\n");
  34. $this->assertTrue($parser->parse("<group size=\"7\">\n"));
  35. $this->assertTrue($parser->parse("<name>a_group</name>\n"));
  36. $this->assertTrue($parser->parse("</group>\n"));
  37. $parser->parse("</run>\n");
  38. }
  39. function testEmptyCase() {
  40. $listener = &new MockSimpleScorer();
  41. $listener->expectOnce('paintCaseStart', array('a_case'));
  42. $listener->expectOnce('paintCaseEnd', array('a_case'));
  43. $parser = &new SimpleTestXmlParser($listener);
  44. $parser->parse("<?xml version=\"1.0\"?>\n");
  45. $parser->parse("<run>\n");
  46. $this->assertTrue($parser->parse("<case>\n"));
  47. $this->assertTrue($parser->parse("<name>a_case</name>\n"));
  48. $this->assertTrue($parser->parse("</case>\n"));
  49. $parser->parse("</run>\n");
  50. }
  51. function testEmptyMethod() {
  52. $listener = &new MockSimpleScorer();
  53. $listener->expectOnce('paintCaseStart', array('a_case'));
  54. $listener->expectOnce('paintCaseEnd', array('a_case'));
  55. $listener->expectOnce('paintMethodStart', array('a_method'));
  56. $listener->expectOnce('paintMethodEnd', array('a_method'));
  57. $parser = &new SimpleTestXmlParser($listener);
  58. $parser->parse("<?xml version=\"1.0\"?>\n");
  59. $parser->parse("<run>\n");
  60. $parser->parse("<case>\n");
  61. $parser->parse("<name>a_case</name>\n");
  62. $this->assertTrue($parser->parse("<test>\n"));
  63. $this->assertTrue($parser->parse("<name>a_method</name>\n"));
  64. $this->assertTrue($parser->parse("</test>\n"));
  65. $parser->parse("</case>\n");
  66. $parser->parse("</run>\n");
  67. }
  68. function testNestedGroup() {
  69. $listener = &new MockSimpleScorer();
  70. $listener->expectArgumentsAt(0, 'paintGroupStart', array('a_group', 7));
  71. $listener->expectArgumentsAt(1, 'paintGroupStart', array('b_group', 3));
  72. $listener->expectCallCount('paintGroupStart', 2);
  73. $listener->expectArgumentsAt(0, 'paintGroupEnd', array('b_group'));
  74. $listener->expectArgumentsAt(1, 'paintGroupEnd', array('a_group'));
  75. $listener->expectCallCount('paintGroupEnd', 2);
  76. $parser = &new SimpleTestXmlParser($listener);
  77. $parser->parse("<?xml version=\"1.0\"?>\n");
  78. $parser->parse("<run>\n");
  79. $this->assertTrue($parser->parse("<group size=\"7\">\n"));
  80. $this->assertTrue($parser->parse("<name>a_group</name>\n"));
  81. $this->assertTrue($parser->parse("<group size=\"3\">\n"));
  82. $this->assertTrue($parser->parse("<name>b_group</name>\n"));
  83. $this->assertTrue($parser->parse("</group>\n"));
  84. $this->assertTrue($parser->parse("</group>\n"));
  85. $parser->parse("</run>\n");
  86. }
  87. }
  88. class AnyOldSignal {
  89. var $stuff = true;
  90. }
  91. class TestOfXmlResultsParsing extends UnitTestCase {
  92. function sendValidStart(&$parser) {
  93. $parser->parse("<?xml version=\"1.0\"?>\n");
  94. $parser->parse("<run>\n");
  95. $parser->parse("<case>\n");
  96. $parser->parse("<name>a_case</name>\n");
  97. $parser->parse("<test>\n");
  98. $parser->parse("<name>a_method</name>\n");
  99. }
  100. function sendValidEnd(&$parser) {
  101. $parser->parse("</test>\n");
  102. $parser->parse("</case>\n");
  103. $parser->parse("</run>\n");
  104. }
  105. function testPass() {
  106. $listener = &new MockSimpleScorer();
  107. $listener->expectOnce('paintPass', array('a_message'));
  108. $parser = &new SimpleTestXmlParser($listener);
  109. $this->sendValidStart($parser);
  110. $this->assertTrue($parser->parse("<pass>a_message</pass>\n"));
  111. $this->sendValidEnd($parser);
  112. }
  113. function testFail() {
  114. $listener = &new MockSimpleScorer();
  115. $listener->expectOnce('paintFail', array('a_message'));
  116. $parser = &new SimpleTestXmlParser($listener);
  117. $this->sendValidStart($parser);
  118. $this->assertTrue($parser->parse("<fail>a_message</fail>\n"));
  119. $this->sendValidEnd($parser);
  120. }
  121. function testException() {
  122. $listener = &new MockSimpleScorer();
  123. $listener->expectOnce('paintError', array('a_message'));
  124. $parser = &new SimpleTestXmlParser($listener);
  125. $this->sendValidStart($parser);
  126. $this->assertTrue($parser->parse("<exception>a_message</exception>\n"));
  127. $this->sendValidEnd($parser);
  128. }
  129. function testSignal() {
  130. $signal = new AnyOldSignal();
  131. $signal->stuff = "Hello";
  132. $listener = &new MockSimpleScorer();
  133. $listener->expectOnce('paintSignal', array('a_signal', $signal));
  134. $parser = &new SimpleTestXmlParser($listener);
  135. $this->sendValidStart($parser);
  136. $this->assertTrue($parser->parse(
  137. "<signal type=\"a_signal\"><![CDATA[" .
  138. serialize($signal) . "]]></signal>\n"));
  139. $this->sendValidEnd($parser);
  140. }
  141. function testMessage() {
  142. $listener = &new MockSimpleScorer();
  143. $listener->expectOnce('paintMessage', array('a_message'));
  144. $parser = &new SimpleTestXmlParser($listener);
  145. $this->sendValidStart($parser);
  146. $this->assertTrue($parser->parse("<message>a_message</message>\n"));
  147. $this->sendValidEnd($parser);
  148. }
  149. function testFormattedMessage() {
  150. $listener = &new MockSimpleScorer();
  151. $listener->expectOnce('paintFormattedMessage', array("\na\tmessage\n"));
  152. $parser = &new SimpleTestXmlParser($listener);
  153. $this->sendValidStart($parser);
  154. $this->assertTrue($parser->parse("<formatted><![CDATA[\na\tmessage\n]]></formatted>\n"));
  155. $this->sendValidEnd($parser);
  156. }
  157. }
  158. ?>