Skip to content
Snippets Groups Projects
2MyHeadlessTest.php 1.66 KiB
Newer Older
  • Learn to ignore specific revisions
  • <?php
    
    use CRM_Dataprocessor_ExtensionUtil as E;
    use Civi\Test\HeadlessInterface;
    use Civi\Test\HookInterface;
    use Civi\Test\TransactionalInterface;
    
    /**
     * FIXME - Add test description.
     *
     * Tips:
     *  - With HookInterface, you may implement CiviCRM hooks directly in the test class.
     *    Simply create corresponding functions (e.g. "hook_civicrm_post(...)" or similar).
     *  - With TransactionalInterface, any data changes made by setUp() or test****() functions will
     *    rollback automatically -- as long as you don't manipulate schema or truncate tables.
     *    If this test needs to manipulate schema or truncate tables, then either:
     *       a. Do all that using setupHeadless() and Civi\Test.
     *       b. Disable TransactionalInterface, and handle all setup/teardown yourself.
     *
     * @group headless
     */
    class CRM_Myextension_2MyHeadlessTest extends \PHPUnit_Framework_TestCase implements HeadlessInterface, HookInterface, TransactionalInterface {
    
      public function setUpHeadless() {
        // Civi\Test has many helpers, like install(), uninstall(), sql(), and sqlFile().
        // See: https://docs.civicrm.org/dev/en/latest/testing/phpunit/#civitest
        return \Civi\Test::headless()
          ->installMe(__DIR__)
          ->apply();
      }
    
      public function setUp() {
        parent::setUp();
      }
    
      public function tearDown() {
        parent::tearDown();
      }
    
      /**
       * Example: Test that a version is returned.
       */
      public function testWellFormedVersion() {
        $this->assertRegExp('/^([0-9\.]|alpha|beta)*$/', \CRM_Utils_System::version());
      }
    
      /**
       * Example: Test that we're using a fake CMS.
       */
      public function testWellFormedUF() {
        $this->assertEquals('UnitTests', CIVICRM_UF);
      }
    
    }