Afform - Namespace mock tests for autoloading
authorcolemanw <coleman@civicrm.org>
Thu, 16 Nov 2023 02:23:01 +0000 (21:23 -0500)
committercolemanw <coleman@civicrm.org>
Fri, 17 Nov 2023 00:41:32 +0000 (19:41 -0500)
12 files changed:
ext/afform/mock/phpunit.xml.dist
ext/afform/mock/tests/phpunit/api/v4/Afform/AfformAutocompleteUsageTest.php [moved from ext/afform/mock/tests/phpunit/api/v4/AfformAutocompleteUsageTest.php with 95% similarity]
ext/afform/mock/tests/phpunit/api/v4/Afform/AfformContactUsageTest.php [moved from ext/afform/mock/tests/phpunit/api/v4/AfformContactUsageTest.php with 90% similarity]
ext/afform/mock/tests/phpunit/api/v4/Afform/AfformCustomFieldUsageTest.php [moved from ext/afform/mock/tests/phpunit/api/v4/AfformCustomFieldUsageTest.php with 95% similarity]
ext/afform/mock/tests/phpunit/api/v4/Afform/AfformFileUploadTest.php [moved from ext/afform/mock/tests/phpunit/api/v4/AfformFileUploadTest.php with 97% similarity]
ext/afform/mock/tests/phpunit/api/v4/Afform/AfformPrefillUsageTest.php [moved from ext/afform/mock/tests/phpunit/api/v4/AfformPrefillUsageTest.php with 96% similarity]
ext/afform/mock/tests/phpunit/api/v4/Afform/AfformRelationshipUsageTest.php [moved from ext/afform/mock/tests/phpunit/api/v4/AfformRelationshipUsageTest.php with 96% similarity]
ext/afform/mock/tests/phpunit/api/v4/Afform/AfformRoutingTest.php [moved from ext/afform/mock/tests/phpunit/api/v4/AfformRoutingTest.php with 78% similarity]
ext/afform/mock/tests/phpunit/api/v4/Afform/AfformTest.php [moved from ext/afform/mock/tests/phpunit/api/v4/AfformTest.php with 96% similarity]
ext/afform/mock/tests/phpunit/api/v4/Afform/AfformTestCase.php [moved from ext/afform/mock/tests/phpunit/api/v4/AfformTestCase.php with 66% similarity]
ext/afform/mock/tests/phpunit/api/v4/Afform/AfformUsageTestCase.php [moved from ext/afform/mock/tests/phpunit/api/v4/AfformUsageTestCase.php with 91% similarity]
ext/afform/mock/tests/phpunit/bootstrap.php

index 1f804252c562da890f8670f7810964be2cac9ad0..ea391745fa9f582494ad0d5c02a786788a191636 100644 (file)
@@ -1,30 +1,15 @@
 <?xml version="1.0"?>
-<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd"
-         backupGlobals="false"
-         backupStaticAttributes="false"
-         colors="true"
-         convertErrorsToExceptions="true"
-         convertNoticesToExceptions="true"
-         convertWarningsToExceptions="true"
-         convertDeprecationsToExceptions="true"
-         processIsolation="false"
-         stopOnFailure="false"
-         bootstrap="tests/phpunit/bootstrap.php"
-         cacheResult="false">
-  <coverage>
-    <include>
-      <directory suffix=".php">./</directory>
-    </include>
-  </coverage>
+<phpunit backupGlobals="false" backupStaticAttributes="false" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" convertDeprecationsToExceptions="true" processIsolation="false" stopOnFailure="false" cacheResult="false" bootstrap="tests/phpunit/bootstrap.php">
   <testsuites>
     <testsuite name="My Test Suite">
       <directory>./tests/phpunit</directory>
     </testsuite>
-    <testsuite name="form-tests">
-      <directory suffix=".test.php">./ang</directory>
-    </testsuite>
   </testsuites>
+  <filter>
+    <whitelist>
+      <directory suffix=".php">./</directory>
+    </whitelist>
+  </filter>
   <listeners>
     <listener class="Civi\Test\CiviTestListener">
       <arguments/>
