Merge pull request #13855 from eileenmcnaughton/activity_date_picker
[civicrm-core.git] / Civi / Test.php
index e59c1e58a1c9c4ac259633842b69a9b3bfd315ce..e70f0f40262f558e912b472ddbc5a1673370fe6c 100644 (file)
@@ -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
    */