run.php 11 KB
Newer Older
1 2
<?php

zYne's avatar
zYne committed
3
ini_set('max_execution_time', 900);
4

zYne's avatar
zYne committed
5 6 7
function autoload($class) {
    if(strpos($class, 'TestCase') === false)
        return false;
8

zYne's avatar
zYne committed
9 10
    $e      = explode('_', $class);
    $count  = count($e);
11

zYne's avatar
zYne committed
12 13 14 15 16
    $prefix = array_shift($e);

    if ($prefix !== 'Doctrine') {
        return false;
    }
17

zYne's avatar
zYne committed
18
    $dir    = array_shift($e);
19

zYne's avatar
zYne committed
20
    $file   = $dir . '_' . substr(implode('_', $e), 0, -(strlen('_TestCase'))) . 'TestCase.php';
21

zYne's avatar
zYne committed
22 23 24 25 26
    if($count > 3) {
        $file   = str_replace('_', DIRECTORY_SEPARATOR, $file);
    } else {
        $file   = str_replace('_', '', $file);
    }
zYne's avatar
zYne committed
27

zYne's avatar
zYne committed
28
    // create a test case file if it doesn't exist
29

zYne's avatar
zYne committed
30
    if ( ! file_exists($file)) {
zYne's avatar
zYne committed
31 32
        $contents = file_get_contents('template.tpl');
        $contents = sprintf($contents, $class, $class);
zYne's avatar
zYne committed
33

zYne's avatar
zYne committed
34 35 36
        if( ! file_exists($dir)) {
            mkdir($dir, 0777);
        }
37

zYne's avatar
zYne committed
38 39 40
        file_put_contents($file, $contents);
    }
    require_once($file);
pookey's avatar
pookey committed
41

zYne's avatar
zYne committed
42 43
    return true;
}
44

pookey's avatar
pookey committed
45
// include doctrine, and register it's autoloader
zYne's avatar
zYne committed
46 47
require_once dirname(__FILE__) . '/../lib/Doctrine.php';
spl_autoload_register(array('Doctrine', 'autoload'));
pookey's avatar
pookey committed
48 49

// register the autoloader function above
zYne's avatar
zYne committed
50
spl_autoload_register('autoload');
51

zYne's avatar
zYne committed
52
require_once dirname(__FILE__) . '/../models/location.php';
pookey's avatar
pookey committed
53
require_once dirname(__FILE__) . '/classes.php';
zYne's avatar
zYne committed
54
/**
zYne's avatar
zYne committed
55 56
require_once dirname(__FILE__) . '/../vendor/simpletest/unit_tester.php';
require_once dirname(__FILE__) . '/../vendor/simpletest/reporter.php';
zYne's avatar
zYne committed
57 58
*/
require_once dirname(__FILE__) . '/Test.php';
pookey's avatar
pookey committed
59
require_once dirname(__FILE__) . '/UnitTestCase.php';
zYne's avatar
zYne committed
60

61
error_reporting(E_ALL | E_STRICT);
zYne's avatar
zYne committed
62

zYne's avatar
zYne committed
63
$test = new GroupTest('Doctrine Framework Unit Tests');
zYne's avatar
zYne committed
64

zYne's avatar
zYne committed
65 66


zYne's avatar
zYne committed
67
// DATABASE ABSTRACTION tests
68
/**   */
69 70

// Temp tests
zYne's avatar
zYne committed
71
/**
zYne's avatar
zYne committed
72

73
$test->addTestCase(new Doctrine_Ticket330_TestCase());
zYne's avatar
zYne committed
74
    */
75
    /**                       */
zYne's avatar
zYne committed
76
// Connection drivers (not yet fully tested)
zYne's avatar
zYne committed
77 78 79
$test->addTestCase(new Doctrine_Connection_Pgsql_TestCase());
$test->addTestCase(new Doctrine_Connection_Oracle_TestCase());
$test->addTestCase(new Doctrine_Connection_Sqlite_TestCase());
zYne's avatar
zYne committed
80 81 82 83
$test->addTestCase(new Doctrine_Connection_Mssql_TestCase()); 
$test->addTestCase(new Doctrine_Connection_Mysql_TestCase());
$test->addTestCase(new Doctrine_Connection_Firebird_TestCase());
$test->addTestCase(new Doctrine_Connection_Informix_TestCase());
zYne's avatar
zYne committed
84

