diff --git a/README.md b/README.md index 62be52b..703fade 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,8 @@ on "dev/testsession/start": (see [fixture format docs](http://doc.silverstripe.org/framework/en/topics/testing/fixtures)). The path should be relative to the webroot. * `createDatabase`: Create a temporary database. - * `createDatabaseTemplate`: Path to a database dump to load into a newly created temporary database. + * `importDatabasePath`: Absolute path to a database dump to load into a newly created temporary database. + * `importDatabaseFilename`: File name for a database dump to load, relative to `TestSessionController.database_templates_path` * `requireDefaultRecords`: Include default records as defined on the model classes (in PHP) * `database`: Set an alternative database name in the current browser session as a cookie. Does not actually create the database, diff --git a/code/TestSessionController.php b/code/TestSessionController.php index 275a94d..9723ab2 100644 --- a/code/TestSessionController.php +++ b/code/TestSessionController.php @@ -94,9 +94,24 @@ class TestSessionController extends Controller { $this->environment->startTestSession($params, $id); // Optionally import database - if(!empty($params['importDatabasePath'])) { + if(!empty($params['importDatabasePath']) || !empty($params['importDatabaseFilename'])) { + $absPath = ''; + + // by path + if(!empty($params['importDatabasePath'])) { + $absPath = $params['importDatabasePath']; + + // by filename + }else if(!empty($params['importDatabaseFilename'])) { + foreach($this->getDatabaseTemplates() as $tAbsPath => $tFilename){ + if($tFilename === $params['importDatabaseFilename']){ + $absPath = $tAbsPath; + break; + } + } + } $this->environment->importDatabase( - $params['importDatabasePath'], + $absPath, !empty($params['requireDefaultRecords']) ? $params['requireDefaultRecords'] : false ); } else if(!empty($params['requireDefaultRecords']) && $params['requireDefaultRecords']) {