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

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

Added SimpleTest? test framework

File size: 6.6 KB
Line 
1<?php
2// $Id: web_tester_test.php 1509 2007-05-08 22:11:49Z lastcraft $
3require_once(dirname(__FILE__) . '/../autorun.php');
4require_once(dirname(__FILE__) . '/../web_tester.php');
5
6class TestOfFieldExpectation extends UnitTestCase {
7   
8    function testStringMatchingIsCaseSensitive() {
9        $expectation = new FieldExpectation('a');
10        $this->assertTrue($expectation->test('a'));
11        $this->assertTrue($expectation->test(array('a')));
12        $this->assertFalse($expectation->test('A'));
13    }
14   
15    function testMatchesInteger() {
16        $expectation = new FieldExpectation('1');
17        $this->assertTrue($expectation->test('1'));
18        $this->assertTrue($expectation->test(1));
19        $this->assertTrue($expectation->test(array('1')));
20        $this->assertTrue($expectation->test(array(1)));
21    }
22   
23    function testNonStringFailsExpectation() {
24        $expectation = new FieldExpectation('a');
25        $this->assertFalse($expectation->test(null));
26    }
27   
28    function testUnsetFieldCanBeTestedFor() {
29        $expectation = new FieldExpectation(false);
30        $this->assertTrue($expectation->test(false));
31    }
32   
33    function testMultipleValuesCanBeInAnyOrder() {
34        $expectation = new FieldExpectation(array('a', 'b'));
35        $this->assertTrue($expectation->test(array('a', 'b')));
36        $this->assertTrue($expectation->test(array('b', 'a')));
37        $this->assertFalse($expectation->test(array('a', 'a')));           
38        $this->assertFalse($expectation->test('a'));           
39    }
40   
41    function testSingleItemCanBeArrayOrString() {
42        $expectation = new FieldExpectation(array('a'));
43        $this->assertTrue($expectation->test(array('a')));
44        $this->assertTrue($expectation->test('a'));
45    }
46}
47
48class TestOfHeaderExpectations extends UnitTestCase {
49   
50    function testExpectingOnlyTheHeaderName() {
51        $expectation = new HttpHeaderExpectation('a');
52        $this->assertIdentical($expectation->test(false), false);
53        $this->assertIdentical($expectation->test('a: A'), true);
54        $this->assertIdentical($expectation->test('A: A'), true);
55        $this->assertIdentical($expectation->test('a: B'), true);
56        $this->assertIdentical($expectation->test(' a : A '), true);
57    }
58   
59    function testHeaderValueAsWell() {
60        $expectation = new HttpHeaderExpectation('a', 'A');
61        $this->assertIdentical($expectation->test(false), false);
62        $this->assertIdentical($expectation->test('a: A'), true);
63        $this->assertIdentical($expectation->test('A: A'), true);
64        $this->assertIdentical($expectation->test('A: a'), false);
65        $this->assertIdentical($expectation->test('a: B'), false);
66        $this->assertIdentical($expectation->test(' a : A '), true);
67        $this->assertIdentical($expectation->test(' a : AB '), false);
68    }
69   
70    function testHeaderValueWithColons() {
71        $expectation = new HttpHeaderExpectation('a', 'A:B:C');
72        $this->assertIdentical($expectation->test('a: A'), false);
73        $this->assertIdentical($expectation->test('a: A:B'), false);
74        $this->assertIdentical($expectation->test('a: A:B:C'), true);
75        $this->assertIdentical($expectation->test('a: A:B:C:D'), false);
76    }
77   
78    function testMultilineSearch() {
79        $expectation = new HttpHeaderExpectation('a', 'A');
80        $this->assertIdentical($expectation->test("aa: A\r\nb: B\r\nc: C"), false);
81        $this->assertIdentical($expectation->test("aa: A\r\na: A\r\nb: B"), true);
82    }
83   
84    function testMultilineSearchWithPadding() {
85        $expectation = new HttpHeaderExpectation('a', ' A ');
86        $this->assertIdentical($expectation->test("aa:A\r\nb:B\r\nc:C"), false);
87        $this->assertIdentical($expectation->test("aa:A\r\na:A\r\nb:B"), true);
88    }
89   
90    function testPatternMatching() {
91        $expectation = new HttpHeaderExpectation('a', new PatternExpectation('/A/'));
92        $this->assertIdentical($expectation->test('a: A'), true);
93        $this->assertIdentical($expectation->test('A: A'), true);
94        $this->assertIdentical($expectation->test('A: a'), false);
95        $this->assertIdentical($expectation->test('a: B'), false);
96        $this->assertIdentical($expectation->test(' a : A '), true);
97        $this->assertIdentical($expectation->test(' a : AB '), true);
98    }
99   
100    function testCaseInsensitivePatternMatching() {
101        $expectation = new HttpHeaderExpectation('a', new PatternExpectation('/A/i'));
102        $this->assertIdentical($expectation->test('a: a'), true);
103        $this->assertIdentical($expectation->test('a: B'), false);
104        $this->assertIdentical($expectation->test(' a : A '), true);
105        $this->assertIdentical($expectation->test(' a : BAB '), true);
106        $this->assertIdentical($expectation->test(' a : bab '), true);
107    }
108   
109    function testUnwantedHeader() {
110        $expectation = new NoHttpHeaderExpectation('a');
111        $this->assertIdentical($expectation->test(''), true);
112        $this->assertIdentical($expectation->test('stuff'), true);
113        $this->assertIdentical($expectation->test('b: B'), true);
114        $this->assertIdentical($expectation->test('a: A'), false);
115        $this->assertIdentical($expectation->test('A: A'), false);
116    }
117   
118    function testMultilineUnwantedSearch() {
119        $expectation = new NoHttpHeaderExpectation('a');
120        $this->assertIdentical($expectation->test("aa:A\r\nb:B\r\nc:C"), true);
121        $this->assertIdentical($expectation->test("aa:A\r\na:A\r\nb:B"), false);
122    }
123   
124    function testLocationHeaderSplitsCorrectly() {
125        $expectation = new HttpHeaderExpectation('Location', 'http://here/');
126        $this->assertIdentical($expectation->test('Location: http://here/'), true);
127    }
128}
129
130class TestOfTextExpectations extends UnitTestCase {
131   
132    function testMatchingSubString() {
133        $expectation = new TextExpectation('wanted');
134        $this->assertIdentical($expectation->test(''), false);
135        $this->assertIdentical($expectation->test('Wanted'), false);
136        $this->assertIdentical($expectation->test('wanted'), true);
137        $this->assertIdentical($expectation->test('the wanted text is here'), true);
138    }
139   
140    function testNotMatchingSubString() {
141        $expectation = new NoTextExpectation('wanted');
142        $this->assertIdentical($expectation->test(''), true);
143        $this->assertIdentical($expectation->test('Wanted'), true);
144        $this->assertIdentical($expectation->test('wanted'), false);
145        $this->assertIdentical($expectation->test('the wanted text is here'), false);
146    }
147}
148
149class TestOfGenericAssertionsInWebTester extends WebTestCase {
150   
151    function testEquality() {
152        $this->assertEqual('a', 'a');
153        $this->assertNotEqual('a', 'A');
154    }
155}
156?>
Note: See TracBrowser for help on using the repository browser.