similarity index 95%
rename from ext/afform/mock/tests/phpunit/api/v4/AfformAutocompleteUsageTest.php
rename to ext/afform/mock/tests/phpunit/api/v4/Afform/AfformAutocompleteUsageTest.php
index 54c721ef669107e1db3a809579a56d7a53b36022..a56ae183f559e76fc8d7a96f9890fa85ecd5ac3e 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+namespace api\v4\Afform;
 
 use Civi\Api4\Afform;
 use Civi\Api4\Contact;
@@ -13,7 +14,7 @@ use Civi\Api4\SavedSearch;
  *
  * @group headless
  */
-class api_v4_AfformAutocompleteUsageTest extends api_v4_AfformUsageTestCase {
+class AfformAutocompleteUsageTest extends AfformUsageTestCase {
 
   /**
    * Ensure that Afform restricts autocomplete results when it's set to use a SavedSearch
@@ -33,7 +34,7 @@ EOHTML;
 
     $this->useValues([
       'layout' => $layout,
-      'permission' => CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
+      'permission' => \CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
     ]);
 
     // Saved search for filtering
@@ -95,7 +96,7 @@ EOHTML;
         ->execute();
       $this->fail();
     }
-    catch (CRM_Core_Exception $e) {
+    catch (\CRM_Core_Exception $e) {
       $this->assertEquals('Validation Error', $e->getMessage());
     }
 
@@ -163,7 +164,7 @@ EOHTML;
 
     $this->useValues([
       'layout' => $layout,
-      'permission' => CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
+      'permission' => \CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
     ]);
 
     $result = Contact::autocomplete()
@@ -195,7 +196,7 @@ EOHTML;
         ->execute();
       $this->fail();
     }
-    catch (CRM_Core_Exception $e) {
+    catch (\CRM_Core_Exception $e) {
       $this->assertEquals('Validation Error', $e->getMessage());
     }
 
@@ -257,7 +258,7 @@ EOHTML;
 
     $this->useValues([
       'layout' => $layout,
-      'permission' => CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
+      'permission' => \CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
     ]);
 
     $result = Contact::autocomplete()
@@ -293,7 +294,7 @@ EOHTML;
         ->execute();
       $this->fail();
     }
-    catch (CRM_Core_Exception $e) {
+    catch (\CRM_Core_Exception $e) {
       $this->assertEquals('Validation Error', $e->getMessage());
     }
 
similarity index 90%
rename from ext/afform/mock/tests/phpunit/api/v4/AfformContactUsageTest.php
rename to ext/afform/mock/tests/phpunit/api/v4/Afform/AfformContactUsageTest.php
index 0d83ebdfb8c94419bcf2af00d47c3b018b362119..1528c5852ce7b17e93dbbb067398ae0fc6f37723 100644 (file)
@@ -1,13 +1,16 @@
 <?php
+namespace api\v4\Afform;
 
 use Civi\Api4\Afform;
+use Civi\Api4\AfformSubmission;
+use Civi\Api4\Contact;
 
 /**
  * Test case for Afform.checkAccess, Afform.prefill and Afform.submit.
  *
  * @group headless
  */
-class api_v4_AfformContactUsageTest extends api_v4_AfformUsageTestCase {
+class AfformContactUsageTest extends AfformUsageTestCase {
 
   public static function setUpBeforeClass(): void {
     parent::setUpBeforeClass();
@@ -80,11 +83,11 @@ EOHTML;
   public function testAboutMeAllowed(): void {
     $this->useValues([
       'layout' => self::$layouts['aboutMe'],
-      'permission' => CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
+      'permission' => \CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
     ]);
 
     $cid = $this->createLoggedInUser();
-    CRM_Core_Config::singleton()->userPermissionTemp = new CRM_Core_Permission_Temp();
+    \CRM_Core_Config::singleton()->userPermissionTemp = new \CRM_Core_Permission_Temp();
 
     // Autofill form with current user. See `Civi\Afform\Behavior\ContactAutofill`
     $prefill = Afform::prefill()
@@ -103,7 +106,7 @@ EOHTML;
       ->setValues(['me' => $submission])
       ->execute();
 
-    $contact = Civi\Api4\Contact::get(FALSE)->addWhere('id', '=', $cid)->execute()->first();
+    $contact = Contact::get(FALSE)->addWhere('id', '=', $cid)->execute()->first();
     $this->assertEquals('Firsty', $contact['first_name']);
     $this->assertEquals('Lasty', $contact['last_name']);
   }
@@ -111,7 +114,7 @@ EOHTML;
   public function testChainSelect(): void {
     $this->useValues([
       'layout' => self::$layouts['aboutMe'],
-      'permission' => CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
+      'permission' => \CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
     ]);
 
     // Get states for USA
@@ -120,7 +123,7 @@ EOHTML;
       ->setModelName('me')
       ->setFieldName('state_province_id')
       ->setJoinEntity('Address')
-      ->setValues(['country_id' => CRM_Core_DAO::getFieldValue('CRM_Core_DAO_Country', 'United States', 'id', 'name')])
+      ->setValues(['country_id' => \CRM_Core_DAO::getFieldValue('CRM_Core_DAO_Country', 'United States', 'id', 'name')])
       ->execute();
     $this->assertEquals('Alabama', $result[0]['label']);
 
@@ -130,7 +133,7 @@ EOHTML;
       ->setModelName('me')
       ->setFieldName('state_province_id')
       ->setJoinEntity('Address')
-      ->setValues(['country_id' => CRM_Core_DAO::getFieldValue('CRM_Core_DAO_Country', 'United Kingdom', 'id', 'name')])
+      ->setValues(['country_id' => \CRM_Core_DAO::getFieldValue('CRM_Core_DAO_Country', 'United Kingdom', 'id', 'name')])
       ->execute();
     $this->assertEquals('Aberdeen City', $result[0]['label']);
   }
@@ -138,7 +141,7 @@ EOHTML;
   public function testCheckEntityReferenceFieldsReplacement(): void {
     $this->useValues([
       'layout' => self::$layouts['registerSite'],
-      'permission' => CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
+      'permission' => \CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
       'create_submission' => TRUE,
     ]);
 
@@ -170,7 +173,7 @@ EOHTML;
       ->setValues($values)
       ->execute();
 
-    $submission = Civi\Api4\AfformSubmission::get(FALSE)
+    $submission = AfformSubmission::get(FALSE)
       ->addOrderBy('id', 'DESC')
       ->execute()->first();
 
@@ -204,8 +207,8 @@ EOHTML;
       'permission' => ['access CiviCRM'],
     ]);
     $this->createLoggedInUser();
-    CRM_Core_Config::singleton()->userPermissionTemp = NULL;
-    CRM_Core_Config::singleton()->userPermissionClass->permissions = [
+    \CRM_Core_Config::singleton()->userPermissionTemp = NULL;
+    \CRM_Core_Config::singleton()->userPermissionClass->permissions = [
       'access Contact Dashboard',
     ];
     $check = Afform::checkAccess()
@@ -213,7 +216,7 @@ EOHTML;
       ->setAction('get')
       ->execute()->first();
     $this->assertFalse($check['access']);
-    CRM_Core_Config::singleton()->userPermissionClass->permissions = [
+    \CRM_Core_Config::singleton()->userPermissionClass->permissions = [
       'access CiviCRM',
     ];
     $check = Afform::checkAccess()
@@ -226,11 +229,11 @@ EOHTML;
   public function testAboutMeForbidden(): void {
     $this->useValues([
       'layout' => self::$layouts['aboutMe'],
-      'permission' => CRM_Core_Permission::ALWAYS_DENY_PERMISSION,
+      'permission' => \CRM_Core_Permission::ALWAYS_DENY_PERMISSION,
     ]);
 
     $this->createLoggedInUser();
-    CRM_Core_Config::singleton()->userPermissionTemp = new CRM_Core_Permission_Temp();
+    \CRM_Core_Config::singleton()->userPermissionTemp = new \CRM_Core_Permission_Temp();
 
     try {
       Afform::prefill()
@@ -262,7 +265,7 @@ EOHTML;
   public function testEmployerReference(): void {
     $this->useValues([
       'layout' => self::$layouts['employer'],
-      'permission' => CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
+      'permission' => \CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
     ]);
 
     $firstName = uniqid(__FUNCTION__);
@@ -303,7 +306,7 @@ EOHTML;
   public function testEmptyEmployerReference(): void {
     $this->useValues([
       'layout' => self::$layouts['employer'],
-      'permission' => CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
+      'permission' => \CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
     ]);
 
     $firstName = uniqid(__FUNCTION__);
@@ -342,12 +345,12 @@ EOHTML;
     $this->useValues([
       'layout' => self::$layouts['employer'],
       'create_submission' => TRUE,
-      'permission' => CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
+      'permission' => \CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
     ]);
 
     $individualEmail = uniqid('individual@') . '.test';
     $orgEmail = uniqid('org@') . '.test';
-    $locationType = CRM_Core_BAO_LocationType::getDefault()->id;
+    $locationType = \CRM_Core_BAO_LocationType::getDefault()->id;
     $values = [
       'Individual1' => [
         [
@@ -413,7 +416,7 @@ EOHTML;
 EOHTML;
     $this->useValues([
       'layout' => $layout,
-      'permission' => CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
+      'permission' => \CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
     ]);
 
     $lastName = uniqid(__FUNCTION__);
@@ -423,7 +426,7 @@ EOHTML;
       ->addValue('email_primary.email', '123@example.com')
       ->execute()->single();
 
-    $locationType = CRM_Core_BAO_LocationType::getDefault()->id;
+    $locationType = \CRM_Core_BAO_LocationType::getDefault()->id;
     $values = [
       'Individual1' => [
         [
@@ -455,7 +458,7 @@ EOHTML;
   public function testFormValidationEntityFields(): void {
     $this->useValues([
       'layout' => self::$layouts['updateInfo'],
-      'permission' => CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
+      'permission' => \CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
     ]);
 
     $values = [
@@ -491,7 +494,7 @@ EOHTML;
   public function testFormValidationEntityJoinFields(): void {
     $this->useValues([
       'layout' => self::$layouts['updateInfo'],
-      'permission' => CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
+      'permission' => \CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
     ]);
 
     $values = [
@@ -526,13 +529,13 @@ EOHTML;
   public function testSubmissionLimit() {
     $this->useValues([
       'layout' => self::$layouts['aboutMe'],
-      'permission' => CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
+      'permission' => \CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
       'create_submission' => TRUE,
       'submit_limit' => 3,
     ]);
 
     $cid = $this->createLoggedInUser();
-    CRM_Core_Config::singleton()->userPermissionTemp = new CRM_Core_Permission_Temp();
+    \CRM_Core_Config::singleton()->userPermissionTemp = new \CRM_Core_Permission_Temp();
 
     $submitValues = [
       ['fields' => ['first_name' => 'Firsty', 'last_name' => 'Lasty']],
similarity index 95%
rename from ext/afform/mock/tests/phpunit/api/v4/AfformCustomFieldUsageTest.php
rename to ext/afform/mock/tests/phpunit/api/v4/Afform/AfformCustomFieldUsageTest.php
index f572a35c35aee1817a311495ad991d74421e5232..b33fec68494229dd82e6415f171f383d3ecb3593 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+namespace api\v4\Afform;
 
 use Civi\Api4\Afform;
 use Civi\Api4\Contact;
@@ -10,7 +11,7 @@ use Civi\Api4\CustomGroup;
  *
  * @group headless
  */
-class api_v4_AfformCustomFieldUsageTest extends api_v4_AfformUsageTestCase {
+class AfformCustomFieldUsageTest extends AfformUsageTestCase {
 
   public static function setUpBeforeClass(): void {
     parent::setUpBeforeClass();
@@ -68,7 +69,7 @@ EOHTML;
 
     $this->useValues([
       'layout' => self::$layouts['customMulti'],
-      'permission' => CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
+      'permission' => \CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
     ]);
     $firstName = uniqid(__FUNCTION__);
     $values = [
similarity index 97%
rename from ext/afform/mock/tests/phpunit/api/v4/AfformFileUploadTest.php
rename to ext/afform/mock/tests/phpunit/api/v4/Afform/AfformFileUploadTest.php
index cd5115112270f50a042b5f6c2b1763ba0e056ca6..0f7e665cfa6f93b430c3e0384f3985049b2eb1a0 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+namespace api\v4\Afform;
 
 /**
  * Test case for Afform.prefill and Afform.submit.
@@ -13,7 +14,7 @@ use Civi\Api4\CustomGroup;
 
 require_once __DIR__ . '/AfformTestCase.php';
 require_once __DIR__ . '/AfformUsageTestCase.php';
-class api_v4_AfformFileUploadTest extends api_v4_AfformUsageTestCase {
+class AfformFileUploadTest extends AfformUsageTestCase {
 
   public static function setUpBeforeClass(): void {
     parent::setUpBeforeClass();
@@ -74,7 +75,7 @@ EOHTML;
 
     $this->useValues([
       'layout' => self::$layouts['customFiles'],
-      'permission' => CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
+      'permission' => \CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
     ]);
 
     $lastName = uniqid(__FUNCTION__);
similarity index 96%
rename from ext/afform/mock/tests/phpunit/api/v4/AfformPrefillUsageTest.php
rename to ext/afform/mock/tests/phpunit/api/v4/Afform/AfformPrefillUsageTest.php
index f99602750fed95edb9610e59685d73c33b1e0759..32dd6403274c5665ba0aec802c96d93645dfb8ae 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+namespace api\v4\Afform;
 
 use Civi\Api4\Afform;
 
@@ -7,7 +8,7 @@ use Civi\Api4\Afform;
  *
  * @group headless
  */
-class api_v4_AfformPrefillUsageTest extends api_v4_AfformUsageTestCase {
+class AfformPrefillUsageTest extends AfformUsageTestCase {
   use \Civi\Test\Api4TestTrait;
 
   /**
@@ -35,7 +36,7 @@ EOHTML;
 
     $this->useValues([
       'layout' => $layout,
-      'permission' => CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
+      'permission' => \CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
     ]);
 
     $cid = $this->saveTestRecords('Contact', [
@@ -120,7 +121,7 @@ EOHTML;
 
     $this->useValues([
       'layout' => $layout,
-      'permission' => CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
+      'permission' => \CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
     ]);
 
     $uid = $this->createLoggedInUser();
similarity index 96%
rename from ext/afform/mock/tests/phpunit/api/v4/AfformRelationshipUsageTest.php
rename to ext/afform/mock/tests/phpunit/api/v4/Afform/AfformRelationshipUsageTest.php
index 1d6a07b8fa782fe85832d0c8cab9998b9cae1333..36b6d83fb403943dc731fb5bbaea60ff5fc93dec 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+namespace api\v4\Afform;
 
 use Civi\Api4\Afform;
 use Civi\Api4\Contact;
@@ -10,7 +11,7 @@ use Civi\Api4\RelationshipType;
  *
  * @group headless
  */
-class api_v4_AfformRelationshipUsageTest extends api_v4_AfformUsageTestCase {
+class AfformRelationshipUsageTest extends AfformUsageTestCase {
 
   /**
    * Tests creating a relationship between multiple contacts
@@ -34,7 +35,7 @@ EOHTML;
 
     $this->useValues([
       'layout' => $layout,
-      'permission' => CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
+      'permission' => \CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
     ]);
 
     $lastName = uniqid(__FUNCTION__);
@@ -91,7 +92,7 @@ EOHTML;
 
     $this->useValues([
       'layout' => $layout,
-      'permission' => CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
+      'permission' => \CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
     ]);
 
     $types = [
@@ -162,7 +163,7 @@ EOHTML;
 
     $this->useValues([
       'layout' => $layout,
-      'permission' => CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
+      'permission' => \CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
     ]);
 
     $contact = Contact::save(FALSE)
similarity index 78%
rename from ext/afform/mock/tests/phpunit/api/v4/AfformRoutingTest.php
rename to ext/afform/mock/tests/phpunit/api/v4/Afform/AfformRoutingTest.php
index 01118ef23ed9ae8af9b563b9764f572e678fdcf3..28f49ea12babdbaba1e1b248f4b498a2345002f1 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+namespace api\v4\Afform;
 
 use Civi\Api4\Afform;
 
@@ -6,7 +7,7 @@ use Civi\Api4\Afform;
  * Ensure that the routes created by Afform are working.
  * @group e2e
  */
-class api_v4_AfformRoutingTest extends \PHPUnit\Framework\TestCase implements \Civi\Test\EndToEndInterface {
+class AfformRoutingTest extends \PHPUnit\Framework\TestCase implements \Civi\Test\EndToEndInterface {
 
   protected $formName = 'mockPage';
 
@@ -35,7 +36,7 @@ class api_v4_AfformRoutingTest extends \PHPUnit\Framework\TestCase implements \C
   public function testChangingPermissions(): void {
     $http = new \GuzzleHttp\Client(['http_errors' => FALSE]);
     $url = function ($path, $query = NULL) {
-      return CRM_Utils_System::url($path, $query, TRUE, NULL, FALSE);
+      return \CRM_Utils_System::url($path, $query, TRUE, NULL, FALSE);
     };
 
     $result = $http->get($url('civicrm/mock-page'));
@@ -44,7 +45,7 @@ class api_v4_AfformRoutingTest extends \PHPUnit\Framework\TestCase implements \C
     Afform::update()
       ->setCheckPermissions(FALSE)
       ->addWhere('name', '=', $this->formName)
-      ->addValue('permission', CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION)
+      ->addValue('permission', \CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION)
       ->execute();
 
     $result = $http->get($url('civicrm/mock-page'));
@@ -54,13 +55,13 @@ class api_v4_AfformRoutingTest extends \PHPUnit\Framework\TestCase implements \C
   public function testChangingPath(): void {
     $http = new \GuzzleHttp\Client(['http_errors' => FALSE]);
     $url = function ($path, $query = NULL) {
-      return CRM_Utils_System::url($path, $query, TRUE, NULL, FALSE);
+      return \CRM_Utils_System::url($path, $query, TRUE, NULL, FALSE);
     };
 
     Afform::update()
       ->setCheckPermissions(FALSE)
       ->addWhere('name', '=', $this->formName)
-      ->addValue('permission', CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION)
+      ->addValue('permission', \CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION)
       ->execute();
 
     $this->assertOpensPage($http->get($url('civicrm/mock-page')), 'mock-page');
@@ -77,10 +78,10 @@ class api_v4_AfformRoutingTest extends \PHPUnit\Framework\TestCase implements \C
   }
 
   /**
-   * @param $result
+   * @param \Psr\Http\Message\ResponseInterface $result
    * @param string $directive
    */
-  private function assertNotAuthorized(Psr\Http\Message\ResponseInterface $result, $directive) {
+  private function assertNotAuthorized(\Psr\Http\Message\ResponseInterface $result, string $directive) {
     $contents = $result->getBody()->getContents();
     $this->assertEquals(403, $result->getStatusCode());
     $this->assertMatchesRegularExpression(';You are not authorized to access;', $contents);
@@ -88,11 +89,11 @@ class api_v4_AfformRoutingTest extends \PHPUnit\Framework\TestCase implements \C
   }
 
   /**
-   * @param $result
+   * @param \Psr\Http\Message\ResponseInterface $result
    * @param string $directive
    *   The name of the directive which auto-opens.
    */
-  private function assertOpensPage(Psr\Http\Message\ResponseInterface $result, $directive) {
+  private function assertOpensPage(\Psr\Http\Message\ResponseInterface $result, string $directive) {
     $contents = $result->getBody()->getContents();
     $this->assertEquals(200, $result->getStatusCode());
     $this->assertDoesNotMatchRegularExpression(';You are not authorized to access;', $contents);
similarity index 96%
rename from ext/afform/mock/tests/phpunit/api/v4/AfformTest.php
rename to ext/afform/mock/tests/phpunit/api/v4/Afform/AfformTest.php
index 15172613c5890779932b3161ead3b0cbc739aad8..4d6b9bfba58c16dc5718318fabd1397769f3ca96 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+namespace api\v4\Afform;
 
 use Civi\Api4\Afform;
 use Civi\Api4\Dashboard;
@@ -8,7 +9,7 @@ use Civi\Api4\Dashboard;
  * This is a generic test class implemented with PHPUnit.
  * @group headless
  */
-class api_v4_AfformTest extends api_v4_AfformTestCase {
+class AfformTest extends AfformTestCase {
   use \Civi\Test\Api3TestTrait;
   use \Civi\Test\ContactTestTrait;
 
@@ -131,7 +132,7 @@ class api_v4_AfformTest extends api_v4_AfformTestCase {
   public function getFormatExamples() {
     $ex = [];
     $formats = ['html', 'shallow', 'deep'];
-    foreach (glob(__DIR__ . '/formatExamples/*.php') as $exampleFile) {
+    foreach (glob(__DIR__ . '/../formatExamples/*.php') as $exampleFile) {
       $example = require $exampleFile;
       if (isset($example['deep'])) {
         foreach ($formats as $updateFormat) {
@@ -227,7 +228,7 @@ class api_v4_AfformTest extends api_v4_AfformTestCase {
 
   public function getWhitespaceExamples() {
     $ex = [];
-    foreach (glob(__DIR__ . '/formatExamples/*.php') as $exampleFile) {
+    foreach (glob(__DIR__ . '/../formatExamples/*.php') as $exampleFile) {
       $example = require $exampleFile;
       if (isset($example['pretty'])) {
         $ex[] = ['mockBareFile', $example, $exampleFile];
@@ -278,7 +279,7 @@ class api_v4_AfformTest extends api_v4_AfformTestCase {
 
     // The default mockPage has 1 explicit requirement + 2 automatic requirements.
     Afform::revert()->addWhere('name', '=', $formName)->execute();
-    $angModule = Civi::service('angular')->getModule($formName);
+    $angModule = \Civi::service('angular')->getModule($formName);
     sort($angModule['requires']);
     $storedRequires = Afform::get()->addWhere('name', '=', $formName)->addSelect('requires')->execute();
     $this->assertEquals(['afCore', 'mockBareFile', 'mockBespoke', 'mockFoo'], $angModule['requires']);
@@ -290,7 +291,7 @@ class api_v4_AfformTest extends api_v4_AfformTestCase {
       ->setLayoutFormat('html')
       ->setValues(['layout' => '<div>The bare file says "<mock-bare-file/>"</div>'])
       ->execute();
-    $angModule = Civi::service('angular')->getModule($formName);
+    $angModule = \Civi::service('angular')->getModule($formName);
     sort($angModule['requires']);
     $storedRequires = Afform::get()->addWhere('name', '=', $formName)->addSelect('requires')->execute();
     $this->assertEquals(['afCore', 'mockBareFile', 'mockBespoke'], $angModule['requires']);
@@ -305,13 +306,13 @@ class api_v4_AfformTest extends api_v4_AfformTestCase {
         'requires' => [],
       ])
       ->execute();
-    $angModule = Civi::service('angular')->getModule($formName);
+    $angModule = \Civi::service('angular')->getModule($formName);
     $this->assertEquals(['afCore'], $angModule['requires']);
     $storedRequires = Afform::get()->addWhere('name', '=', $formName)->addSelect('requires')->execute();
     $this->assertEquals([], $storedRequires[0]['requires']);
 
     Afform::revert()->addWhere('name', '=', $formName)->execute();
-    $angModule = Civi::service('angular')->getModule($formName);
+    $angModule = \Civi::service('angular')->getModule($formName);
     sort($angModule['requires']);
     $this->assertEquals(['afCore', 'mockBareFile', 'mockBespoke', 'mockFoo'], $angModule['requires']);
   }
similarity index 66%
rename from ext/afform/mock/tests/phpunit/api/v4/AfformTestCase.php
rename to ext/afform/mock/tests/phpunit/api/v4/Afform/AfformTestCase.php
index 43b174e4152e6ca715534474b80a6ddb32924f39..8951f5e05cd48cdd93c842966babdfb9e57914e9 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+namespace api\v4\Afform;
 
 use Civi\Test\HeadlessInterface;
 use Civi\Test\TransactionalInterface;
@@ -6,7 +7,7 @@ use Civi\Test\TransactionalInterface;
 /**
  * Base class for Afform API tests.
  */
-abstract class api_v4_AfformTestCase extends \PHPUnit\Framework\TestCase implements HeadlessInterface, TransactionalInterface {
+abstract class AfformTestCase extends \PHPUnit\Framework\TestCase implements HeadlessInterface, TransactionalInterface {
 
   /**
    * Civi\Test has many helpers, like install(), uninstall(), sql(), and sqlFile().
@@ -23,8 +24,8 @@ abstract class api_v4_AfformTestCase extends \PHPUnit\Framework\TestCase impleme
    */
   public function setUp(): void {
     parent::setUp();
-    CRM_Core_Config::singleton()->userPermissionTemp = new CRM_Core_Permission_Temp();
-    CRM_Core_Config::singleton()->userPermissionTemp->grant('administer CiviCRM');
+    \CRM_Core_Config::singleton()->userPermissionTemp = new \CRM_Core_Permission_Temp();
+    \CRM_Core_Config::singleton()->userPermissionTemp->grant('administer CiviCRM');
   }
 
 }
similarity index 91%
rename from ext/afform/mock/tests/phpunit/api/v4/AfformUsageTestCase.php
rename to ext/afform/mock/tests/phpunit/api/v4/Afform/AfformUsageTestCase.php
index 2e9b7b30bc7e35de8eb766323b22ceaa92790e8a..7d86d1ea70f0445924ad3f903dc8dc4d772b5112 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+namespace api\v4\Afform;
 
 use Civi\Api4\Afform;
 
@@ -7,7 +8,7 @@ use Civi\Api4\Afform;
  *
  * @group headless
  */
-abstract class api_v4_AfformUsageTestCase extends api_v4_AfformTestCase {
+abstract class AfformUsageTestCase extends AfformTestCase {
   use \Civi\Test\Api3TestTrait;
   use \Civi\Test\ContactTestTrait;
 
index 5fd2c5bf3ffb26c90945b65fa580b7df99456638..eaa8379442aaf86398def1c7ed2dc251c8d2755a 100644 (file)
@@ -1,19 +1,18 @@
 <?php
 
 ini_set('memory_limit', '2G');
+
 // phpcs:disable
 eval(cv('php:boot --level=classloader', 'phpcode'));
 // phpcs:enable
-
 // Allow autoloading of PHPUnit helper classes in this extension.
-foreach ([__DIR__] as $dir) {
-  $loader = new \Composer\Autoload\ClassLoader();
-  $loader->add('CRM_', $dir);
-  $loader->add('Civi\\', $dir);
-  $loader->add('api_', $dir);
-  $loader->add('api\\', $dir);
-  $loader->register();
-}
+$loader = new \Composer\Autoload\ClassLoader();
+$loader->add('CRM_', [__DIR__ . '/../..', __DIR__]);
+$loader->addPsr4('Civi\\', [__DIR__ . '/../../Civi', __DIR__ . '/Civi']);
+$loader->add('api_', [__DIR__ . '/../..', __DIR__]);
+$loader->addPsr4('api\\', [__DIR__ . '/../../api', __DIR__ . '/api']);
+
+$loader->register();
 
 /**
  * Call the "cv" command.
@@ -22,16 +21,17 @@ foreach ([__DIR__] as $dir) {
  *   The rest of the command to send.
  * @param string $decode
  *   Ex: 'json' or 'phpcode'.
- * @return string
+ * @return mixed
  *   Response output (if the command executed normally).
+ *   For 'raw' or 'phpcode', this will be a string. For 'json', it could be any JSON value.
  * @throws \RuntimeException
  *   If the command terminates abnormally.
  */
-function cv($cmd, $decode = 'json') {
+function cv(string $cmd, string $decode = 'json') {
   $cmd = 'cv ' . $cmd;
-  $descriptorSpec = [0 => ["pipe", "r"], 1 => ["pipe", "w"], 2 => STDERR];
+  $descriptorSpec = [0 => ['pipe', 'r'], 1 => ['pipe', 'w'], 2 => STDERR];
   $oldOutput = getenv('CV_OUTPUT');
-  putenv("CV_OUTPUT=json");
+  putenv('CV_OUTPUT=json');
 
   // Execute `cv` in the original folder. This is a work-around for
   // phpunit/codeception, which seem to manipulate PWD.
@@ -51,7 +51,7 @@ function cv($cmd, $decode = 'json') {
 
     case 'phpcode':
       // If the last output is /*PHPCODE*/, then we managed to complete execution.
-      if (substr(trim($result), 0, 12) !== "/*BEGINPHP*/" || substr(trim($result), -10) !== "/*ENDPHP*/") {
+      if (substr(trim($result), 0, 12) !== '/*BEGINPHP*/' || substr(trim($result), -10) !== '/*ENDPHP*/') {
         throw new \RuntimeException("Command failed ($cmd):\n$result");
       }
       return $result;