2006-10-01 17:54:15 +04:00
< ? php
2007-01-29 23:10:51 +03:00
ini_set ( 'max_execution_time' , 900 );
2006-10-01 17:54:15 +04:00
2007-09-03 01:51:04 +04:00
function parseOptions ( $array ) {
2007-09-03 02:34:02 +04:00
$currentName = '' ;
2007-09-03 02:29:15 +04:00
$options = array ();
foreach ( $array as $name ) {
2007-09-03 02:34:02 +04:00
if ( strpos ( $name , '-' ) === 0 ) {
$name = str_replace ( '-' , '' , $name );
2007-09-03 02:29:15 +04:00
$currentName = $name ;
if ( ! isset ( $options [ $currentName ])) {
$options [ $currentName ] = array ();
}
} else {
$values = $options [ $currentName ];
array_push ( $values , $name );
$options [ $currentName ] = $values ;
}
2007-09-03 01:51:04 +04:00
}
2007-09-03 02:29:15 +04:00
return $options ;
2007-09-03 01:51:04 +04:00
}
2006-12-28 00:20:26 +03:00
function autoload ( $class ) {
2007-07-06 16:37:02 +04:00
if ( strpos ( $class , 'TestCase' ) === false ) {
2006-12-28 00:20:26 +03:00
return false ;
2007-07-06 16:37:02 +04:00
}
2006-11-28 21:39:31 +03:00
2006-12-28 00:20:26 +03:00
$e = explode ( '_' , $class );
$count = count ( $e );
2006-10-01 17:54:15 +04:00
2007-06-01 14:17:50 +04:00
$prefix = array_shift ( $e );
if ( $prefix !== 'Doctrine' ) {
return false ;
}
2006-11-28 01:49:13 +03:00
2006-12-28 00:20:26 +03:00
$dir = array_shift ( $e );
2006-12-02 17:40:47 +03:00
2006-12-28 00:20:26 +03:00
$file = $dir . '_' . substr ( implode ( '_' , $e ), 0 , - ( strlen ( '_TestCase' ))) . 'TestCase.php' ;
2006-12-02 17:40:47 +03:00
2006-12-28 00:20:26 +03:00
if ( $count > 3 ) {
$file = str_replace ( '_' , DIRECTORY_SEPARATOR , $file );
} else {
$file = str_replace ( '_' , '' , $file );
}
2007-04-18 23:03:36 +04:00
2006-12-28 00:20:26 +03:00
// create a test case file if it doesn't exist
2006-12-02 17:40:47 +03:00
2007-06-01 14:17:50 +04:00
if ( ! file_exists ( $file )) {
2006-12-28 00:20:26 +03:00
$contents = file_get_contents ( 'template.tpl' );
$contents = sprintf ( $contents , $class , $class );
2006-12-02 23:51:26 +03:00
2006-12-28 00:20:26 +03:00
if ( ! file_exists ( $dir )) {
mkdir ( $dir , 0777 );
}
2006-11-28 01:49:13 +03:00
2006-12-28 00:20:26 +03:00
file_put_contents ( $file , $contents );
}
require_once ( $file );
2007-04-18 23:28:21 +04:00
2006-12-28 00:20:26 +03:00
return true ;
}
2006-11-28 01:49:13 +03:00
2007-04-18 23:28:21 +04:00
// include doctrine, and register it's autoloader
2006-12-28 00:20:26 +03:00
require_once dirname ( __FILE__ ) . '/../lib/Doctrine.php' ;
spl_autoload_register ( array ( 'Doctrine' , 'autoload' ));
2007-04-18 23:28:21 +04:00
// register the autoloader function above
2006-12-28 00:20:26 +03:00
spl_autoload_register ( 'autoload' );
2006-11-30 00:09:02 +03:00
2007-09-02 18:24:49 +04:00
// include the models
$models = new DirectoryIterator ( dirname ( __FILE__ ) . '/../models/' );
foreach ( $models as $key => $file ) {
if ( $file -> isFile () && ! $file -> isDot ()) {
require_once $file -> getPathname ();
}
}
//require_once dirname(__FILE__) . '/../models/location.php';
//require_once dirname(__FILE__) . '/../models/Blog.php';
//require_once dirname(__FILE__) . '/classes.php';
2007-06-27 21:41:02 +04:00
2007-06-01 14:17:50 +04:00
require_once dirname ( __FILE__ ) . '/Test.php' ;
2007-04-18 23:28:21 +04:00
require_once dirname ( __FILE__ ) . '/UnitTestCase.php' ;
2007-01-10 01:59:15 +03:00
2007-06-07 21:04:56 +04:00
error_reporting ( E_ALL | E_STRICT );
2006-11-24 02:23:24 +03:00
2006-12-28 00:20:26 +03:00
$test = new GroupTest ( 'Doctrine Framework Unit Tests' );
2006-11-24 02:23:24 +03:00
2007-01-10 02:11:32 +03:00
2007-09-02 20:43:41 +04:00
//TICKET test cases
2007-09-02 21:55:42 +04:00
$tickets = new GroupTest ( 'Tickets tests' );
$tickets -> addTestCase ( new Doctrine_Ticket_Njero_TestCase ());
$test -> addTestCase ( $tickets );
2007-07-14 18:31:34 +04:00
2007-01-01 21:36:37 +03:00
// Connection drivers (not yet fully tested)
2006-12-28 00:20:26 +03:00
$test -> addTestCase ( new Doctrine_Connection_Pgsql_TestCase ());
$test -> addTestCase ( new Doctrine_Connection_Oracle_TestCase ());
$test -> addTestCase ( new Doctrine_Connection_Sqlite_TestCase ());
2007-01-01 21:36:37 +03:00
$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 ());
2007-01-06 01:13:44 +03:00
2007-01-01 21:36:37 +03:00
// 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 ());
2006-12-24 01:45:36 +03:00
2007-01-01 21:36:37 +03:00
// 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 ());
2007-01-08 02:52:15 +03:00
// Sequence module (not yet fully tested)
$test -> addTestCase ( new Doctrine_Sequence_TestCase ());
2007-01-10 02:14:22 +03:00
$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 ());
2007-01-08 02:52:15 +03:00
2007-01-01 21:36:37 +03:00
// Export module (not yet fully tested)
2007-02-17 15:38:02 +03:00
2007-04-11 23:12:52 +04:00
2007-01-23 19:27:20 +03:00
//$test->addTestCase(new Doctrine_Export_Reporter_TestCase());
2006-12-28 00:20:26 +03:00
$test -> addTestCase ( new Doctrine_Export_Firebird_TestCase ());
$test -> addTestCase ( new Doctrine_Export_Informix_TestCase ());
2007-04-11 23:12:52 +04:00
$test -> addTestCase ( new Doctrine_Export_TestCase ());
2006-12-28 00:20:26 +03:00
$test -> addTestCase ( new Doctrine_Export_Mssql_TestCase ());
$test -> addTestCase ( new Doctrine_Export_Pgsql_TestCase ());
$test -> addTestCase ( new Doctrine_Export_Oracle_TestCase ());
2007-06-18 23:58:11 +04:00
$test -> addTestCase ( new Doctrine_Export_Record_TestCase ());
2007-03-22 01:11:18 +03:00
$test -> addTestCase ( new Doctrine_Export_Mysql_TestCase ());
2007-06-27 02:35:08 +04:00
2007-06-18 23:58:11 +04:00
$test -> addTestCase ( new Doctrine_Export_Sqlite_TestCase ());
2007-02-17 15:38:02 +03:00
2007-06-15 00:42:05 +04:00
//$test->addTestCase(new Doctrine_CascadingDelete_TestCase());
2007-04-11 23:12:52 +04:00
2007-01-01 21:36:37 +03:00
// Import module (not yet fully tested)
2006-12-28 00:20:26 +03:00
//$test->addTestCase(new Doctrine_Import_TestCase());
2007-01-27 13:08:06 +03:00
$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 ());
2007-01-25 01:50:49 +03:00
2006-12-28 00:20:26 +03:00
2007-01-01 21:36:37 +03:00
// Expression module (not yet fully tested)
2006-12-28 00:20:26 +03:00
$test -> addTestCase ( new Doctrine_Expression_TestCase ());
2007-07-01 15:27:45 +04:00
$test -> addTestCase ( new Doctrine_Expression_Driver_TestCase ());
2006-12-28 00:20:26 +03:00
$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 ());
2007-06-10 23:40:14 +04:00
2006-12-28 00:20:26 +03:00
// Core
2007-06-26 00:08:16 +04:00
2006-12-28 00:20:26 +03:00
$test -> addTestCase ( new Doctrine_Access_TestCase ());
//$test->addTestCase(new Doctrine_Configurable_TestCase());
2007-02-17 15:38:02 +03:00
2006-12-28 00:20:26 +03:00
$test -> addTestCase ( new Doctrine_Manager_TestCase ());
2007-07-06 03:47:48 +04:00
2006-12-28 00:20:26 +03:00
$test -> addTestCase ( new Doctrine_Connection_TestCase ());
2007-07-06 03:47:48 +04:00
2006-12-28 00:20:26 +03:00
$test -> addTestCase ( new Doctrine_Table_TestCase ());
2006-11-24 02:23:24 +03:00
2007-04-11 23:12:52 +04:00
2006-12-28 00:20:26 +03:00
$test -> addTestCase ( new Doctrine_UnitOfWork_TestCase ());
2006-11-24 02:23:24 +03:00
2007-05-27 22:56:54 +04:00
//$test->addTestCase(new Doctrine_Collection_TestCase());
2006-12-28 00:20:26 +03:00
// Relation handling
2007-02-17 15:38:02 +03:00
$test -> addTestCase ( new Doctrine_TreeStructure_TestCase ());
2006-12-28 00:20:26 +03:00
$test -> addTestCase ( new Doctrine_Relation_TestCase ());
2007-03-22 01:11:18 +03:00
2007-05-27 22:56:54 +04:00
//$test->addTestCase(new Doctrine_Relation_Access_TestCase());
//$test->addTestCase(new Doctrine_Relation_ManyToMany_TestCase());
2007-06-10 23:40:14 +04:00
2007-07-21 20:35:04 +04:00
$test -> addTestCase ( new Doctrine_Relation_ManyToMany2_TestCase ());
2007-06-26 17:08:58 +04:00
$test -> addTestCase ( new Doctrine_Relation_OneToMany_TestCase ());
2007-06-11 23:27:16 +04:00
$test -> addTestCase ( new Doctrine_Relation_Nest_TestCase ());
2007-06-10 23:40:14 +04:00
2007-01-08 02:52:15 +03:00
$test -> addTestCase ( new Doctrine_Relation_OneToOne_TestCase ());
2007-06-10 23:40:14 +04:00
$test -> addTestCase ( new Doctrine_Relation_Parser_TestCase ());
2007-01-08 02:52:15 +03:00
2006-12-28 00:20:26 +03:00
// Datatypes
2007-09-02 20:43:41 +04:00
$test -> addTestCase ( new Doctrine_DataType_Enum_TestCase ());
2007-07-05 21:25:53 +04:00
2007-09-02 20:43:41 +04:00
$test -> addTestCase ( new Doctrine_DataType_Boolean_TestCase ());
2006-12-02 17:40:47 +03:00
2006-12-28 00:20:26 +03:00
// Utility components
2007-03-22 01:11:18 +03:00
2007-05-27 22:56:54 +04:00
//$test->addTestCase(new Doctrine_PessimisticLocking_TestCase());
2007-02-17 15:38:02 +03:00
2007-07-06 00:03:38 +04:00
2006-12-28 00:20:26 +03:00
$test -> addTestCase ( new Doctrine_View_TestCase ());
2007-03-22 01:11:18 +03:00
2007-02-17 15:38:02 +03:00
$test -> addTestCase ( new Doctrine_Validator_TestCase ());
2006-11-16 23:31:39 +03:00
2007-03-22 01:11:18 +03:00
$test -> addTestCase ( new Doctrine_Hook_TestCase ());
2006-11-16 23:31:39 +03:00
2006-12-28 00:20:26 +03:00
// Db component
2006-11-08 02:12:05 +03:00
$test -> addTestCase ( new Doctrine_Db_TestCase ());
2007-06-20 03:33:04 +04:00
$test -> addTestCase ( new Doctrine_Connection_Profiler_TestCase ());
2006-11-08 22:12:16 +03:00
2006-11-05 22:24:28 +03:00
2007-02-17 15:38:02 +03:00
// Eventlisteners
$test -> addTestCase ( new Doctrine_EventListener_TestCase ());
$test -> addTestCase ( new Doctrine_EventListener_Chain_TestCase ());
2006-10-20 22:21:42 +04:00
2007-05-27 22:56:54 +04:00
$test -> addTestCase ( new Doctrine_Record_Filter_TestCase ());
2007-02-17 15:38:02 +03:00
2007-09-02 18:24:49 +04:00
$test -> addTestCase ( new Doctrine_Schema_TestCase ());
2007-05-27 22:56:54 +04:00
2007-02-17 15:38:02 +03:00
$test -> addTestCase ( new Doctrine_Query_Condition_TestCase ());
2006-12-28 00:20:26 +03:00
$test -> addTestCase ( new Doctrine_CustomPrimaryKey_TestCase ());
2006-10-01 17:54:15 +04:00
2007-06-15 01:48:14 +04:00
$test -> addTestCase ( new Doctrine_CustomResultSetOrder_TestCase ());
2007-02-17 15:38:02 +03:00
2007-03-22 01:11:18 +03:00
// Query tests
2007-05-27 22:56:54 +04:00
2006-12-24 01:45:36 +03:00
$test -> addTestCase ( new Doctrine_Query_MultiJoin_TestCase ());
2007-02-17 15:38:02 +03:00
2007-05-28 21:02:18 +04:00
$test -> addTestCase ( new Doctrine_Query_MultiJoin2_TestCase ());
2006-12-24 01:45:36 +03:00
$test -> addTestCase ( new Doctrine_Query_ReferenceModel_TestCase ());
2007-02-17 15:38:02 +03:00
2006-10-03 21:24:13 +04:00
$test -> addTestCase ( new Doctrine_Query_ComponentAlias_TestCase ());
2007-01-29 23:10:51 +03:00
2007-05-27 22:56:54 +04:00
2007-06-15 01:48:14 +04:00
2006-11-11 02:15:34 +03:00
$test -> addTestCase ( new Doctrine_Query_ShortAliases_TestCase ());
2007-05-27 22:56:54 +04:00
2007-01-01 21:36:37 +03:00
$test -> addTestCase ( new Doctrine_Query_Expression_TestCase ());
2007-02-17 15:38:02 +03:00
2007-04-08 18:55:14 +04:00
$test -> addTestCase ( new Doctrine_ColumnAggregationInheritance_TestCase ());
2007-06-01 14:17:50 +04:00
2007-05-27 22:56:54 +04:00
$test -> addTestCase ( new Doctrine_ColumnAlias_TestCase ());
2007-04-18 23:03:36 +04:00
2007-06-05 23:33:09 +04:00
$test -> addTestCase ( new Doctrine_Query_OneToOneFetching_TestCase ());
2007-02-17 15:38:02 +03:00
2007-06-29 14:18:05 +04:00
2007-02-05 15:04:56 +03:00
2007-04-11 23:12:52 +04:00
$test -> addTestCase ( new Doctrine_Query_Check_TestCase ());
2007-06-01 14:17:50 +04:00
2007-05-27 22:56:54 +04:00
$test -> addTestCase ( new Doctrine_Query_Limit_TestCase ());
2007-06-07 21:04:56 +04:00
2007-07-09 15:23:44 +04:00
//$test->addTestCase(new Doctrine_Query_IdentifierQuoting_TestCase());
2007-05-27 22:56:54 +04:00
$test -> addTestCase ( new Doctrine_Query_Update_TestCase ());
$test -> addTestCase ( new Doctrine_Query_Delete_TestCase ());
$test -> addTestCase ( new Doctrine_Query_Join_TestCase ());
2007-06-11 23:27:16 +04:00
$test -> addTestCase ( new Doctrine_Record_TestCase ());
2007-05-27 22:56:54 +04:00
$test -> addTestCase ( new Doctrine_Query_Having_TestCase ());
$test -> addTestCase ( new Doctrine_RawSql_TestCase ());
$test -> addTestCase ( new Doctrine_Query_Orderby_TestCase ());
2007-03-02 00:48:09 +03:00
2007-04-18 23:03:36 +04:00
$test -> addTestCase ( new Doctrine_Query_Subquery_TestCase ());
2007-06-25 23:25:23 +04:00
$test -> addTestCase ( new Doctrine_Query_Driver_TestCase ());
$test -> addTestCase ( new Doctrine_Record_Hook_TestCase ());
2007-05-27 22:56:54 +04:00
$test -> addTestCase ( new Doctrine_Query_AggregateValue_TestCase ());
2007-06-01 14:17:50 +04:00
2007-06-10 23:40:14 +04:00
2007-05-27 22:56:54 +04:00
$test -> addTestCase ( new Doctrine_NewCore_TestCase ());
// Record
$test -> addTestCase ( new Doctrine_Record_State_TestCase ());
2007-08-07 19:37:30 +04:00
$test -> addTestCase ( new Doctrine_Record_SerializeUnserialize_TestCase ());
2007-05-27 22:56:54 +04:00
2007-07-07 01:18:36 +04:00
// This test used to segfault php because of infinite recursion in Connection/UnitOfWork
$test -> addTestCase ( new Doctrine_Record_Lock_TestCase ());
2007-05-29 22:41:54 +04:00
$test -> addTestCase ( new Doctrine_Tokenizer_TestCase ());
2007-06-01 14:17:50 +04:00
2007-05-29 22:41:54 +04:00
$test -> addTestCase ( new Doctrine_Collection_Snapshot_TestCase ());
$test -> addTestCase ( new Doctrine_Hydrate_FetchMode_TestCase ());
2007-05-27 22:56:54 +04:00
2007-06-10 23:40:14 +04:00
$test -> addTestCase ( new Doctrine_Query_Where_TestCase ());
$test -> addTestCase ( new Doctrine_Query_From_TestCase ());
$test -> addTestCase ( new Doctrine_Query_Select_TestCase ());
2007-06-07 21:04:56 +04:00
2007-06-11 23:27:16 +04:00
$test -> addTestCase ( new Doctrine_Query_JoinCondition_TestCase ());
2007-06-13 01:35:18 +04:00
$test -> addTestCase ( new Doctrine_Query_MultipleAggregateValue_TestCase ());
2007-06-19 15:19:53 +04:00
$test -> addTestCase ( new Doctrine_Query_TestCase ());
2007-06-26 00:08:16 +04:00
2007-06-27 20:47:06 +04:00
$test -> addTestCase ( new Doctrine_Query_MysqlSubquery_TestCase ());
2007-06-27 21:41:02 +04:00
$test -> addTestCase ( new Doctrine_Query_PgsqlSubquery_TestCase ());
2007-06-27 22:01:31 +04:00
$test -> addTestCase ( new Doctrine_Query_MysqlSubqueryHaving_TestCase ());
2007-06-28 23:02:55 +04:00
$test -> addTestCase ( new Doctrine_Record_ZeroValues_TestCase ());
2007-06-29 14:18:05 +04:00
$test -> addTestCase ( new Doctrine_Query_Cache_TestCase ());
$test -> addTestCase ( new Doctrine_Cache_Apc_TestCase ());
2007-08-01 00:42:36 +04:00
$test -> addTestCase ( new Doctrine_Query_SelectExpression_TestCase ());
2007-08-17 02:42:35 +04:00
$test -> addTestCase ( new Doctrine_Import_Schema_Yml_TestCase ());
$test -> addTestCase ( new Doctrine_Import_Schema_Xml_TestCase ());
$test -> addTestCase ( new Doctrine_Export_Schema_Yml_TestCase ());
$test -> addTestCase ( new Doctrine_Export_Schema_Xml_TestCase ());
2007-07-12 02:03:47 +04:00
/**
2007-06-29 14:18:05 +04:00
$test -> addTestCase ( new Doctrine_Cache_Memcache_TestCase ());
2007-06-29 23:23:19 +04:00
2007-06-29 14:18:05 +04:00
$test -> addTestCase ( new Doctrine_Cache_Sqlite_TestCase ());
2007-06-29 23:23:19 +04:00
$test -> addTestCase ( new Doctrine_Record_SaveBlankRecord_TestCase ());
2007-06-28 15:56:56 +04:00
$test -> addTestCase ( new Doctrine_Template_TestCase ());
2007-07-06 16:37:02 +04:00
2007-07-11 18:39:15 +04:00
$test -> addTestCase ( new Doctrine_Import_Builder_TestCase ());
$test -> addTestCase ( new Doctrine_Search_TestCase ());
2007-09-03 00:59:39 +04:00
*/
2007-06-18 23:58:11 +04:00
//$test->addTestCase(new Doctrine_IntegrityAction_TestCase());
2007-06-25 23:25:23 +04:00
2007-06-15 01:48:14 +04:00
//$test->addTestCase(new Doctrine_AuditLog_TestCase());
2007-07-21 19:17:17 +04:00
$test -> addTestCase ( new Doctrine_NestedSet_SingleRoot_TestCase ());
2007-07-11 19:55:52 +04:00
2006-12-28 00:20:26 +03:00
// Cache tests
2006-11-16 15:45:34 +03:00
//$test->addTestCase(new Doctrine_Cache_Query_SqliteTestCase());
2006-10-01 17:54:15 +04:00
//$test->addTestCase(new Doctrine_Cache_FileTestCase());
//$test->addTestCase(new Doctrine_Cache_SqliteTestCase());
2007-05-27 22:56:54 +04:00
//$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());
2007-06-19 15:19:53 +04:00
2007-04-08 18:55:14 +04:00
2007-07-23 23:22:31 +04:00
class CliReporter extends HtmlReporter {
public function paintHeader (){
echo " Doctrine UnitTests \n " ;
echo " ==================== \n " ;
}
public function paintFooter (){
2007-07-29 00:28:20 +04:00
echo " \n " ;
2007-09-02 20:19:32 +04:00
foreach ( $this -> _test -> getMessages () as $message ) {
print $message . " \n " ;
}
2007-07-23 23:22:31 +04:00
echo " ==================== \n " ;
print " Tested: " . $this -> _test -> getTestCaseCount () . ' test cases' . " \n " ;
print " Successes: " . $this -> _test -> getPassCount () . " passes. \n " ;
print " Failures: " . $this -> _test -> getFailCount () . " fails. \n " ;
}
}
2006-10-01 17:54:15 +04:00
class MyReporter extends HtmlReporter {
2007-07-23 23:22:31 +04:00
public function paintHeader () {
2007-09-03 00:59:39 +04:00
?>
2007-07-23 23:22:31 +04:00
< html >
< head >
< title > Doctrine Unit Tests </ title >
< style >
. fail { color : red ; } pre { background - color : lightgray ; }
</ style >
</ head >
< body >
< h1 > Doctrine Unit Tests </ h1 >
< ? php
}
2006-10-01 17:54:15 +04:00
public function paintFooter ()
{
2007-07-23 23:22:31 +04:00
2007-09-03 02:34:02 +04:00
print '<pre>' ;
2007-09-02 20:19:32 +04:00
foreach ( $this -> _test -> getMessages () as $message ) {
2007-09-03 02:34:02 +04:00
print $message . '\n' ;
2007-09-02 20:19:32 +04:00
}
2007-09-03 02:34:02 +04:00
print '</pre>' ;
$colour = ( $this -> _test -> getFailCount () > 0 ? 'red' : 'green' );
print '<div style=\'' ;
print 'padding: 8px; margin-top: 1em; background-color: $colour; color: white;' ;
print '\'>' ;
2007-06-01 14:17:50 +04:00
print $this -> _test -> getTestCaseCount () . ' test cases' ;
2007-09-03 02:34:02 +04:00
print ' test cases complete:\n' ;
print '<strong>' . $this -> _test -> getPassCount () . '</strong> passes and ' ;
print '<strong>' . $this -> _test -> getFailCount () . '</strong> fails.' ;
print '</div>' ;
2006-10-01 17:54:15 +04:00
}
}
?>
2007-06-01 14:17:50 +04:00
< ? php
2007-09-03 02:34:02 +04:00
if ( PHP_SAPI === 'cli' ) {
2007-07-23 23:22:31 +04:00
$reporter = new CliReporter ();
2007-09-02 18:24:49 +04:00
} else {
2007-09-03 00:59:39 +04:00
$reporter = new MyReporter ();
2007-07-23 23:22:31 +04:00
}
2007-07-06 16:37:02 +04:00
2007-09-03 02:34:02 +04:00
$argv = $_SERVER [ 'argv' ];
2007-09-02 22:08:13 +04:00
array_shift ( $argv );
2007-09-03 01:51:04 +04:00
$options = parseOptions ( $argv );
2007-09-02 22:08:13 +04:00
2007-09-03 02:34:02 +04:00
if ( isset ( $options [ 'group' ])) {
$testGroup = new GroupTest ( 'Custom' );
foreach ( $options [ 'group' ] as $group ) {
2007-09-03 00:12:45 +04:00
if ( ! isset ( $$group )) {
2007-09-03 00:59:39 +04:00
if ( class_exists ( $group )) {
$testGroup -> addTestCase ( new $group );
}
2007-09-03 00:12:45 +04:00
die ( $group . " is not a valid group of tests \n " );
}
2007-09-02 22:08:13 +04:00
$testGroup -> addTestCase ( $$group );
2007-09-03 00:59:39 +04:00
}
} else {
$testGroup = $test ;
}
2007-09-03 02:34:02 +04:00
$filter = '' ;
if ( isset ( $options [ 'filter' ])) {
$filter = $options [ 'filter' ];
2007-09-03 01:51:04 +04:00
}
2007-09-03 02:34:02 +04:00
if ( isset ( $options [ 'help' ])) {
2007-09-03 01:59:48 +04:00
echo " Doctrine test runner help \n " ;
echo " =========================== \n " ;
echo " To run all tests simply run this script without arguments. \n " ;
echo " \n Flags: \n " ;
echo " -coverage will generate coverage report data that can be viewed with the cc.php script in this folder. NB! This takes time. You need xdebug to run this \n " ;
echo " -group <groupName1> <groupName2> <className1> Use this option to run just a group of tests or tests with a given classname. Groups are currently defined as the variable name they are called in this script. \n " ;
2007-09-03 02:29:15 +04:00
echo " - filter <string1> <string2> case insensitive strings that will be applied to the className of the tests. A test_classname must contain all of these strings to be run \n " ;
2007-09-03 01:59:48 +04:00
echo " \n Available groups: \n tickets \n " ;
die ();
}
2007-09-03 02:34:02 +04:00
if ( isset ( $options [ 'coverage' ])) {
2007-08-11 17:30:14 +04:00
xdebug_start_code_coverage ( XDEBUG_CC_UNUSED | XDEBUG_CC_DEAD_CODE );
2007-09-03 01:51:04 +04:00
$testGroup -> run ( $reporter , $filter );
2007-09-03 02:34:02 +04:00
$result [ 'path' ] = Doctrine :: getPath () . DIRECTORY_SEPARATOR ;
$result [ 'coverage' ] = xdebug_get_code_coverage ();
2007-08-11 17:30:14 +04:00
xdebug_stop_code_coverage ();
2007-09-03 02:34:02 +04:00
file_put_contents ( 'coverage.txt' , serialize ( $result ));
2007-09-02 18:24:49 +04:00
} else {
2007-09-03 01:51:04 +04:00
$testGroup -> run ( $reporter , $filter );
2007-08-11 17:30:14 +04:00
}