Created hooks and implemented them as part of the tuque wrapper classes.
hook_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_CMODEL_PID_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_islandora_datastream_alter(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_CMODEL_PID_DSID_islandora_datastream_altezr(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_islandora_object_ingested(FedoraObject $object)
hook_CMODEL_PID_islandora_object_ingested(FedoraObject $object)
hook_islandora_object_modified(FedoraObject $object)
hook_CMODEL_PID_islandora_object_modified(FedoraObject $object)
hook_islandora_object_purged($pid)
hook_CMODEL_PID_islandora_object_purged($pid)
hook_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_DSID_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_purged(FedoraObject $object, $dsid)
hook_CMODEL_PID_islandora_datastream_purged(FedoraObject $object, $dsid)
Also updated the testing scripts to support different configurations, as well
wrote tests for all the implemented hooks. This requires the latest version
of Tuque so be sure to update.
12 years ago
<?php
/**
* @file
* Tests to see if the hooks get called when appropriate.
*
* In the test module 'islandora_hooks_test' there are implementations
* of hooks being tested. These implementations modifies the session, and
* that's how we test if the hook gets called.
*
* To make sense of these tests reference islandora_hooks_test.module.
*/
class IslandoraHooksTestCase extends IslandoraWebTestCase {
/**
* Gets info to display to describe this test.
*
* @see IslandoraWebTestCase::getInfo()
*/
public static function getInfo() {
return array(
'name' => 'Islandora Hooks',
'description' => 'Ensure that the hooks for ingestion/purge/modification are called at the appropriate times.',
'group' => 'Islandora',
);
}
/**
* Creates an admin user and a connection to a fedora repository.
*
* @see IslandoraWebTestCase::setUp()
*/
public function setUp() {
parent::setUp('islandora_hooks_test');
Created hooks and implemented them as part of the tuque wrapper classes.
hook_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_CMODEL_PID_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_islandora_datastream_alter(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_CMODEL_PID_DSID_islandora_datastream_altezr(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_islandora_object_ingested(FedoraObject $object)
hook_CMODEL_PID_islandora_object_ingested(FedoraObject $object)
hook_islandora_object_modified(FedoraObject $object)
hook_CMODEL_PID_islandora_object_modified(FedoraObject $object)
hook_islandora_object_purged($pid)
hook_CMODEL_PID_islandora_object_purged($pid)
hook_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_DSID_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_purged(FedoraObject $object, $dsid)
hook_CMODEL_PID_islandora_datastream_purged(FedoraObject $object, $dsid)
Also updated the testing scripts to support different configurations, as well
wrote tests for all the implemented hooks. This requires the latest version
of Tuque so be sure to update.
12 years ago
$this->repository = $this->admin->repository;
$this->purgeTestObjects();
}
/**
* Free any objects/resources created for this test.
*
* @see IslandoraWebTestCase::tearDown()
*/
public function tearDown() {
$this->purgeTestObjects();
unset($this->repository);
parent::tearDown();
}
/**
* Purge any objects created by the test's in this class.
*/
public function purgeTestObjects() {
$objects = array(
'test:testIngestedObjectHook',
'test:testBlockedIngestedObjectHook',
'test:testModifiedObjectHook',
'test:testPurgedObjectHook',
'test:testIngestedDatastreamHook',
'test:testModifiedDatastreamHook',
'test:testPurgedDatastreamHook',
);
foreach ($objects as $object) {
try {
$object = $this->repository->getObject($object);
$object->label = "Don't Block";
$this->repository->purgeObject($object->id);
}
catch (Exception $e) {
Created hooks and implemented them as part of the tuque wrapper classes.
hook_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_CMODEL_PID_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_islandora_datastream_alter(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_CMODEL_PID_DSID_islandora_datastream_altezr(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_islandora_object_ingested(FedoraObject $object)
hook_CMODEL_PID_islandora_object_ingested(FedoraObject $object)
hook_islandora_object_modified(FedoraObject $object)
hook_CMODEL_PID_islandora_object_modified(FedoraObject $object)
hook_islandora_object_purged($pid)
hook_CMODEL_PID_islandora_object_purged($pid)
hook_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_DSID_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_purged(FedoraObject $object, $dsid)
hook_CMODEL_PID_islandora_datastream_purged(FedoraObject $object, $dsid)
Also updated the testing scripts to support different configurations, as well
wrote tests for all the implemented hooks. This requires the latest version
of Tuque so be sure to update.
12 years ago
// Meh... Either it didn't exist or the purge failed.
}
}
}
/**
* Test ALL THE HOOKS!.
*
* Covers the majority of cases...
Created hooks and implemented them as part of the tuque wrapper classes.
hook_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_CMODEL_PID_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_islandora_datastream_alter(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_CMODEL_PID_DSID_islandora_datastream_altezr(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_islandora_object_ingested(FedoraObject $object)
hook_CMODEL_PID_islandora_object_ingested(FedoraObject $object)
hook_islandora_object_modified(FedoraObject $object)
hook_CMODEL_PID_islandora_object_modified(FedoraObject $object)
hook_islandora_object_purged($pid)
hook_CMODEL_PID_islandora_object_purged($pid)
hook_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_DSID_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_purged(FedoraObject $object, $dsid)
hook_CMODEL_PID_islandora_datastream_purged(FedoraObject $object, $dsid)
Also updated the testing scripts to support different configurations, as well
wrote tests for all the implemented hooks. This requires the latest version
of Tuque so be sure to update.
12 years ago
*/
public function testHooks() {
// Test ingesting with FedoraRepository::ingestObject().
$object = $this->repository->constructObject('test:testIngestedObjectHook');
$_SESSION['islandora_hooks']['hook'][ISLANDORA_OBJECT_INGESTED_HOOK] = FALSE;
$_SESSION['islandora_hooks']['alter'][ISLANDORA_OBJECT_INGESTED_HOOK] = FALSE;
$this->repository->ingestObject($object);
$this->assert($_SESSION['islandora_hooks']['alter'][ISLANDORA_OBJECT_INGESTED_HOOK], 'Called "hook_islandora_object_alter" when ingesting via FedoraRepository::ingestObject.');
$this->assert($_SESSION['islandora_hooks']['hook'][ISLANDORA_OBJECT_INGESTED_HOOK], 'Called ISLANDORA_OBJECT_INGESTED_HOOK when ingesting via FedoraRepository::ingestObject.');
$this->repository->purgeObject($object->id);
Created hooks and implemented them as part of the tuque wrapper classes.
hook_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_CMODEL_PID_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_islandora_datastream_alter(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_CMODEL_PID_DSID_islandora_datastream_altezr(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_islandora_object_ingested(FedoraObject $object)
hook_CMODEL_PID_islandora_object_ingested(FedoraObject $object)
hook_islandora_object_modified(FedoraObject $object)
hook_CMODEL_PID_islandora_object_modified(FedoraObject $object)
hook_islandora_object_purged($pid)
hook_CMODEL_PID_islandora_object_purged($pid)
hook_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_DSID_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_purged(FedoraObject $object, $dsid)
hook_CMODEL_PID_islandora_datastream_purged(FedoraObject $object, $dsid)
Also updated the testing scripts to support different configurations, as well
wrote tests for all the implemented hooks. This requires the latest version
of Tuque so be sure to update.
12 years ago
// Test blocking the ingest.
$object = $this->repository->constructObject('test:testIngestedObjectHook');
$object->label = 'block';
try {
$_SESSION['islandora_hooks']['hook'][ISLANDORA_OBJECT_INGESTED_HOOK] = FALSE;
$_SESSION['islandora_hooks']['alter'][ISLANDORA_OBJECT_INGESTED_HOOK] = FALSE;
$this->repository->ingestObject($object);
$this->fail('Blocked ingest should throw an Exception.');
$this->repository->purgeObject($object->id);
}
catch (Exception $e) {
Created hooks and implemented them as part of the tuque wrapper classes.
hook_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_CMODEL_PID_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_islandora_datastream_alter(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_CMODEL_PID_DSID_islandora_datastream_altezr(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_islandora_object_ingested(FedoraObject $object)
hook_CMODEL_PID_islandora_object_ingested(FedoraObject $object)
hook_islandora_object_modified(FedoraObject $object)
hook_CMODEL_PID_islandora_object_modified(FedoraObject $object)
hook_islandora_object_purged($pid)
hook_CMODEL_PID_islandora_object_purged($pid)
hook_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_DSID_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_purged(FedoraObject $object, $dsid)
hook_CMODEL_PID_islandora_datastream_purged(FedoraObject $object, $dsid)
Also updated the testing scripts to support different configurations, as well
wrote tests for all the implemented hooks. This requires the latest version
of Tuque so be sure to update.
12 years ago
$this->pass('Ingest blocked and exception thrown.');
$this->assert($_SESSION['islandora_hooks']['alter'][ISLANDORA_OBJECT_INGESTED_HOOK], 'Called "hook_islandora_object_alter" when blocking ingesting via FedoraRepository::ingestObject.');
$this->assertFalse($_SESSION['islandora_hooks']['hook'][ISLANDORA_OBJECT_INGESTED_HOOK], 'Did not called ISLANDORA_OBJECT_INGESTED_HOOK when blocking ingesting via FedoraRepository::ingestObject.');
}
Created hooks and implemented them as part of the tuque wrapper classes.
hook_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_CMODEL_PID_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_islandora_datastream_alter(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_CMODEL_PID_DSID_islandora_datastream_altezr(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_islandora_object_ingested(FedoraObject $object)
hook_CMODEL_PID_islandora_object_ingested(FedoraObject $object)
hook_islandora_object_modified(FedoraObject $object)
hook_CMODEL_PID_islandora_object_modified(FedoraObject $object)
hook_islandora_object_purged($pid)
hook_CMODEL_PID_islandora_object_purged($pid)
hook_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_DSID_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_purged(FedoraObject $object, $dsid)
hook_CMODEL_PID_islandora_datastream_purged(FedoraObject $object, $dsid)
Also updated the testing scripts to support different configurations, as well
wrote tests for all the implemented hooks. This requires the latest version
of Tuque so be sure to update.
12 years ago
// Test modifying via set magic functions.
$object = $this->repository->constructObject('test:testModifiedObjectHook');
$this->repository->ingestObject($object);
$_SESSION['islandora_hooks']['hook'][ISLANDORA_OBJECT_MODIFIED_HOOK] = FALSE;
$_SESSION['islandora_hooks']['alter'][ISLANDORA_OBJECT_MODIFIED_HOOK] = FALSE;
$object->label = "New Label!";
$this->assert($_SESSION['islandora_hooks']['alter'][ISLANDORA_OBJECT_MODIFIED_HOOK], 'Called "hook_islandora_object_alter" when modifying via set magic functions.');
$this->assert($_SESSION['islandora_hooks']['hook'][ISLANDORA_OBJECT_MODIFIED_HOOK], 'Called ISLANDORA_OBJECT_MODIFIED_HOOK when modifying via set magic functions.');
Created hooks and implemented them as part of the tuque wrapper classes.
hook_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_CMODEL_PID_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_islandora_datastream_alter(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_CMODEL_PID_DSID_islandora_datastream_altezr(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_islandora_object_ingested(FedoraObject $object)
hook_CMODEL_PID_islandora_object_ingested(FedoraObject $object)
hook_islandora_object_modified(FedoraObject $object)
hook_CMODEL_PID_islandora_object_modified(FedoraObject $object)
hook_islandora_object_purged($pid)
hook_CMODEL_PID_islandora_object_purged($pid)
hook_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_DSID_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_purged(FedoraObject $object, $dsid)
hook_CMODEL_PID_islandora_datastream_purged(FedoraObject $object, $dsid)
Also updated the testing scripts to support different configurations, as well
wrote tests for all the implemented hooks. This requires the latest version
of Tuque so be sure to update.
12 years ago
// Test blocking the modification.
try {
$_SESSION['islandora_hooks']['hook'][ISLANDORA_OBJECT_MODIFIED_HOOK] = FALSE;
$_SESSION['islandora_hooks']['alter'][ISLANDORA_OBJECT_MODIFIED_HOOK] = FALSE;
$object->label = 'block';
$this->fail('Blocked modify should throw an Exception.');
}
catch (Exception $e) {
Created hooks and implemented them as part of the tuque wrapper classes.
hook_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_CMODEL_PID_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_islandora_datastream_alter(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_CMODEL_PID_DSID_islandora_datastream_altezr(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_islandora_object_ingested(FedoraObject $object)
hook_CMODEL_PID_islandora_object_ingested(FedoraObject $object)
hook_islandora_object_modified(FedoraObject $object)
hook_CMODEL_PID_islandora_object_modified(FedoraObject $object)
hook_islandora_object_purged($pid)
hook_CMODEL_PID_islandora_object_purged($pid)
hook_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_DSID_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_purged(FedoraObject $object, $dsid)
hook_CMODEL_PID_islandora_datastream_purged(FedoraObject $object, $dsid)
Also updated the testing scripts to support different configurations, as well
wrote tests for all the implemented hooks. This requires the latest version
of Tuque so be sure to update.
12 years ago
$this->pass('Modify blocked and exception thrown.');
$this->assertNotEqual($object->label, 'block', 'Modification did not stick.');
$this->assert($_SESSION['islandora_hooks']['alter'][ISLANDORA_OBJECT_MODIFIED_HOOK], 'Called "hook_islandora_object_alter" when blocking modifying via set magic functions.');
$this->assertFALSE($_SESSION['islandora_hooks']['hook'][ISLANDORA_OBJECT_MODIFIED_HOOK], 'Called ISLANDORA_OBJECT_MODIFIED_HOOK when blocking modifying via set magic functions.');
}
$this->repository->purgeObject($object->id);
Created hooks and implemented them as part of the tuque wrapper classes.
hook_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_CMODEL_PID_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_islandora_datastream_alter(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_CMODEL_PID_DSID_islandora_datastream_altezr(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_islandora_object_ingested(FedoraObject $object)
hook_CMODEL_PID_islandora_object_ingested(FedoraObject $object)
hook_islandora_object_modified(FedoraObject $object)
hook_CMODEL_PID_islandora_object_modified(FedoraObject $object)
hook_islandora_object_purged($pid)
hook_CMODEL_PID_islandora_object_purged($pid)
hook_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_DSID_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_purged(FedoraObject $object, $dsid)
hook_CMODEL_PID_islandora_datastream_purged(FedoraObject $object, $dsid)
Also updated the testing scripts to support different configurations, as well
wrote tests for all the implemented hooks. This requires the latest version
of Tuque so be sure to update.
12 years ago
// Test purging with FedoraRepository::purgeObject().
$object = $this->repository->constructObject('test:testPurgedObjectHook');
$this->repository->ingestObject($object);
$_SESSION['islandora_hooks']['hook'][ISLANDORA_OBJECT_PURGED_HOOK] = FALSE;
$_SESSION['islandora_hooks']['alter'][ISLANDORA_OBJECT_PURGED_HOOK] = FALSE;
$this->repository->purgeObject($object->id);
$this->assert($_SESSION['islandora_hooks']['alter'][ISLANDORA_OBJECT_PURGED_HOOK], 'Called "hook_islandora_object_alter" when purging via FedoraRepository::purgeObject.');
$this->assert($_SESSION['islandora_hooks']['hook'][ISLANDORA_OBJECT_PURGED_HOOK], 'Called ISLANDORA_OBJECT_PURGED_HOOK when purging via FedoraRepository::purgeObject.');
Created hooks and implemented them as part of the tuque wrapper classes.
hook_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_CMODEL_PID_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_islandora_datastream_alter(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_CMODEL_PID_DSID_islandora_datastream_altezr(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_islandora_object_ingested(FedoraObject $object)
hook_CMODEL_PID_islandora_object_ingested(FedoraObject $object)
hook_islandora_object_modified(FedoraObject $object)
hook_CMODEL_PID_islandora_object_modified(FedoraObject $object)
hook_islandora_object_purged($pid)
hook_CMODEL_PID_islandora_object_purged($pid)
hook_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_DSID_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_purged(FedoraObject $object, $dsid)
hook_CMODEL_PID_islandora_datastream_purged(FedoraObject $object, $dsid)
Also updated the testing scripts to support different configurations, as well
wrote tests for all the implemented hooks. This requires the latest version
of Tuque so be sure to update.
12 years ago
// Test deleting.
$object = $this->repository->constructObject('test:testPurgedObjectHook');
$this->repository->ingestObject($object);
$_SESSION['islandora_hooks']['hook'][ISLANDORA_OBJECT_PURGED_HOOK] = FALSE;
$_SESSION['islandora_hooks']['alter'][ISLANDORA_OBJECT_PURGED_HOOK] = FALSE;
$object->delete();
$this->assert($_SESSION['islandora_hooks']['alter'][ISLANDORA_OBJECT_PURGED_HOOK], 'Called "hook_islandora_object_alter" when deleting via FedoraObject::delete.');
$this->assert($_SESSION['islandora_hooks']['hook'][ISLANDORA_OBJECT_PURGED_HOOK], 'Called ISLANDORA_OBJECT_PURGED_HOOK when purging via FedoraObject::delete.');
$this->repository->purgeObject($object->id);
Created hooks and implemented them as part of the tuque wrapper classes.
hook_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_CMODEL_PID_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_islandora_datastream_alter(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_CMODEL_PID_DSID_islandora_datastream_altezr(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_islandora_object_ingested(FedoraObject $object)
hook_CMODEL_PID_islandora_object_ingested(FedoraObject $object)
hook_islandora_object_modified(FedoraObject $object)
hook_CMODEL_PID_islandora_object_modified(FedoraObject $object)
hook_islandora_object_purged($pid)
hook_CMODEL_PID_islandora_object_purged($pid)
hook_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_DSID_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_purged(FedoraObject $object, $dsid)
hook_CMODEL_PID_islandora_datastream_purged(FedoraObject $object, $dsid)
Also updated the testing scripts to support different configurations, as well
wrote tests for all the implemented hooks. This requires the latest version
of Tuque so be sure to update.
12 years ago
// Test alter blocking.
$object = $this->repository->constructObject('test:testPurgedObjectHook');
$this->repository->ingestObject($object);
try {
$_SESSION['islandora_hooks']['hook'][ISLANDORA_OBJECT_PURGED_HOOK] = FALSE;
$_SESSION['islandora_hooks']['alter'][ISLANDORA_OBJECT_PURGED_HOOK] = FALSE;
$object->label = 'block';
$this->repository->purgeObject($object->id);
$this->fail('Blocked modify should throw an Exception.');
}
catch (Exception $e) {
Created hooks and implemented them as part of the tuque wrapper classes.
hook_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_CMODEL_PID_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_islandora_datastream_alter(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_CMODEL_PID_DSID_islandora_datastream_altezr(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_islandora_object_ingested(FedoraObject $object)
hook_CMODEL_PID_islandora_object_ingested(FedoraObject $object)
hook_islandora_object_modified(FedoraObject $object)
hook_CMODEL_PID_islandora_object_modified(FedoraObject $object)
hook_islandora_object_purged($pid)
hook_CMODEL_PID_islandora_object_purged($pid)
hook_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_DSID_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_purged(FedoraObject $object, $dsid)
hook_CMODEL_PID_islandora_datastream_purged(FedoraObject $object, $dsid)
Also updated the testing scripts to support different configurations, as well
wrote tests for all the implemented hooks. This requires the latest version
of Tuque so be sure to update.
12 years ago
$this->pass('Modify blocked and exception thrown.');
$this->assert($_SESSION['islandora_hooks']['alter'][ISLANDORA_OBJECT_PURGED_HOOK], 'Called "hook_islandora_object_alter" when blocking purge via FedoraRepository::purgeObject.');
$this->assertFalse($_SESSION['islandora_hooks']['hook'][ISLANDORA_OBJECT_PURGED_HOOK], 'Called ISLANDORA_OBJECT_PURGED_HOOK when blocking purge via FedoraRepository::purgeObject.');
}
Created hooks and implemented them as part of the tuque wrapper classes.
hook_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_CMODEL_PID_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_islandora_datastream_alter(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_CMODEL_PID_DSID_islandora_datastream_altezr(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_islandora_object_ingested(FedoraObject $object)
hook_CMODEL_PID_islandora_object_ingested(FedoraObject $object)
hook_islandora_object_modified(FedoraObject $object)
hook_CMODEL_PID_islandora_object_modified(FedoraObject $object)
hook_islandora_object_purged($pid)
hook_CMODEL_PID_islandora_object_purged($pid)
hook_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_DSID_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_purged(FedoraObject $object, $dsid)
hook_CMODEL_PID_islandora_datastream_purged(FedoraObject $object, $dsid)
Also updated the testing scripts to support different configurations, as well
wrote tests for all the implemented hooks. This requires the latest version
of Tuque so be sure to update.
12 years ago
// Test alter delete.
$_SESSION['islandora_hooks']['hook'][ISLANDORA_OBJECT_PURGED_HOOK] = FALSE;
$_SESSION['islandora_hooks']['alter'][ISLANDORA_OBJECT_PURGED_HOOK] = FALSE;
$object->label = 'delete';
$this->repository->purgeObject($object->id);
$this->assertEqual($object->state, 'D', '"hook_islandora_object_alter" prevented purge and deleted the object.');
$this->assert($_SESSION['islandora_hooks']['alter'][ISLANDORA_OBJECT_PURGED_HOOK], 'Called "hook_islandora_object_alter" when preventing purge and deleting.');
$this->assert($_SESSION['islandora_hooks']['hook'][ISLANDORA_OBJECT_PURGED_HOOK], 'Called ISLANDORA_OBJECT_PURGED_HOOK when preventing purge and deleting.');
$object->label = 'Something other than delete';
$this->repository->purgeObject($object->id);
Created hooks and implemented them as part of the tuque wrapper classes.
hook_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_CMODEL_PID_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_islandora_datastream_alter(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_CMODEL_PID_DSID_islandora_datastream_altezr(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_islandora_object_ingested(FedoraObject $object)
hook_CMODEL_PID_islandora_object_ingested(FedoraObject $object)
hook_islandora_object_modified(FedoraObject $object)
hook_CMODEL_PID_islandora_object_modified(FedoraObject $object)
hook_islandora_object_purged($pid)
hook_CMODEL_PID_islandora_object_purged($pid)
hook_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_DSID_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_purged(FedoraObject $object, $dsid)
hook_CMODEL_PID_islandora_datastream_purged(FedoraObject $object, $dsid)
Also updated the testing scripts to support different configurations, as well
wrote tests for all the implemented hooks. This requires the latest version
of Tuque so be sure to update.
12 years ago
// Test ingesting with FedoraRepository::ingestObject().
$object = $this->repository->constructObject('test:testIngestedDatastreamHook');
$this->repository->ingestObject($object);
$ds = $object->constructDatastream('TEST');
$_SESSION['islandora_hooks']['hook'][ISLANDORA_DATASTREAM_INGESTED_HOOK] = FALSE;
$_SESSION['islandora_hooks']['alter'][ISLANDORA_DATASTREAM_INGESTED_HOOK] = FALSE;
$object->ingestDatastream($ds);
$this->assert($_SESSION['islandora_hooks']['alter'][ISLANDORA_DATASTREAM_INGESTED_HOOK], 'Called "hook_islandora_datastream_alter" when ingesting via FedoraObject::ingestDatastream.');
$this->assert($_SESSION['islandora_hooks']['hook'][ISLANDORA_DATASTREAM_INGESTED_HOOK], 'Called ISLANDORA_DATASTREAM_INGESTED_HOOK when ingesting via FedoraObject::ingestDatastream.');
$this->repository->purgeObject($object->id);
Created hooks and implemented them as part of the tuque wrapper classes.
hook_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_CMODEL_PID_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_islandora_datastream_alter(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_CMODEL_PID_DSID_islandora_datastream_altezr(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_islandora_object_ingested(FedoraObject $object)
hook_CMODEL_PID_islandora_object_ingested(FedoraObject $object)
hook_islandora_object_modified(FedoraObject $object)
hook_CMODEL_PID_islandora_object_modified(FedoraObject $object)
hook_islandora_object_purged($pid)
hook_CMODEL_PID_islandora_object_purged($pid)
hook_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_DSID_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_purged(FedoraObject $object, $dsid)
hook_CMODEL_PID_islandora_datastream_purged(FedoraObject $object, $dsid)
Also updated the testing scripts to support different configurations, as well
wrote tests for all the implemented hooks. This requires the latest version
of Tuque so be sure to update.
12 years ago
// Test modifying a datastream.
$object = $this->repository->constructObject('test:testModifiedDatastreamHook');
$this->repository->ingestObject($object);
$ds = $object->constructDatastream('TEST');
$object->ingestDatastream($ds);
$_SESSION['islandora_hooks']['hook'][ISLANDORA_DATASTREAM_MODIFIED_HOOK] = FALSE;
$_SESSION['islandora_hooks']['alter'][ISLANDORA_DATASTREAM_MODIFIED_HOOK] = FALSE;
$ds->label = "New Label!";
$this->assert($_SESSION['islandora_hooks']['alter'][ISLANDORA_DATASTREAM_MODIFIED_HOOK], 'Called "hook_islandora_datastream_alter" when modifying via set magic functions.');
$this->assert($_SESSION['islandora_hooks']['hook'][ISLANDORA_DATASTREAM_MODIFIED_HOOK], 'Called ISLANDORA_DATASTREAM_MODIFIED_HOOK when modifying via set magic functions.');
Created hooks and implemented them as part of the tuque wrapper classes.
hook_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_CMODEL_PID_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_islandora_datastream_alter(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_CMODEL_PID_DSID_islandora_datastream_altezr(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_islandora_object_ingested(FedoraObject $object)
hook_CMODEL_PID_islandora_object_ingested(FedoraObject $object)
hook_islandora_object_modified(FedoraObject $object)
hook_CMODEL_PID_islandora_object_modified(FedoraObject $object)
hook_islandora_object_purged($pid)
hook_CMODEL_PID_islandora_object_purged($pid)
hook_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_DSID_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_purged(FedoraObject $object, $dsid)
hook_CMODEL_PID_islandora_datastream_purged(FedoraObject $object, $dsid)
Also updated the testing scripts to support different configurations, as well
wrote tests for all the implemented hooks. This requires the latest version
of Tuque so be sure to update.
12 years ago
// Test blocking modifying.
try {
$_SESSION['islandora_hooks']['hook'][ISLANDORA_DATASTREAM_MODIFIED_HOOK] = FALSE;
$_SESSION['islandora_hooks']['alter'][ISLANDORA_DATASTREAM_MODIFIED_HOOK] = FALSE;
$ds->label = 'block';
$this->fail('Blocked modify should throw an Exception.');
}
catch (Exception $e) {
Created hooks and implemented them as part of the tuque wrapper classes.
hook_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_CMODEL_PID_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_islandora_datastream_alter(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_CMODEL_PID_DSID_islandora_datastream_altezr(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_islandora_object_ingested(FedoraObject $object)
hook_CMODEL_PID_islandora_object_ingested(FedoraObject $object)
hook_islandora_object_modified(FedoraObject $object)
hook_CMODEL_PID_islandora_object_modified(FedoraObject $object)
hook_islandora_object_purged($pid)
hook_CMODEL_PID_islandora_object_purged($pid)
hook_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_DSID_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_purged(FedoraObject $object, $dsid)
hook_CMODEL_PID_islandora_datastream_purged(FedoraObject $object, $dsid)
Also updated the testing scripts to support different configurations, as well
wrote tests for all the implemented hooks. This requires the latest version
of Tuque so be sure to update.
12 years ago
$this->pass('Modify blocked and exception thrown.');
$this->assert($_SESSION['islandora_hooks']['alter'][ISLANDORA_DATASTREAM_MODIFIED_HOOK], 'Called "hook_islandora_datastream_alter" when blocking modifying via set magic functions.');
$this->assertFALSE($_SESSION['islandora_hooks']['hook'][ISLANDORA_DATASTREAM_MODIFIED_HOOK], 'Called ISLANDORA_DATASTREAM_MODIFIED_HOOK when blocking modifying via set magic functions.');
}
$this->repository->purgeObject($object->id);
Created hooks and implemented them as part of the tuque wrapper classes.
hook_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_CMODEL_PID_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_islandora_datastream_alter(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_CMODEL_PID_DSID_islandora_datastream_altezr(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_islandora_object_ingested(FedoraObject $object)
hook_CMODEL_PID_islandora_object_ingested(FedoraObject $object)
hook_islandora_object_modified(FedoraObject $object)
hook_CMODEL_PID_islandora_object_modified(FedoraObject $object)
hook_islandora_object_purged($pid)
hook_CMODEL_PID_islandora_object_purged($pid)
hook_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_DSID_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_purged(FedoraObject $object, $dsid)
hook_CMODEL_PID_islandora_datastream_purged(FedoraObject $object, $dsid)
Also updated the testing scripts to support different configurations, as well
wrote tests for all the implemented hooks. This requires the latest version
of Tuque so be sure to update.
12 years ago
// Test purging with FedoraRepository::purgeObject().
$object = $this->repository->constructObject('test:testPurgedDatastreamHook');
$this->repository->ingestObject($object);
$ds = $object->constructDatastream('TEST');
$object->ingestDatastream($ds);
$_SESSION['islandora_hooks']['hook'][ISLANDORA_DATASTREAM_PURGED_HOOK] = FALSE;
$_SESSION['islandora_hooks']['alter'][ISLANDORA_DATASTREAM_PURGED_HOOK] = FALSE;
$object->purgeDatastream($ds->id);
$this->assert($_SESSION['islandora_hooks']['alter'][ISLANDORA_DATASTREAM_PURGED_HOOK], 'Called "hook_islandora_datastream_alter" when purging via FedoraObject::purgeDatastream.');
$this->assert($_SESSION['islandora_hooks']['hook'][ISLANDORA_DATASTREAM_PURGED_HOOK], 'Called ISLANDORA_DATASTREAM_PURGED_HOOK when purging via FedoraObject::purgeDatastream.');
$this->repository->purgeObject($object->id);
}
/**
* Test ALL THE HOOKS!.
*
* Ensure hooks are triggered properly in "New" objects.
*/
public function testNewIngestHooks() {
// Test ingesting with FedoraRepository::ingestObject().
$object = $this->repository->constructObject('test:testIngestedDatastreamHook');
$ds = $object->constructDatastream('TEST');
$_SESSION['islandora_hooks']['hook'][ISLANDORA_DATASTREAM_INGESTED_HOOK] = FALSE;
$_SESSION['islandora_hooks']['alter'][ISLANDORA_DATASTREAM_INGESTED_HOOK] = FALSE;
$object->ingestDatastream($ds);
$this->repository->ingestObject($object);
$this->assert($_SESSION['islandora_hooks']['alter'][ISLANDORA_DATASTREAM_INGESTED_HOOK], 'Called "hook_islandora_datastream_alter" when ingesting via FedoraObject::ingestDatastream.');
$this->assert($_SESSION['islandora_hooks']['hook'][ISLANDORA_DATASTREAM_INGESTED_HOOK], 'Called ISLANDORA_DATASTREAM_INGESTED_HOOK when ingesting via FedoraObject::ingestDatastream.');
$this->repository->purgeObject($object->id);
}
Created hooks and implemented them as part of the tuque wrapper classes.
hook_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_CMODEL_PID_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_islandora_datastream_alter(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_CMODEL_PID_DSID_islandora_datastream_altezr(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_islandora_object_ingested(FedoraObject $object)
hook_CMODEL_PID_islandora_object_ingested(FedoraObject $object)
hook_islandora_object_modified(FedoraObject $object)
hook_CMODEL_PID_islandora_object_modified(FedoraObject $object)
hook_islandora_object_purged($pid)
hook_CMODEL_PID_islandora_object_purged($pid)
hook_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_DSID_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_purged(FedoraObject $object, $dsid)
hook_CMODEL_PID_islandora_datastream_purged(FedoraObject $object, $dsid)
Also updated the testing scripts to support different configurations, as well
wrote tests for all the implemented hooks. This requires the latest version
of Tuque so be sure to update.
12 years ago
}