From 33545abf2fad633caa5f2020fa47191ccd49b547 Mon Sep 17 00:00:00 2001 From: Tim Otten Date: Tue, 9 Feb 2016 19:26:23 -0800 Subject: [PATCH] CRM-17860 - Civi\Test::e2e() - Add builder for end-to-end testing --- Civi/Test.php | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/Civi/Test.php b/Civi/Test.php index e59c1e58a1..e70f0f4026 100644 --- a/Civi/Test.php +++ b/Civi/Test.php @@ -67,7 +67,7 @@ class Test { } /** - * Get the schema manager. + * Create a builder for the headless environment. * * @return \Civi\Test\CiviEnvBuilder * @@ -78,7 +78,7 @@ class Test { */ public static function headless() { $civiRoot = dirname(__DIR__); - $builder = new \Civi\Test\CiviEnvBuilder('CiviTesterSchema'); + $builder = new \Civi\Test\CiviEnvBuilder('CiviEnvBuilder'); $builder ->callback(function ($ctx) { if (CIVICRM_UF !== 'UnitTests') { @@ -87,7 +87,7 @@ class Test { $dbName = \Civi\Test::dsn('database'); echo "Installing {$dbName} schema\n"; \Civi\Test::schema()->dropAll(); - }, 'msg-drop') + }, 'headless-drop') ->sqlFile($civiRoot . "/sql/civicrm.mysql") ->sql("DELETE FROM civicrm_extension") ->callback(function ($ctx) { @@ -96,6 +96,27 @@ class Test { return $builder; } + /** + * Create a builder for end-to-end testing on the live environment. + * + * @return \Civi\Test\CiviEnvBuilder + * + * @code + * \Civi\Test::e2e()->apply(); + * \Civi\Test::e2e()->install('foo.bar')->apply(); + * @endCode + */ + public static function e2e() { + $builder = new \Civi\Test\CiviEnvBuilder('CiviEnvBuilder'); + $builder + ->callback(function ($ctx) { + if (CIVICRM_UF === 'UnitTests') { + throw new \RuntimeException("\\Civi\\Test::e2e() requires a real CMS. Found CIVICRM_UF=UnitTests."); + } + }, 'e2e-check'); + return $builder; + } + /** * @return \Civi\Test\Schema */ -- 2.25.1