54 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
namespace CiviDrupal {
 | 
						|
 | 
						|
  use Civi\Test\EndToEndInterface;
 | 
						|
 | 
						|
  /**
 | 
						|
   * Class HookTest
 | 
						|
   * @package CiviDrupal
 | 
						|
   * @group e2e
 | 
						|
   */
 | 
						|
  class HookTest extends \PHPUnit_Framework_TestCase implements EndToEndInterface {
 | 
						|
    public function testFoo() {
 | 
						|
      $arg1 = 'hello';
 | 
						|
      $arg2 = array(
 | 
						|
        'foo' => 123,
 | 
						|
      );
 | 
						|
      $this->assertNotEquals($arg2['foo'], 456);
 | 
						|
      $this->assertNotEquals($arg2['hook_was_called'], 1);
 | 
						|
 | 
						|
      \CRM_Utils_Hook::singleton()
 | 
						|
        ->invoke(
 | 
						|
          2,
 | 
						|
          $arg1,
 | 
						|
          $arg2,
 | 
						|
          \CRM_Utils_Hook::$_nullObject,
 | 
						|
          \CRM_Utils_Hook::$_nullObject,
 | 
						|
          \CRM_Utils_Hook::$_nullObject,
 | 
						|
          \CRM_Utils_Hook::$_nullObject,
 | 
						|
          'civicrm_fakeAlterableHook'
 | 
						|
        );
 | 
						|
 | 
						|
      $this->assertEquals($arg2['foo'], 456);
 | 
						|
      $this->assertEquals($arg2['hook_was_called'], 1);
 | 
						|
    }
 | 
						|
 | 
						|
  }
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
namespace {
 | 
						|
 | 
						|
  function civicrm_civicrm_fakeAlterableHook($arg1, &$arg2) {
 | 
						|
    if ($arg1 != 'hello') {
 | 
						|
      throw new \Exception("Failed to receive arg1");
 | 
						|
    }
 | 
						|
    if ($arg2['foo'] != 123) {
 | 
						|
      throw new \Exception("Failed to receive arg2[foo]");
 | 
						|
    }
 | 
						|
    $arg2['foo'] = 456;
 | 
						|
    $arg2['hook_was_called'] = 1;
 | 
						|
  }
 | 
						|
 | 
						|
}
 |