|
|
|
<?php
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @file
|
|
|
|
* Abstraction n' stuff for the test utilities and results.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
|
|
|
* A result from a utility method; $type defines TRUE/FALSE as pass/fail.
|
|
|
|
*/
|
|
|
|
class IslandoraTestUtilityResult {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* The message for this result.
|
|
|
|
*
|
|
|
|
* @var string
|
|
|
|
*/
|
|
|
|
protected $message;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* The caller for this result.
|
|
|
|
*
|
|
|
|
* @var array
|
|
|
|
*/
|
|
|
|
protected $caller;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* The type of result this is - TRUE for pass, FALSE for fail.
|
|
|
|
*
|
|
|
|
* @var bool
|
|
|
|
*/
|
|
|
|
protected $type;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Constructs an IslandoraTestUtilityResult.
|
|
|
|
*
|
|
|
|
* @param bool $type
|
|
|
|
* Whether this result should indicate a pass (TRUE) or fail (FALSE).
|
|
|
|
* @param string $message
|
|
|
|
* The message that will be used by this result.
|
|
|
|
* @param array $caller
|
|
|
|
* The caller for this result.
|
|
|
|
*/
|
|
|
|
public function __construct($type, $message, array $caller) {
|
|
|
|
$this->message = $message;
|
|
|
|
$this->caller = $caller;
|
|
|
|
$this->type = $type;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get the message for this result.
|
|
|
|
*
|
|
|
|
* @return string
|
|
|
|
* The message for this result.
|
|
|
|
*/
|
|
|
|
public function getMessage() {
|
|
|
|
return $this->message;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get the caller for this result.
|
|
|
|
*
|
|
|
|
* @return string
|
|
|
|
* The caller for this result.
|
|
|
|
*/
|
|
|
|
public function getCaller() {
|
|
|
|
return $this->caller;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get the type of result.
|
|
|
|
*
|
|
|
|
* @return bool
|
|
|
|
* The type of pass (TRUE for pass, FALSE for fail).
|
|
|
|
*/
|
|
|
|
public function getType() {
|
|
|
|
return $this->type;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Abstraction for test utility classes.
|
|
|
|
*
|
|
|
|
* This is to be implemented in any class that wants to have test utility
|
|
|
|
* functionality (i.e. that wants to pass back results to tests). Check out the
|
|
|
|
* datastream validator class for a good example of how this is implemented.
|
|
|
|
*
|
|
|
|
* Test utility classes should store per-installation configuration options in
|
|
|
|
* a test_config.ini file, contained in the islandora/tests folder. A function
|
|
|
|
* is included with the abstraction to parse the configuration file.
|
|
|
|
*/
|
|
|
|
abstract class IslandoraTestUtilityClass {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* An array of IslandoraTestUtilityResults.
|
|
|
|
*
|
|
|
|
* These should be generated using $this->addResult.
|
|
|
|
*
|
|
|
|
* @var IslandoraTestUtilityResult[]
|
|
|
|
*/
|
|
|
|
public $results = array();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Parses and returns the settings from the test configuration file.
|
|
|
|
*
|
|
|
|
* If no install specific test_config.ini file is found, it will use the
|
|
|
|
* assumed default configs found in default.test_config.ini.
|
|
|
|
*
|
|
|
|
* @return array
|
|
|
|
* The test configuration.
|
|
|
|
*
|
|
|
|
* @see parse_ini_file()
|
|
|
|
*/
|
|
|
|
public static function getTestConfiguration() {
|
|
|
|
$path = drupal_get_path('module', 'islandora');
|
|
|
|
if (file_exists("$path/tests/test_config.ini")) {
|
|
|
|
return parse_ini_file("$path/tests/test_config.ini");
|
|
|
|
}
|
|
|
|
elseif (file_exists("$path/tests/default.test_config.ini")) {
|
|
|
|
return parse_ini_file("$path/tests/default.test_config.ini");
|
|
|
|
}
|
|
|
|
throw new Exception('Required default.test_config.ini/test_config.ini file not found');
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns an array of IslandoraTestUtilityResults.
|
|
|
|
*
|
|
|
|
* The particular testing implementation you are using should use this to
|
|
|
|
* parse results from utilities and pass them through.
|
|
|
|
*
|
|
|
|
* @return IslandoraTestUtilityResult[]
|
|
|
|
* The results.
|
|
|
|
*/
|
|
|
|
abstract public function getResults();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Adds a result to $this->results.
|
|
|
|
*
|
|
|
|
* @param bool $type
|
|
|
|
* The type of result (TRUE for pass, FALSE for fail).
|
|
|
|
* @param string $message
|
|
|
|
* The message to put in the result.
|
|
|
|
*/
|
|
|
|
abstract public function addResult($type, $message);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Gets the caller of the method that passed a result.
|
|
|
|
*
|
|
|
|
* @return array
|
|
|
|
* Array representing the true caller.
|
|
|
|
*/
|
|
|
|
abstract public function getAssertionCall();
|
|
|
|
|
|
|
|
}
|