zYne's avatar
zYne committed
85 86 87 88 89 90 91 92 93
// Transaction module (FULLY TESTED)
$test->addTestCase(new Doctrine_Transaction_TestCase());
$test->addTestCase(new Doctrine_Transaction_Firebird_TestCase());
$test->addTestCase(new Doctrine_Transaction_Informix_TestCase());
$test->addTestCase(new Doctrine_Transaction_Mysql_TestCase());
$test->addTestCase(new Doctrine_Transaction_Mssql_TestCase());
$test->addTestCase(new Doctrine_Transaction_Pgsql_TestCase());
$test->addTestCase(new Doctrine_Transaction_Oracle_TestCase());
$test->addTestCase(new Doctrine_Transaction_Sqlite_TestCase());
94

zYne's avatar
zYne committed
95 96 97 98 99 100 101 102 103 104
// DataDict module (FULLY TESTED)
$test->addTestCase(new Doctrine_DataDict_TestCase());
$test->addTestCase(new Doctrine_DataDict_Firebird_TestCase());
$test->addTestCase(new Doctrine_DataDict_Informix_TestCase());
$test->addTestCase(new Doctrine_DataDict_Mysql_TestCase());
$test->addTestCase(new Doctrine_DataDict_Mssql_TestCase());
$test->addTestCase(new Doctrine_DataDict_Pgsql_TestCase());
$test->addTestCase(new Doctrine_DataDict_Oracle_TestCase());
$test->addTestCase(new Doctrine_DataDict_Sqlite_TestCase());

zYne's avatar
zYne committed
105 106
// Sequence module (not yet fully tested)
$test->addTestCase(new Doctrine_Sequence_TestCase());
zYne's avatar
zYne committed
107 108 109 110 111 112 113
$test->addTestCase(new Doctrine_Sequence_Firebird_TestCase());
$test->addTestCase(new Doctrine_Sequence_Informix_TestCase());
$test->addTestCase(new Doctrine_Sequence_Mysql_TestCase());
$test->addTestCase(new Doctrine_Sequence_Mssql_TestCase());
$test->addTestCase(new Doctrine_Sequence_Pgsql_TestCase());
$test->addTestCase(new Doctrine_Sequence_Oracle_TestCase());
$test->addTestCase(new Doctrine_Sequence_Sqlite_TestCase());
zYne's avatar
zYne committed
114

zYne's avatar
zYne committed
115
// Export module (not yet fully tested)
zYne's avatar
zYne committed
116

zYne's avatar
zYne committed
117

zYne's avatar
zYne committed
118
//$test->addTestCase(new Doctrine_Export_Reporter_TestCase());
zYne's avatar
zYne committed
119 120
$test->addTestCase(new Doctrine_Export_Firebird_TestCase());
$test->addTestCase(new Doctrine_Export_Informix_TestCase());
zYne's avatar
zYne committed
121
$test->addTestCase(new Doctrine_Export_TestCase());
zYne's avatar
zYne committed
122 123 124
$test->addTestCase(new Doctrine_Export_Mssql_TestCase());
$test->addTestCase(new Doctrine_Export_Pgsql_TestCase());
$test->addTestCase(new Doctrine_Export_Oracle_TestCase());
zYne's avatar
zYne committed
125
$test->addTestCase(new Doctrine_Export_Record_TestCase());
zYne's avatar
zYne committed
126
$test->addTestCase(new Doctrine_Export_Mysql_TestCase());
zYne's avatar
zYne committed
127
$test->addTestCase(new Doctrine_Export_Sqlite_TestCase());
zYne's avatar
zYne committed
128

zYne's avatar
zYne committed
129
//$test->addTestCase(new Doctrine_CascadingDelete_TestCase());
zYne's avatar
zYne committed
130

