source: trunk/server/www/vendors/simpletest/test/compatibility_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: 3.2 KB
Line 
1<?php
2// $Id: compatibility_test.php 1505 2007-04-30 23:39:59Z lastcraft $
3require_once(dirname(__FILE__) . '/../autorun.php');
4require_once(dirname(__FILE__) . '/../compatibility.php');
5
6class ComparisonClass {
7}
8
9class ComparisonSubclass extends ComparisonClass {
10}
11
12if (version_compare(phpversion(), '5') >= 0) {
13    eval('interface ComparisonInterface { }');
14    eval('class ComparisonClassWithInterface implements ComparisonInterface { }');
15}
16
17class TestOfCompatibility extends UnitTestCase {
18   
19    function testIsA() {
20        $this->assertTrue(SimpleTestCompatibility::isA(
21                new ComparisonClass(),
22                'ComparisonClass'));
23        $this->assertFalse(SimpleTestCompatibility::isA(
24                new ComparisonClass(),
25                'ComparisonSubclass'));
26        $this->assertTrue(SimpleTestCompatibility::isA(
27                new ComparisonSubclass(),
28                'ComparisonClass'));
29    }
30   
31    function testIdentityOfNumericStrings() {
32        $numericString1 = "123";
33        $numericString2 = "00123";
34        $this->assertNotIdentical($numericString1, $numericString2);
35    }
36   
37    function testIdentityOfObjects() {
38        $object1 = new ComparisonClass();
39        $object2 = new ComparisonClass();
40        $this->assertIdentical($object1, $object2);
41    }
42   
43    function testReferences () {
44        $thing = "Hello";
45        $thing_reference = &$thing;
46        $thing_copy = $thing;
47        $this->assertTrue(SimpleTestCompatibility::isReference(
48                $thing,
49                $thing));
50        $this->assertTrue(SimpleTestCompatibility::isReference(
51                $thing,
52                $thing_reference));
53        $this->assertFalse(SimpleTestCompatibility::isReference(
54                $thing,
55                $thing_copy));
56    }
57   
58    function testObjectReferences () {
59        $object = &new ComparisonClass();
60        $object_reference = &$object;
61        $object_copy = new ComparisonClass();
62        $object_assignment = $object;
63        $this->assertTrue(SimpleTestCompatibility::isReference(
64                $object,
65                $object));
66        $this->assertTrue(SimpleTestCompatibility::isReference(
67                $object,
68                $object_reference));
69        $this->assertFalse(SimpleTestCompatibility::isReference(
70                $object,
71                $object_copy));
72        if (version_compare(phpversion(), '5', '>=')) {
73            $this->assertTrue(SimpleTestCompatibility::isReference(
74                    $object,
75                    $object_assignment));
76        } else {
77            $this->assertFalse(SimpleTestCompatibility::isReference(
78                    $object,
79                    $object_assignment));
80        }
81    }
82   
83    function testInteraceComparison() {
84        if (version_compare(phpversion(), '5', '<')) {
85            return;
86        }
87       
88        $object = new ComparisonClassWithInterface();
89        $this->assertFalse(SimpleTestCompatibility::isA(
90                new ComparisonClass(),
91                'ComparisonInterface'));
92        $this->assertTrue(SimpleTestCompatibility::isA(
93                new ComparisonClassWithInterface(),
94                'ComparisonInterface'));
95    }
96}
97?>
Note: See TracBrowser for help on using the repository browser.