source: trunk/server/www/vendors/simpletest/extensions/testdox/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: 3.5 KB
Line 
1<?php
2// $Id: test.php 1641 2008-01-22 20:13:52Z pp11 $
3require_once dirname(__FILE__) . '/../../autorun.php';
4require_once dirname(__FILE__) . '/../testdox.php';
5
6// uncomment to see test dox in action
7//SimpleTest::prefer(new TestDoxReporter());
8
9class TestOfTestDoxReporter extends UnitTestCase
10{
11    function testIsAnInstanceOfSimpleScorerAndReporter() {
12        $dox = new TestDoxReporter();
13        $this->assertIsA($dox, 'SimpleScorer');
14        $this->assertIsA($dox, 'SimpleReporter');
15    }
16
17    function testOutputsNameOfTestCase() {
18        $dox = new TestDoxReporter();
19        ob_start();
20        $dox->paintCaseStart('TestOfTestDoxReporter');
21        $buffer = ob_get_clean();
22        $this->assertWantedPattern('/^TestDoxReporter/', $buffer);
23    }
24
25    function testOutputOfTestCaseNameFilteredByConstructParameter() {
26        $dox = new TestDoxReporter('/^(.*)Test$/');
27        ob_start();
28        $dox->paintCaseStart('SomeGreatWidgetTest');
29        $buffer = ob_get_clean();
30        $this->assertWantedPattern('/^SomeGreatWidget/', $buffer);
31    }
32
33    function testIfTest_case_patternIsEmptyAssumeEverythingMatches() {
34        $dox = new TestDoxReporter('');
35        ob_start();
36        $dox->paintCaseStart('TestOfTestDoxReporter');
37        $buffer = ob_get_clean();
38        $this->assertWantedPattern('/^TestOfTestDoxReporter/', $buffer);
39    }
40
41    function testEmptyLineInsertedWhenCaseEnds() {
42        $dox = new TestDoxReporter();
43        ob_start();
44        $dox->paintCaseEnd('TestOfTestDoxReporter');
45        $buffer = ob_get_clean();
46        $this->assertEqual("\n", $buffer);
47    }
48
49    function testPaintsTestMethodInTestDoxFormat() {
50        $dox = new TestDoxReporter();
51        ob_start();
52        $dox->paintMethodStart('testSomeGreatTestCase');
53        $buffer = ob_get_clean();
54        $this->assertEqual("- some great test case", $buffer);
55        unset($buffer);
56
57        $random = rand(100, 200);
58        ob_start();
59        $dox->paintMethodStart("testRandomNumberIs{$random}");
60        $buffer = ob_get_clean();
61        $this->assertEqual("- random number is {$random}", $buffer);
62    }
63
64    function testDoesNotOutputAnythingOnNoneTestMethods() {
65        $dox = new TestDoxReporter();
66        ob_start();
67        $dox->paintMethodStart('nonMatchingMethod');
68        $buffer = ob_get_clean();
69        $this->assertEqual('', $buffer);
70    }
71
72    function testPaintMethodAddLineBreak() {
73        $dox = new TestDoxReporter();
74        ob_start();
75        $dox->paintMethodEnd('someMethod');
76        $buffer = ob_get_clean();
77        $this->assertEqual("\n", $buffer);
78        $this->assertNoErrors();
79    }
80
81    function testProperlySpacesSingleLettersInMethodName() {
82        $dox = new TestDoxReporter();
83        ob_start();
84        $dox->paintMethodStart('testAVerySimpleAgainAVerySimpleMethod');
85        $buffer = ob_get_clean();
86        $this->assertEqual('- a very simple again a very simple method', $buffer);
87    }
88
89    function testOnFailureThisPrintsFailureNotice() {
90        $dox = new TestDoxReporter();
91        ob_start();
92        $dox->paintFail();
93        $buffer = ob_get_clean();
94        $this->assertEqual(' [FAILED]', $buffer);
95    }
96
97    function testWhenMatchingMethodNamesTestPrefixIsCaseInsensitive() {
98        $dox = new TestDoxReporter();
99        ob_start();
100        $dox->paintMethodStart('TESTSupportsAllUppercaseTestPrefixEvenThoughIDoNotKnowWhyYouWouldDoThat');
101        $buffer = ob_get_clean();
102        $this->assertEqual(
103            '- supports all uppercase test prefix even though i do not know why you would do that',
104            $buffer
105        );
106    }
107}
108
Note: See TracBrowser for help on using the repository browser.