zYne's avatar
zYne committed
131
// Import module (not yet fully tested)
zYne's avatar
zYne committed
132
//$test->addTestCase(new Doctrine_Import_TestCase());
133 134 135 136 137 138 139
$test->addTestCase(new Doctrine_Import_Firebird_TestCase());
$test->addTestCase(new Doctrine_Import_Informix_TestCase());
$test->addTestCase(new Doctrine_Import_Mysql_TestCase());
$test->addTestCase(new Doctrine_Import_Mssql_TestCase());
$test->addTestCase(new Doctrine_Import_Pgsql_TestCase());
$test->addTestCase(new Doctrine_Import_Oracle_TestCase());
$test->addTestCase(new Doctrine_Import_Sqlite_TestCase());
zYne's avatar
zYne committed
140

zYne's avatar
zYne committed
141

zYne's avatar
zYne committed
142
// Expression module (not yet fully tested)
zYne's avatar
zYne committed
143 144 145 146 147 148 149 150
$test->addTestCase(new Doctrine_Expression_TestCase());
$test->addTestCase(new Doctrine_Expression_Firebird_TestCase());
$test->addTestCase(new Doctrine_Expression_Informix_TestCase());
$test->addTestCase(new Doctrine_Expression_Mysql_TestCase());
$test->addTestCase(new Doctrine_Expression_Mssql_TestCase());
$test->addTestCase(new Doctrine_Expression_Pgsql_TestCase());
$test->addTestCase(new Doctrine_Expression_Oracle_TestCase());
$test->addTestCase(new Doctrine_Expression_Sqlite_TestCase());
zYne's avatar
zYne committed
151

zYne's avatar
zYne committed
152
// Core
zYne's avatar
zYne committed
153

zYne's avatar
zYne committed
154 155
$test->addTestCase(new Doctrine_Access_TestCase());
//$test->addTestCase(new Doctrine_Configurable_TestCase());
zYne's avatar
zYne committed
156

zYne's avatar
zYne committed
157 158 159
$test->addTestCase(new Doctrine_Manager_TestCase());
$test->addTestCase(new Doctrine_Connection_TestCase());
$test->addTestCase(new Doctrine_Table_TestCase());
zYne's avatar
zYne committed
160

zYne's avatar
zYne committed
161

zYne's avatar
zYne committed
162 163
$test->addTestCase(new Doctrine_UnitOfWork_TestCase());
$test->addTestCase(new Doctrine_Connection_Transaction_TestCase());
zYne's avatar
zYne committed
164

zYne's avatar
zYne committed
165
//$test->addTestCase(new Doctrine_Collection_TestCase());
zYne's avatar
zYne committed
166
// Relation handling
zYne's avatar
zYne committed
167 168

$test->addTestCase(new Doctrine_TreeStructure_TestCase());
zYne's avatar
zYne committed
169
$test->addTestCase(new Doctrine_Relation_TestCase());
zYne's avatar
zYne committed
170

zYne's avatar
zYne committed
171 172
//$test->addTestCase(new Doctrine_Relation_Access_TestCase());
//$test->addTestCase(new Doctrine_Relation_ManyToMany_TestCase());
zYne's avatar
zYne committed
173

174
$test->addTestCase(new Doctrine_Relation_Nest_TestCase());
zYne's avatar
zYne committed
175

zYne's avatar
zYne committed
176
$test->addTestCase(new Doctrine_Relation_OneToOne_TestCase());
zYne's avatar
zYne committed
177 178

$test->addTestCase(new Doctrine_Relation_Parser_TestCase());
zYne's avatar
zYne committed
179

zYne's avatar
zYne committed
180 181
// Datatypes
$test->addTestCase(new Doctrine_Enum_TestCase());
zYne's avatar
zYne committed
182

zYne's avatar
zYne committed
183
$test->addTestCase(new Doctrine_Boolean_TestCase());
184 185


zYne's avatar
zYne committed
186
// Utility components
zYne's avatar
zYne committed
187

zYne's avatar
zYne committed
188 189
//$test->addTestCase(new Doctrine_PessimisticLocking_TestCase());

zYne's avatar
zYne committed
190

zYne's avatar
zYne committed
191
$test->addTestCase(new Doctrine_View_TestCase());
zYne's avatar
zYne committed
192

zYne's avatar
zYne committed
193
$test->addTestCase(new Doctrine_Validator_TestCase());
194

zYne's avatar
zYne committed
195
$test->addTestCase(new Doctrine_Hook_TestCase());
196

zYne's avatar
zYne committed
197
// Db component
zYne's avatar
zYne committed
198
$test->addTestCase(new Doctrine_Db_TestCase());
199
$test->addTestCase(new Doctrine_Connection_Profiler_TestCase());
200

201

zYne's avatar
zYne committed
202 203 204 205
// Eventlisteners
$test->addTestCase(new Doctrine_EventListener_TestCase());
$test->addTestCase(new Doctrine_EventListener_Chain_TestCase());

zYne's avatar
zYne committed
206

zYne's avatar
zYne committed
207 208

$test->addTestCase(new Doctrine_Record_Filter_TestCase());
zYne's avatar
zYne committed
209

zYne's avatar
zYne committed
210
$test->addTestCase(new Doctrine_SchemaTestCase());
zYne's avatar
zYne committed
211

zYne's avatar
zYne committed
212 213
$test->addTestCase(new Doctrine_Query_Condition_TestCase());

zYne's avatar
zYne committed
214
$test->addTestCase(new Doctrine_CustomPrimaryKey_TestCase());
215

zYne's avatar
zYne committed
216
$test->addTestCase(new Doctrine_CustomResultSetOrder_TestCase());
zYne's avatar
zYne committed
217

zYne's avatar
zYne committed
218
// Query tests
zYne's avatar
zYne committed
219

220
$test->addTestCase(new Doctrine_Query_MultiJoin_TestCase());
zYne's avatar
zYne committed
221

romanb's avatar
romanb committed
222 223
$test->addTestCase(new Doctrine_Query_MultiJoin2_TestCase());

224
$test->addTestCase(new Doctrine_Query_ReferenceModel_TestCase());
zYne's avatar
zYne committed
225

226
$test->addTestCase(new Doctrine_Query_ComponentAlias_TestCase());
zYne's avatar
zYne committed
227

zYne's avatar
zYne committed
228

zYne's avatar
zYne committed
229

zYne's avatar
zYne committed
230
$test->addTestCase(new Doctrine_Query_ShortAliases_TestCase());
zYne's avatar
zYne committed
231

zYne's avatar
zYne committed
232
$test->addTestCase(new Doctrine_Query_Expression_TestCase());
zYne's avatar
zYne committed
233

234
$test->addTestCase(new Doctrine_ColumnAggregationInheritance_TestCase());
zYne's avatar
zYne committed
235

zYne's avatar
zYne committed
236
$test->addTestCase(new Doctrine_ColumnAlias_TestCase());
zYne's avatar
zYne committed
237

238
$test->addTestCase(new Doctrine_Query_OneToOneFetching_TestCase());
zYne's avatar
zYne committed
239

zYne's avatar
zYne committed
240 241 242
$test->addTestCase(new Doctrine_Cache_Apc_TestCase());
$test->addTestCase(new Doctrine_Cache_Memcache_TestCase());
$test->addTestCase(new Doctrine_Cache_Sqlite_TestCase());
zYne's avatar
zYne committed
243

zYne's avatar
zYne committed
244
$test->addTestCase(new Doctrine_Query_Check_TestCase());
zYne's avatar
zYne committed
245

zYne's avatar
zYne committed
246 247 248
$test->addTestCase(new Doctrine_Query_Limit_TestCase());


249

zYne's avatar
zYne committed
250 251 252 253 254 255
$test->addTestCase(new Doctrine_Query_IdentifierQuoting_TestCase());
$test->addTestCase(new Doctrine_Query_Update_TestCase());
$test->addTestCase(new Doctrine_Query_Delete_TestCase());

$test->addTestCase(new Doctrine_Query_Join_TestCase());

256 257
$test->addTestCase(new Doctrine_Record_TestCase());

zYne's avatar
zYne committed
258 259 260 261 262 263
$test->addTestCase(new Doctrine_Query_Having_TestCase());


$test->addTestCase(new Doctrine_RawSql_TestCase());

$test->addTestCase(new Doctrine_Query_Orderby_TestCase());
264

zYne's avatar
zYne committed
265 266
$test->addTestCase(new Doctrine_Query_Subquery_TestCase());

zYne's avatar
zYne committed
267 268
$test->addTestCase(new Doctrine_Query_AggregateValue_TestCase());

zYne's avatar
zYne committed
269

zYne's avatar
zYne committed
270 271


zYne's avatar
zYne committed
272 273 274
$test->addTestCase(new Doctrine_NewCore_TestCase());

// Record
275

zYne's avatar
zYne committed
276 277
$test->addTestCase(new Doctrine_Record_State_TestCase());

zYne's avatar
zYne committed
278 279 280
//$test->addTestCase(new Doctrine_Query_Cache_TestCase());

$test->addTestCase(new Doctrine_Tokenizer_TestCase());
zYne's avatar
zYne committed
281

zYne's avatar
zYne committed
282 283 284 285

$test->addTestCase(new Doctrine_Collection_Snapshot_TestCase());

$test->addTestCase(new Doctrine_Hydrate_FetchMode_TestCase());
zYne's avatar
zYne committed
286

zYne's avatar
zYne committed
287 288 289 290 291
$test->addTestCase(new Doctrine_Query_Where_TestCase());

$test->addTestCase(new Doctrine_Query_From_TestCase());

$test->addTestCase(new Doctrine_Query_Select_TestCase());
292

293 294
$test->addTestCase(new Doctrine_Query_JoinCondition_TestCase());

295
$test->addTestCase(new Doctrine_Query_MultipleAggregateValue_TestCase());
zYne's avatar
zYne committed
296 297

$test->addTestCase(new Doctrine_Query_TestCase());
298
               /**
zYne's avatar
zYne committed
299 300
//$test->addTestCase(new Doctrine_IntegrityAction_TestCase());
*/
zYne's avatar
zYne committed
301 302
//$test->addTestCase(new Doctrine_AuditLog_TestCase());

zYne's avatar
zYne committed
303
// Cache tests
304
//$test->addTestCase(new Doctrine_Cache_Query_SqliteTestCase());
305 306
//$test->addTestCase(new Doctrine_Cache_FileTestCase());
//$test->addTestCase(new Doctrine_Cache_SqliteTestCase());
zYne's avatar
zYne committed
307 308 309 310
//$test->addTestCase(new Doctrine_Collection_Offset_TestCase());
//$test->addTestCase(new Doctrine_BatchIterator_TestCase());
//$test->addTestCase(new Doctrine_Hydrate_TestCase());
//$test->addTestCase(new Doctrine_Cache_TestCase());
zYne's avatar
zYne committed
311

312

313 314 315 316
class MyReporter extends HtmlReporter {
    public function paintHeader() {}
    public function paintFooter()
    {
zYne's avatar
zYne committed
317 318 319 320 321 322
    	print "<pre>";
    	foreach ($this->_test->getMessages() as $message) {
    	   print $message . "\n";
    	}
    	print "</pre>";
        $colour = ($this->_test->getFailCount() > 0 ? "red" : "green");
323 324 325
        print "<div style=\"";
        print "padding: 8px; margin-top: 1em; background-color: $colour; color: white;";
        print "\">";
zYne's avatar
zYne committed
326
        print $this->_test->getTestCaseCount() . ' test cases';
327
        print " test cases complete:\n";
zYne's avatar
zYne committed
328 329
        print "<strong>" . $this->_test->getPassCount() . "</strong> passes, ";
        print "<strong>" . $this->_test->getFailCount() . "</strong> fails and ";
330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346
        print "</div>\n";
    }
}


?>
<html>
<head>
  <title>Doctrine Unit Tests</title>
  <style>
.fail { color: red; } pre { background-color: lightgray; }
  </style>
</head>

<body>

<h1>Doctrine Unit Tests</h1>
347

zYne's avatar
zYne committed
348 349
<?php
$test->run(new MyReporter());
350
?>
351 352 353
</body>
</html>