diff --git a/includes/add_datastream.form.inc b/includes/add_datastream.form.inc index 3ad5a965..037fd14f 100644 --- a/includes/add_datastream.form.inc +++ b/includes/add_datastream.form.inc @@ -227,7 +227,7 @@ function islandora_add_datastream_form_autocomplete_callback(AbstractObject $obj $dsids = array_combine($dsids, $dsids); $query = trim($query); if (!empty($query)) { - $filter = function($id) use($query) { + $filter = function ($id) use ($query) { return stripos($id, $query) !== FALSE; }; $dsids = array_filter($dsids, $filter); diff --git a/includes/admin.form.inc b/includes/admin.form.inc index 37bc9aa8..7324f6c6 100644 --- a/includes/admin.form.inc +++ b/includes/admin.form.inc @@ -48,7 +48,8 @@ function islandora_repository_admin(array $form, array &$form_state) { '#title' => t('Fedora base URL'), '#default_value' => variable_get('islandora_base_url', 'http://localhost:8080/fedora'), '#description' => t('The URL to use for REST connections
!confirmation_message', array( - '!confirmation_message' => $confirmation_message)), + '!confirmation_message' => $confirmation_message, + )), '#required' => TRUE, '#ajax' => array( 'callback' => 'islandora_update_url_div', @@ -225,17 +226,21 @@ function islandora_admin_settings_form_repository_access_message($url) { if ($info && $dc) { $confirmation_message = theme_image(array('path' => 'misc/watchdog-ok.png', 'attributes' => array())); $confirmation_message .= t('Successfully connected to Fedora Server (Version !version).', array( - '!version' => $info['repositoryVersion'])); + '!version' => $info['repositoryVersion'], + )); } elseif ($info) { $confirmation_message = theme_image(array('path' => 'misc/watchdog-warning.png', 'attributes' => array())); $confirmation_message .= t('Unable to authenticate when connecting to to Fedora Server (Version !version). Please configure the !filter.', array( - '!version' => $info['repositoryVersion'], '!filter' => 'Drupal Filter')); + '!version' => $info['repositoryVersion'], + '!filter' => 'Drupal Filter', + )); } else { $confirmation_message = theme_image(array('path' => 'misc/watchdog-error.png', 'attributes' => array())); $confirmation_message .= t('Unable to connect to Fedora server at !islandora_url', array( - '!islandora_url' => $url)); + '!islandora_url' => $url, + )); } return $confirmation_message; } diff --git a/includes/authtokens.inc b/includes/authtokens.inc index d5d98117..055e6464 100644 --- a/includes/authtokens.inc +++ b/includes/authtokens.inc @@ -104,11 +104,11 @@ function islandora_validate_object_token($pid, $dsid, $token) { // Decrement authentication token uses. else { db_update("islandora_authtokens") - ->fields(array('remaining_uses' => $remaining_uses)) - ->condition('token', $token, '=') - ->condition('pid', $pid, '=') - ->condition('dsid', $dsid, '=') - ->execute(); + ->fields(array('remaining_uses' => $remaining_uses)) + ->condition('token', $token, '=') + ->condition('pid', $pid, '=') + ->condition('dsid', $dsid, '=') + ->execute(); } unset($result[0]->remaining_uses); $accounts[$pid][$dsid][$token] = $result[0]; diff --git a/includes/content_model.autocomplete.inc b/includes/content_model.autocomplete.inc index 67923e9e..466cb71f 100644 --- a/includes/content_model.autocomplete.inc +++ b/includes/content_model.autocomplete.inc @@ -1,4 +1,5 @@ $version, - '%s' => $datastream_id, - '%o' => $object->label, - '%e' => $e->getMessage())), 'error'); + '%v' => $version, + '%s' => $datastream_id, + '%o' => $object->label, + '%e' => $e->getMessage(), + )), 'error'); } drupal_set_message(t('%d datastream version successfully deleted from Islandora object %o', array( - '%d' => $datastream_id, - '%o' => $object->label))); + '%d' => $datastream_id, + '%o' => $object->label, + ))); $form_state['redirect'] = "islandora/object/{$object->id}/datastream/{$datastream->id}/version"; } @@ -224,9 +226,10 @@ function islandora_revert_datastream_version_form_submit(array $form, array &$fo } drupal_set_message(t('%d datastream successfully reverted to version %v for Islandora object %o', array( - '%d' => $datastream_to_revert->id, - '%v' => $version, - '%o' => $islandora_object->label))); + '%d' => $datastream_to_revert->id, + '%v' => $version, + '%o' => $islandora_object->label, + ))); $form_state['redirect'] = "islandora/object/{$islandora_object->id}/datastream/{$datastream_to_revert->id}/version"; } @@ -235,9 +238,9 @@ function islandora_revert_datastream_version_form_submit(array $form, array &$fo * Process available dsids, mime and extensions for a given object. * * @param AbstractObject $object - * The FedoraObject to process available extensions + * The FedoraObject to process available extensions. * - * @return array() + * @return array * An associative array, merged from calls to * islandora_get_datastreams_requirements_from_content_models() * and an objects dsid's. @@ -272,7 +275,7 @@ function islandora_get_object_extensions(AbstractObject $object) { * @return array * The drupal form definition. */ -function islandora_datastream_version_replace_form($form, &$form_state, AbstractDatastream $datastream) { +function islandora_datastream_version_replace_form(array $form, array &$form_state, AbstractDatastream $datastream) { module_load_include('inc', 'islandora', 'includes/content_model'); module_load_include('inc', 'islandora', 'includes/utilities'); module_load_include('inc', 'islandora', 'includes/mimetype.utils'); @@ -337,7 +340,7 @@ function islandora_datastream_version_replace_form($form, &$form_state, Abstract * @param array $form_state * The Drupal form state. */ -function islandora_datastream_version_replace_form_submit($form, &$form_state) { +function islandora_datastream_version_replace_form_submit(array $form, array &$form_state) { $object = islandora_object_load($form_state['object_id']); $form_state['redirect'] = "islandora/object/{$object->id}"; $file = file_load($form_state['values']['file']); @@ -370,7 +373,7 @@ function islandora_datastream_version_replace_form_submit($form, &$form_state) { * Gets Audit datastream values from foxml. * * @param string $pid - * PID of parent object + * PID of parent object. * * @return array * Array of audit values diff --git a/includes/delete_datastream.form.inc b/includes/delete_datastream.form.inc index 6d67c8dd..ad24eba7 100644 --- a/includes/delete_datastream.form.inc +++ b/includes/delete_datastream.form.inc @@ -127,19 +127,22 @@ function islandora_delete_datastream_form_submit(array $form, array &$form_state } catch (Exception $e) { drupal_set_message(t('Error deleting %s datastream from object %o %e', array( - '%s' => $datastream_id, - '%o' => $object->label, - '%e' => $e->getMessage())), 'error'); + '%s' => $datastream_id, + '%o' => $object->label, + '%e' => $e->getMessage(), + )), 'error'); } if ($deleted) { drupal_set_message(t('%d datastream sucessfully deleted from Islandora object %o', array( - '%d' => $datastream_id, - '%o' => $object->label))); + '%d' => $datastream_id, + '%o' => $object->label, + ))); } else { drupal_set_message(t('Error deleting %s datastream from object %o', array( - '%s' => $datastream_id, - '%o' => $object->label)), 'error'); + '%s' => $datastream_id, + '%o' => $object->label, + )), 'error'); } $form_state['redirect'] = "islandora/object/{$object->id}"; } diff --git a/includes/derivatives.inc b/includes/derivatives.inc index aca79bea..edaf9913 100644 --- a/includes/derivatives.inc +++ b/includes/derivatives.inc @@ -1,4 +1,5 @@ dc = self::importFromXMLString($dc_xml); + $this->dc = self::importFromXmlString($dc_xml); } } @@ -81,7 +81,7 @@ class DublinCore { * @return string * The serialized XML. */ - public function asXML() { + public function asXml() { $dc_xml = new DomDocument(); $oai_dc = $dc_xml->createElementNS('http://www.openarchives.org/OAI/2.0/oai_dc/', 'oai_dc:dc'); $oai_dc->setAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/'); @@ -152,7 +152,7 @@ class DublinCore { * @return DublinCore * The instantiated object. */ - public static function importFromXMLString($dc_xml) { + public static function importFromXmlString($dc_xml) { $dc_doc = new DomDocument(); if (!empty($dc_xml) && $dc_doc->loadXML($dc_xml)) { $oai_dc = $dc_doc->getElementsByTagNameNS('http://purl.org/dc/elements/1.1/', '*'); diff --git a/includes/ingest.form.inc b/includes/ingest.form.inc index d4d7e895..5b6e49aa 100644 --- a/includes/ingest.form.inc +++ b/includes/ingest.form.inc @@ -64,8 +64,11 @@ function islandora_ingest_form(array $form, array &$form_state, array $configura WATCHDOG_ERROR ); drupal_set_message($e->getMessage(), 'error'); - return array(array( - '#markup' => l(t('Back'), 'javascript:window.history.back();', array('external' => TRUE)))); + return array( + array( + '#markup' => l(t('Back'), 'javascript:window.history.back();', array('external' => TRUE)), + ), + ); } } @@ -285,7 +288,7 @@ function islandora_ingest_form_increment_step(array &$form_state) { * The Drupal form state. */ function islandora_ingest_form_decrement_step(array &$form_state) { - $previous_step_id = islandora_ingest_form_get_previous_step_id($form_state); + $previous_step_id = islandora_ingest_form_get_previous_step_id($form_state); // Don't decrement passed the first step. if (isset($previous_step_id)) { islandora_ingest_form_stash_info($form_state); @@ -496,7 +499,7 @@ function islandora_ingest_form_stepify(array $form, array &$form_state, array $s */ function islandora_ingest_form_add_step_context(array &$form, array $form_state) { $items = array(); - $get_label = function(AbstractObject $collection = NULL, AbstractObject $fedora_cmodel) { + $get_label = function (AbstractObject $collection = NULL, AbstractObject $fedora_cmodel) { if (isset($collection['COLLECTION_POLICY'])) { $policy = new CollectionPolicy($collection['COLLECTION_POLICY']->content); $policy_content_models = $policy->getContentModels(); @@ -876,18 +879,18 @@ function &islandora_ingest_form_get_objects(array &$form_state) { /** * Gets a single object from the stored NewFedoraObject's. * - * @note In our current use case we are only dealing with a single object - * ingest, this makes it convenient to access it. Ideally the steps - * implementations will be abstracted to be indifferent to what object it's - * currently working on. This will act as a placeholder for such - * functionality. - * * @param array $form_state * The Drupal form state. * * @return NewFedoraObject * Returns the 'current' object in the array of NewFedoraObjects, generally * this is only used when there is one object in the list of objects. + * + * @note In our current use case we are only dealing with a single object + * ingest, this makes it convenient to access it. Ideally the steps + * implementations will be abstracted to be indifferent to what object it's + * currently working on. This will act as a placeholder for such + * functionality. */ function islandora_ingest_form_get_object(array &$form_state) { $objects = &islandora_ingest_form_get_objects($form_state); @@ -899,7 +902,7 @@ function islandora_ingest_form_get_object(array &$form_state) { * * @param array $form_state * The Drupal form state. - * @param array $step_id + * @param string $step_id * The ID of the step. * * @return array @@ -1004,7 +1007,7 @@ function islandora_ingest_form_get_steps(array &$form_state) { */ function islandora_ingest_form_get_form_steps(array &$form_state) { $steps = islandora_ingest_form_get_steps($form_state); - $form_step_filter = function($o) { + $form_step_filter = function ($o) { return $o['type'] == 'form'; }; return array_filter($steps, $form_step_filter); @@ -1022,7 +1025,7 @@ function islandora_ingest_form_get_form_steps(array &$form_state) { */ function islandora_ingest_form_get_callback_steps(array &$form_state) { $steps = islandora_ingest_form_get_steps($form_state); - $callback_step_filter = function($o) { + $callback_step_filter = function ($o) { return $o['type'] == 'callback'; }; return array_filter($steps, $callback_step_filter); diff --git a/includes/metadata.inc b/includes/metadata.inc index 90c30f9c..5e298127 100644 --- a/includes/metadata.inc +++ b/includes/metadata.inc @@ -1,4 +1,5 @@ 'item', - '#markup' => (isset($profile['configuration']) AND $profile['configuration'] != '') ? l(t('configure'), $profile['configuration']) : '', + '#markup' => (isset($profile['configuration']) && $profile['configuration'] != '') ? l(t('configure'), $profile['configuration']) : '', ); } $form['viewers']['default'] = array( @@ -135,7 +136,7 @@ function islandora_metadata_display_form($form, $form_state) { * @param array $form_state * An array containing the Drupal form state. */ -function islandora_metadata_display_form_submit($form, $form_state) { +function islandora_metadata_display_form_submit(array $form, array $form_state) { variable_set('islandora_metadata_display', $form_state['values']['viewers']['default']); drupal_set_message(t('The configuration options have been saved.')); } diff --git a/includes/mime_detect.inc b/includes/mime_detect.inc index 9b1145eb..818e150b 100644 --- a/includes/mime_detect.inc +++ b/includes/mime_detect.inc @@ -21,54 +21,71 @@ * http://api.drupal.org/api/function/file_default_mimetype_mapping/7 */ +/** + * Class for mime-type detection. + */ class MimeDetect { - protected $protectedMimeTypes = array( - /* - * This is a shortlist of mimetypes which should catch most - * mimetype<-->extension lookups in the context of Islandora collections. - * - * It has been cut from a much longer list. - * - * Two types of mimetypes should be put in this list: - * 1) Special emerging formats which may not yet be expressed in the system - * mime.types file. - * 2) Heavily used mimetypes of particular importance to the Islandora - * project, as lookups against this list will be quicker and less - * resource intensive than other methods. - * - * Lookups are first checked against this short list. If no results are - * found, then the lookup function may move on to check other sources, - * namely the system's mime.types file. - * - * In most cases though, this short list should suffice. - * - * If modifying this list, please note that for promiscuous mimetypes - * (those which map to multiple extensions, such as text/plain) - * The function get_extension will always return the *LAST* extension in - * this list, so you should put your preferred extension *LAST*. - * - * e.g... - * "jpeg" => "image/jpeg", - * "jpe" => "image/jpeg", - * "jpg" => "image/jpeg", - * - * $this->get_extension('image/jpeg') will always return 'jpg'. - * - */ - ); + /** + * Shortlist of mimetypes which catch most mimetype to extension lookups. + * + * @var array + * + * It has been cut from a much longer list. + * + * Two types of mimetypes should be put in this list: + * 1) Special emerging formats which may not yet be expressed in the system + * mime.types file. + * 2) Heavily used mimetypes of particular importance to the Islandora + * project, as lookups against this list will be quicker and less + * resource intensive than other methods. + * + * Lookups are first checked against this short list. If no results are + * found, then the lookup function may move on to check other sources, + * namely the system's mime.types file. + * + * In most cases though, this short list should suffice. + * + * If modifying this list, please note that for promiscuous mimetypes + * (those which map to multiple extensions, such as text/plain) + * The function get_extension will always return the *LAST* extension in + * this list, so you should put your preferred extension *LAST*. + * + * e.g... + * "jpeg" => "image/jpeg", + * "jpe" => "image/jpeg", + * "jpg" => "image/jpeg", + * + * $this->get_extension('image/jpeg') will always return 'jpg'. + */ + protected $protectedMimeTypes = array(); protected $protectedFileExtensions; protected $extensionExceptions = array( // XXX: Deprecated... Only here due to old 'tif' => 'image/tif' mapping... // The correct MIMEtype is 'image/tiff'. 'image/tif' => 'tif', ); + /** + * Array of mimetypes from the system. + * + * @var array + */ protected $systemTypes; + /** + * Array of extensions from the system. + * + * @var array + */ protected $systemExts; + /** + * Location of the system mime.types file. + * + * @var string + */ protected $etcMimeTypes = '/etc/mime.types'; /** - * Construtor. + * Constructor. */ public function __construct() { module_load_include('inc', 'islandora', 'includes/mimetype.utils'); @@ -87,7 +104,7 @@ class MimeDetect { * Gets MIME type associated with the give file's extension. * * @param string $filename - * The filename + * The filename. * @param bool $debug * Returns a debug array. * @@ -171,7 +188,8 @@ class MimeDetect { /** * Gets an associative array of MIME type and extension associations. * - * Users the system mime.types file, or a local mime.types if one is found + * Users the system mime.types file, or a local mime.types if one is found. + * * @see MIMEDetect::__constuctor() * * @return array @@ -206,7 +224,8 @@ class MimeDetect { /** * Gets a associative array of extensions and MIME types. * - * Users the system mime.types file, or a local mime.types if one is found + * Users the system mime.types file, or a local mime.types if one is found. + * * @see MIMEDetect::__constuctor() * * @return array @@ -262,4 +281,5 @@ class MimeDetect { }; return array_keys(array_filter($this->protectedMimeTypes, $filter)); } + } diff --git a/includes/mime_type.autocomplete.inc b/includes/mime_type.autocomplete.inc index f24e4193..a5b249c1 100644 --- a/includes/mime_type.autocomplete.inc +++ b/includes/mime_type.autocomplete.inc @@ -1,4 +1,5 @@ "application/warc", "json" => "application/json", - // JSON-LD + // JSON-LD. "jsonld" => "application/ld+json", ); } diff --git a/includes/object.entity_controller.inc b/includes/object.entity_controller.inc index 87b5e4de..70b6c4bd 100644 --- a/includes/object.entity_controller.inc +++ b/includes/object.entity_controller.inc @@ -5,6 +5,9 @@ * Very basic entity controller. */ +/** + * Special loader for Islandora objects. + */ class IslandoraObjectEntityController implements DrupalEntityControllerInterface { /** @@ -20,13 +23,16 @@ class IslandoraObjectEntityController implements DrupalEntityControllerInterface /** * Load all the entities. * - * @param array $ids + * @param mixed $ids * The ID's of the entities. - * @param array $conditions + * @param mixed $conditions * The conditions to apply. * * @return array * An array of loaded objects. + * + * @throws \Exception + * If no conditions are provided. */ public function load($ids = array(), $conditions = array()) { if (!empty($conditions)) { @@ -54,4 +60,5 @@ class IslandoraObjectEntityController implements DrupalEntityControllerInterface public function resetCache(array $ids = NULL) { // no-op. } + } diff --git a/includes/object_properties.form.inc b/includes/object_properties.form.inc index 85a98342..33016d86 100644 --- a/includes/object_properties.form.inc +++ b/includes/object_properties.form.inc @@ -90,7 +90,8 @@ function islandora_object_properties_form(array $form, array &$form_state, Abstr '#type' => 'submit', '#access' => islandora_object_access(ISLANDORA_PURGE, $object), '#value' => t("Permanently remove '@label' from repository", array( - '@label' => truncate_utf8($object->label, 32, TRUE, TRUE)) + '@label' => truncate_utf8($object->label, 32, TRUE, TRUE), + ) ), '#submit' => array('islandora_object_properties_form_delete'), '#limit_validation_errors' => array(array('pid')), @@ -200,15 +201,15 @@ function islandora_object_properties_form_delete(array $form, array &$form_state * Updates object state. * * @param string $pid - * PID of object to be updated + * PID of object to be updated. * @param bool $update_states - * If TRUE, update object state + * If TRUE, update object state. * @param string $state - * Desired object state + * Desired object state. * @param bool $update_owners - * If TRUE, update Owner + * If TRUE, update Owner. * @param string $owner - * New Owner + * New Owner. */ function islandora_update_object_properties($pid, $update_states, $state, $update_owners, $owner) { $fedora_object = islandora_object_load($pid); diff --git a/includes/orphaned_objects.inc b/includes/orphaned_objects.inc index 4941bab5..f17f4185 100644 --- a/includes/orphaned_objects.inc +++ b/includes/orphaned_objects.inc @@ -16,7 +16,7 @@ * @return array * An array containing the form to be rendered. */ -function islandora_manage_orphaned_objects_form($form, $form_state) { +function islandora_manage_orphaned_objects_form(array $form, array $form_state) { if (isset($form_state['show_confirm'])) { $pids = $form_state['pids_to_delete']; $form['confirm_message'] = array( @@ -96,12 +96,13 @@ function islandora_manage_orphaned_objects_form($form, $form_state) { * @param array $form_state * An array containing the Drupal form state. */ -function islandora_delete_selected_orphaned_objects_validate($form, $form_state) { +function islandora_delete_selected_orphaned_objects_validate(array $form, array $form_state) { $selected = array_filter($form_state['values']['management_table']); if (empty($selected)) { form_error($form['management_table'], t('At least one object must be selected to delete!')); } } + /** * Submit handler for the delete buttons in the workflow management form. * @@ -110,7 +111,7 @@ function islandora_delete_selected_orphaned_objects_validate($form, $form_state) * @param array $form_state * An array containing the Drupal form state. */ -function islandora_delete_orphaned_objects_submit(&$form, &$form_state) { +function islandora_delete_orphaned_objects_submit(array &$form, array &$form_state) { if ($form_state['triggering_element']['#name'] == 'islandora-orphaned-objects-submit-selected') { $selected = array_keys(array_filter($form_state['values']['management_table'])); } @@ -122,6 +123,7 @@ function islandora_delete_orphaned_objects_submit(&$form, &$form_state) { $form_state['rebuild'] = TRUE; $form_state['show_confirm'] = TRUE; } + /** * Submit handler for the workflow management confirm form. * @@ -130,7 +132,7 @@ function islandora_delete_orphaned_objects_submit(&$form, &$form_state) { * @param array $form_state * An array containing the Drupal form state. */ -function islandora_manage_orphaned_objects_confirm_submit($form, &$form_state) { +function islandora_manage_orphaned_objects_confirm_submit(array $form, array &$form_state) { $batch = islandora_delete_orphaned_objects_create_batch($form_state['pids_to_delete']); batch_set($batch); } @@ -212,7 +214,7 @@ EOQ; * @return array * An array detailing the batch that is about to be run. */ -function islandora_delete_orphaned_objects_create_batch($pids) { +function islandora_delete_orphaned_objects_create_batch(array $pids) { // Set up a batch operation. $batch = array( 'operations' => array( @@ -227,6 +229,7 @@ function islandora_delete_orphaned_objects_create_batch($pids) { ); return $batch; } + /** * Constructs and performs the deleting batch operation. * @@ -235,7 +238,7 @@ function islandora_delete_orphaned_objects_create_batch($pids) { * @param array $context * The context of the Drupal batch. */ -function islandora_delete_orphaned_objects_batch_operation($pids, &$context) { +function islandora_delete_orphaned_objects_batch_operation(array $pids, array &$context) { if (empty($context['sandbox'])) { $context['sandbox'] = array(); $context['sandbox']['progress'] = 0; @@ -247,10 +250,10 @@ function islandora_delete_orphaned_objects_batch_operation($pids, &$context) { $target_pid = array_pop($context['sandbox']['pids']); $target_object = islandora_object_load($target_pid); $context['message'] = t('Deleting @label (@pid) (@current of @total)...', array( - '@label' => $target_object->label, - '@pid' => $target_pid, - '@current' => $context['sandbox']['progress'], - '@total' => $context['sandbox']['total'], + '@label' => $target_object->label, + '@pid' => $target_pid, + '@current' => $context['sandbox']['progress'], + '@total' => $context['sandbox']['total'], )); islandora_delete_object($target_object); $object_check = islandora_object_load($target_pid); @@ -267,6 +270,7 @@ function islandora_delete_orphaned_objects_batch_operation($pids, &$context) { } $context['finished'] = ($context['sandbox']['total'] == 0) ? 1 : ($context['sandbox']['progress'] / $context['sandbox']['total']); } + /** * Finished function for the orphaned objects delete batch. * @@ -277,7 +281,7 @@ function islandora_delete_orphaned_objects_batch_operation($pids, &$context) { * @param array $operations * The operations array that was used in the batch. */ -function islandora_delete_orphaned_objects_batch_finished($success, $results, $operations) { +function islandora_delete_orphaned_objects_batch_finished($success, array $results, array $operations) { if ($success) { $message = format_plural(count($results['success']), 'One object deleted.', '@count objects deleted.'); } diff --git a/includes/regenerate_derivatives.form.inc b/includes/regenerate_derivatives.form.inc index 1312bec3..321781c4 100644 --- a/includes/regenerate_derivatives.form.inc +++ b/includes/regenerate_derivatives.form.inc @@ -122,8 +122,8 @@ function islandora_regenerate_datastream_derivative_batch(AbstractDatastream $da return array( 'title' => t('Regenerating derivatives for the @dsid datastream', array('@dsid' => $datastream->id)), 'operations' => islandora_do_batch_derivatives($datastream->parent, array( - 'force' => TRUE, - 'destination_dsid' => $datastream->id, + 'force' => TRUE, + 'destination_dsid' => $datastream->id, )), 'init_message' => t('Preparing to regenerate derivatives...'), 'progress_message' => t('Time elapsed: @elapsed
Estimated time remaining @estimate.'), @@ -139,7 +139,7 @@ function islandora_regenerate_datastream_derivative_batch(AbstractDatastream $da * @param string $function * The name of the function we are calling for derivatives. * @param bool|string $file - * FALSE if there is no file to load, the path to require otherwise + * FALSE if there is no file to load, the path to require otherwise. * @param string $pid * The pid of the object we are performing. * @param bool $force @@ -149,7 +149,7 @@ function islandora_regenerate_datastream_derivative_batch(AbstractDatastream $da * @param array $context * The context of the current batch operation. */ -function islandora_derivative_perform_batch_operation($function, $file, $pid, $force, $hook, &$context) { +function islandora_derivative_perform_batch_operation($function, $file, $pid, $force, array $hook, array &$context) { if ($file) { require_once $file; } @@ -174,7 +174,7 @@ function islandora_derivative_perform_batch_operation($function, $file, $pid, $f * @param array $operations * An array of operations passed from the batch. */ -function islandora_regenerate_derivative_batch_finished($success, $results, $operations) { +function islandora_regenerate_derivative_batch_finished(array $success, array $results, array $operations) { module_load_include('inc', 'islandora', 'includes/derivatives'); if (!empty($results['logging'])) { islandora_derivative_logging($results['logging']); diff --git a/includes/solution_packs.inc b/includes/solution_packs.inc index c5856e38..d813e067 100644 --- a/includes/solution_packs.inc +++ b/includes/solution_packs.inc @@ -105,7 +105,7 @@ function islandora_solution_packs_admin() { * @return array * The Drupal form definition. */ -function islandora_solution_pack_form(array $form, array &$form_state, $solution_pack_module, $solution_pack_name, $objects = array()) { +function islandora_solution_pack_form(array $form, array &$form_state, $solution_pack_module, $solution_pack_name, array $objects = array()) { // The order is important in terms of severity of the status, where higher // index indicates the status is more serious, this will be used to determine // what messages get displayed to the user. @@ -145,7 +145,8 @@ function islandora_solution_pack_form(array $form, array &$form_state, $solution $header = array( 'label' => t('Label'), 'pid' => t('PID'), - 'status' => t('Status')); + 'status' => t('Status'), + ); $object_info = array(); foreach ($objects as $object) { @@ -161,7 +162,8 @@ function islandora_solution_pack_form(array $form, array &$form_state, $solution $object_info[] = array( 'label' => $label, 'pid' => $object->id, - 'status' => $status_msg); + 'status' => $status_msg, + ); } $solution_pack_status = $status_severities[$solution_pack_status_severity]; $solution_pack_status_info = $status_info[$solution_pack_status]; @@ -260,7 +262,7 @@ function islandora_solution_pack_form_submit(array $form, array &$form_state) { * @return array * An array defining a batch which can be passed on to batch_set(). */ -function islandora_solution_pack_get_batch($module, $not_checked = array()) { +function islandora_solution_pack_get_batch($module, array $not_checked = array()) { $batch = array( 'title' => t('Installing / Updating solution pack objects'), 'file' => drupal_get_path('module', 'islandora') . '/includes/solution_packs.inc', @@ -299,8 +301,8 @@ function islandora_solution_pack_batch_operation_reingest_object(AbstractObject if (!$deleted) { $object_link = l($existing_object->label, "islandora/object/{$existing_object->id}"); drupal_set_message(filter_xss(t('Failed to purge existing object !object_link.', array( - '!object_link' => $object_link, - ))), 'error'); + '!object_link' => $object_link, + ))), 'error'); // Failed to purge don't attempt to ingest. return; } @@ -405,8 +407,8 @@ function islandora_install_solution_pack($module, $op = 'install', $force = FALS $object_status = islandora_check_object_status($object); $here_params = array( '!summary' => $t("@module: Did not install !object_link.", array( - '!object_link' => $object_link, - ) + $t_params), + '!object_link' => $object_link, + ) + $t_params), '!description' => $status_messages[$object_status['status']], ); drupal_set_message(filter_xss(format_string('!summary !description', $here_params)), 'warning'); @@ -422,25 +424,25 @@ function islandora_install_solution_pack($module, $op = 'install', $force = FALS if ($object) { if ($deleted) { drupal_set_message(filter_xss($t('@module: Successfully reinstalled. !object_link.', array( - '!object_link' => $object_link, - ) + $t_params)), 'status'); + '!object_link' => $object_link, + ) + $t_params)), 'status'); } else { drupal_set_message(filter_xss($t('@module: Successfully installed. !object_link.', array( - '!object_link' => $object_link, - ) + $t_params)), 'status'); + '!object_link' => $object_link, + ) + $t_params)), 'status'); } } else { drupal_set_message($t('@module: Failed to install. @label.', array( - '@label' => $label, - ) + $t_params), 'warning'); + '@label' => $label, + ) + $t_params), 'warning'); } } else { drupal_set_message($t('@module: "@label" already exists and failed to be deleted.', array( - '@label' => $label, - ) + $t_params), 'warning'); + '@label' => $label, + ) + $t_params), 'warning'); } } } @@ -535,7 +537,7 @@ function islandora_check_object_status(AbstractObject $object_definition) { ); } - $is_xml_datastream = function($ds) { + $is_xml_datastream = function ($ds) { return $ds->mimetype == 'text/xml'; }; $xml_datastreams = array_filter(iterator_to_array($object_definition), $is_xml_datastream); @@ -627,11 +629,11 @@ function islandora_check_object_status(AbstractObject $object_definition) { * that supports either the give $mimetype or $model will be listed. * * @param string $variable_id - * The ID of the Drupal variable to save the viewer settings in + * The ID of the Drupal variable to save the viewer settings in. * @param string $mimetype - * The table will be populated with viewers supporting this mimetype + * The table will be populated with viewers supporting this mimetype. * @param string $model - * The table will be populated with viewers supporting this content model + * The table will be populated with viewers supporting this content model. * * @return array * A form api array which defines a themed table to select a viewer. @@ -680,7 +682,7 @@ function islandora_viewers_form($variable_id = NULL, $mimetype = NULL, $model = ); $form['viewers'][$variable_id]['configuration'][$name] = array( '#type' => 'item', - '#markup' => (isset($profile['configuration']) AND $profile['configuration'] != '') ? l(t('configure'), $profile['configuration']) : '', + '#markup' => (isset($profile['configuration']) and $profile['configuration'] != '') ? l(t('configure'), $profile['configuration']) : '', ); } $form['viewers'][$variable_id]['default'] = array( @@ -717,7 +719,7 @@ function islandora_viewers_form($variable_id = NULL, $mimetype = NULL, $model = * @return array * Viewer definitions, or FALSE if none are found. */ -function islandora_get_viewers($mimetype = array(), $content_model = NULL) { +function islandora_get_viewers(array $mimetype = array(), $content_model = NULL) { $viewers = array(); $defined_viewers = module_invoke_all('islandora_viewer_info'); @@ -729,7 +731,7 @@ function islandora_get_viewers($mimetype = array(), $content_model = NULL) { foreach ($defined_viewers as $key => $value) { $value['mimetype'] = isset($value['mimetype']) ? $value['mimetype'] : array(); $value['model'] = isset($value['model']) ? $value['model'] : array(); - if (array_intersect($mimetype, $value['mimetype']) OR in_array($content_model, $value['model'])) { + if (array_intersect($mimetype, $value['mimetype']) or in_array($content_model, $value['model'])) { $viewers[$key] = $value; } } @@ -763,10 +765,10 @@ function theme_islandora_viewers_table($variables) { $output = ''; $output .= theme('table', array( - 'header' => $header, - 'rows' => $rows, - 'attributes' => array('id' => 'islandora-viewers-table'), - )); + 'header' => $header, + 'rows' => $rows, + 'attributes' => array('id' => 'islandora-viewers-table'), + )); $output .= drupal_render_children($form); return $output; } @@ -774,22 +776,22 @@ function theme_islandora_viewers_table($variables) { /** * Gather information and return a rendered viewer. * - * @param array/string $params - * Array or string with data the module needs in order to render a full viewer + * @param array|string $params + * Array or string of data the module needs in order to render a full viewer. * @param string $variable_id - * The id of the Drupal variable the viewer settings are saved in + * The id of the Drupal variable the viewer settings are saved in. * @param AbstractObject $fedora_object - * The tuque object representing the fedora object being displayed + * The tuque object representing the fedora object being displayed. * * @return string * The callback to the viewer module. Returns a rendered viewer. Returns FALSE * if no viewer is set. */ -function islandora_get_viewer($params = NULL, $variable_id = NULL, $fedora_object = NULL) { +function islandora_get_viewer($params = NULL, $variable_id = NULL, AbstractObject $fedora_object = NULL) { $settings = variable_get($variable_id, array()); - if (!empty($settings) AND $settings['default'] !== 'none') { + if (!empty($settings) && $settings['default'] !== 'none') { $viewer_id = islandora_get_viewer_id($variable_id); - if ($viewer_id AND $params !== NULL) { + if ($viewer_id && $params !== NULL) { $callback = islandora_get_viewer_callback($viewer_id); if (function_exists($callback)) { return $callback($params, $fedora_object); @@ -803,7 +805,7 @@ function islandora_get_viewer($params = NULL, $variable_id = NULL, $fedora_objec * Get id of the enabled viewer. * * @param string $variable_id - * The ID of the Drupal variable the viewer settings are saved in + * The ID of the Drupal variable the viewer settings are saved in. * * @return string * The enabled viewer id. Returns FALSE if no viewer config is set. @@ -834,6 +836,7 @@ function islandora_get_viewer_callback($viewer_id = NULL) { } return FALSE; } + /** * @} End of "defgroup viewer-functions". */ diff --git a/includes/tuque.inc b/includes/tuque.inc index 7aed2556..0c91714b 100644 --- a/includes/tuque.inc +++ b/includes/tuque.inc @@ -27,18 +27,20 @@ $islandora_module_path = drupal_get_path('module', 'islandora'); @include_once "$islandora_module_path/libraries/tuque/RepositoryException.php"; @include_once "$islandora_module_path/libraries/tuque/Repository.php"; @include_once "$islandora_module_path/libraries/tuque/FedoraRelationships.php"; - +/** + * The Tuque class built from various supporting classes. + */ class IslandoraTuque { /** - * Connection to the repository + * Connection to the repository. * * @var RepositoryConnection */ public $connection = NULL; /** - * The Fedora API we are using + * The Fedora API we are using. * * @var FedoraAPI */ @@ -61,7 +63,7 @@ class IslandoraTuque { /** * Constructor. * - * @param array $user + * @param object $user * A Drupal user. * @param string $url * The url to the fedora instance. @@ -113,4 +115,5 @@ class IslandoraTuque { $message = t('Islandora requires the !tuque_url. Please install in /sites/all/libraries/tuque before continuing. See the !islandora_url.', array('!tuque_url' => $tuque_link, '!islandora_url' => $islandora_doc_link)); drupal_set_message(filter_xss($message), 'error', FALSE); } + } diff --git a/includes/tuque_wrapper.inc b/includes/tuque_wrapper.inc index 19b73b0f..5295de83 100644 --- a/includes/tuque_wrapper.inc +++ b/includes/tuque_wrapper.inc @@ -2,8 +2,9 @@ /** * @file - * Wrapper around the tuque library, allows for autoloading of Islandora Tuque - * Objects. + * Wrapper around the tuque library. + * + * Allows for autoloading of Islandora Tuque Objects. * * @todo Overload functions and apply pre/post hooks. */ @@ -75,6 +76,9 @@ function islandora_invoke_datastream_hooks($hook, array $models, $dsid) { return islandora_invoke_hook_list($hook, $refinements, array_slice(func_get_args(), 3)); } +/** + * Implementation of the FedoraRepository class. + */ class IslandoraFedoraRepository extends FedoraRepository { protected $queryClass = 'IslandoraRepositoryQuery'; protected $newObjectClass = 'IslandoraNewFedoraObject'; @@ -119,9 +123,10 @@ class IslandoraFedoraRepository extends FedoraRepository { } catch (Exception $e) { watchdog('islandora', 'Failed to ingest object: @pid
code: @code
message: @msg', array( - '@pid' => $object->id, - '@code' => $e->getCode(), - '@msg' => $e->getMessage()), WATCHDOG_ERROR); + '@pid' => $object->id, + '@code' => $e->getCode(), + '@msg' => $e->getMessage(), + ), WATCHDOG_ERROR); throw $e; } } @@ -134,7 +139,7 @@ class IslandoraFedoraRepository extends FedoraRepository { public function constructObject($id = NULL, $create_uuid = NULL) { // Enforces UUID when set, but allows to override if called // with $create_uuid set to bool. - return parent::constructObject($id, static::useUUIDs($create_uuid)); + return parent::constructObject($id, static::useUuids($create_uuid)); } /** @@ -145,13 +150,13 @@ class IslandoraFedoraRepository extends FedoraRepository { public function getNextIdentifier($namespace = NULL, $create_uuid = NULL, $count = 1) { // Enforces UUID when set, but allows to override if called // with $create_uuid set to bool. - return parent::getNextIdentifier($namespace, static::useUUIDs($create_uuid), $count); + return parent::getNextIdentifier($namespace, static::useUuids($create_uuid), $count); } /** * Helper for three-valued logic with UUIDs. * - * @param bool|NULL $to_create + * @param bool|null $to_create * The variable to test. * * @return bool @@ -159,21 +164,29 @@ class IslandoraFedoraRepository extends FedoraRepository { * 'islandora_basic_collection_generate_uuid' Drupal variable; otherwise, * the value of $to_create itself. */ - protected static function useUUIDs($to_create) { + protected static function useUuids($to_create) { return is_null($to_create) ? variable_get('islandora_basic_collection_generate_uuid', FALSE) : $to_create; } -} +} +/** + * Implementation of RepositoryQuery class. + */ class IslandoraRepositoryQuery extends RepositoryQuery {} - +/** + * Implementation of NewFedoraObject class. + */ class IslandoraNewFedoraObject extends NewFedoraObject { protected $newFedoraDatastreamClass = 'IslandoraNewFedoraDatastream'; protected $fedoraDatastreamClass = 'IslandoraFedoraDatastream'; protected $fedoraRelsExtClass = 'IslandoraFedoraRelsExt'; -} +} +/** + * Implementation, magic functions for a FedoraObject class. + */ class IslandoraFedoraObject extends FedoraObject { protected $newFedoraDatastreamClass = 'IslandoraNewFedoraDatastream'; protected $fedoraDatastreamClass = 'IslandoraFedoraDatastream'; @@ -275,9 +288,10 @@ class IslandoraFedoraObject extends FedoraObject { } catch (Exception $e) { watchdog('islandora', 'Failed to modify object: @pid
code: @code
message: @msg', array( - '@pid' => $this->id, - '@code' => $e->getCode(), - '@msg' => $e->getMessage()), WATCHDOG_ERROR); + '@pid' => $this->id, + '@code' => $e->getCode(), + '@msg' => $e->getMessage(), + ), WATCHDOG_ERROR); throw $e; } } @@ -322,16 +336,21 @@ class IslandoraFedoraObject extends FedoraObject { } catch (Exception $e) { watchdog('islandora', 'Failed to purge datastream @dsid from @pid
code: @code
message: @msg', array( - '@pid' => $this->id, - '@dsid' => $id, - '@code' => $e->getCode(), - '@msg' => $e->getMessage()), WATCHDOG_ERROR); + '@pid' => $this->id, + '@dsid' => $id, + '@code' => $e->getCode(), + '@msg' => $e->getMessage(), + ), WATCHDOG_ERROR); throw $e; } } -} +} +/** + * Implementation of a RepositoryConnection class. + */ class IslandoraRepositoryConnection extends RepositoryConnection { + /** * Constructor. * @@ -345,8 +364,11 @@ class IslandoraRepositoryConnection extends RepositoryConnection { parent::__construct($url, $username, $password); drupal_alter('islandora_repository_connection_construction', $this); } -} +} +/** + * Implementation of a FedoraApi class. + */ class IslandoraFedoraApi extends FedoraApi { /** @@ -362,8 +384,11 @@ class IslandoraFedoraApi extends FedoraApi { $this->m = new IslandoraFedoraApiM($connection, $serializer); $this->connection = $connection; } -} +} +/** + * Implementation of FedoraApiM class. + */ class IslandoraFedoraApiM extends FedoraApiM { /** @@ -452,9 +477,10 @@ class IslandoraFedoraApiM extends FedoraApiM { } catch (Exception $e) { watchdog('islandora', 'Failed to purge object @pid
code: @code
message: @msg', array( - '@pid' => $pid, - '@code' => $e->getCode(), - '@msg' => $e->getMessage()), WATCHDOG_ERROR); + '@pid' => $pid, + '@code' => $e->getCode(), + '@msg' => $e->getMessage(), + ), WATCHDOG_ERROR); throw $e; } } @@ -505,7 +531,7 @@ class IslandoraFedoraApiM extends FedoraApiM { * * All extra arguments are passed along to the callback. * - * @param callable $callback + * @param string $callback * The method we are wrapping. * @param string $pid * The PID to create a semaphore for. @@ -540,15 +566,23 @@ class IslandoraFedoraApiM extends FedoraApiM { return call_user_func_array(array($this, "parent::$callback"), $args); } } -} +} +/** + * Implementation of SimpleCache class. + */ class IslandoraSimpleCache extends SimpleCache {} - +/** + * Implementation of NewFedoraDatastream class. + */ class IslandoraNewFedoraDatastream extends NewFedoraDatastream { protected $fedoraRelsIntClass = 'IslandoraFedoraRelsInt'; protected $fedoraDatastreamVersionClass = 'IslandoraFedoraDatastreamVersion'; -} +} +/** + * Implementation and magic functions for FedoraDatastream class. + */ class IslandoraFedoraDatastream extends FedoraDatastream { protected $fedoraRelsIntClass = 'IslandoraFedoraRelsInt'; protected $fedoraDatastreamVersionClass = 'IslandoraFedoraDatastreamVersion'; @@ -610,20 +644,29 @@ class IslandoraFedoraDatastream extends FedoraDatastream { } catch (Exception $e) { watchdog('islandora', 'Failed to modify datastream @dsid from @pid
code: @code
message: @msg', array( - '@pid' => $this->parent->id, - '@dsid' => $this->id, - '@code' => $e->getCode(), - '@msg' => $e->getMessage()), WATCHDOG_ERROR); + '@pid' => $this->parent->id, + '@dsid' => $this->id, + '@code' => $e->getCode(), + '@msg' => $e->getMessage(), + ), WATCHDOG_ERROR); throw $e; } } -} +} +/** + * Implementation of FedoraDatastreamVersion class. + */ class IslandoraFedoraDatastreamVersion extends FedoraDatastreamVersion { protected $fedoraRelsIntClass = 'IslandoraFedoraRelsInt'; protected $fedoraDatastreamVersionClass = 'IslandoraFedoraDatastreamVersion'; -} +} +/** + * Implementation of FedoraRelsExt class. + */ class IslandoraFedoraRelsExt extends FedoraRelsExt {} - +/** + * Implementation of FedoraRelsInt class. + */ class IslandoraFedoraRelsInt extends FedoraRelsInt {} diff --git a/includes/utilities.inc b/includes/utilities.inc index dcbaab02..b1405330 100644 --- a/includes/utilities.inc +++ b/includes/utilities.inc @@ -13,7 +13,7 @@ * XXX: Shouldn't Drupal's format_size() be preferred? * * @param int $bytes - * Size in bytes to convert + * Size in bytes to convert. * @param int $precision * The amount of decimal precision to show. * @@ -175,8 +175,6 @@ function islandora_describe_repository($url = NULL) { * as MODULE_REFINEMENT_HOOK. Any additional arguments passed to this function * will be passed as arguments to module_invoke_all(). * - * @see islandora_build_hook_list() - * * @param string $hook * A hook to call. * @param array $refinements @@ -188,6 +186,8 @@ function islandora_describe_repository($url = NULL) { * * @return array * The merged results from all the hooks. + * + * @see islandora_build_hook_list() */ function islandora_invoke_hook_list($hook, array $refinements, array $args) { $return = array(); @@ -229,7 +229,7 @@ function islandora_invoke_hook_list($hook, array $refinements, array $args) { * An array with each refinement escaped and concatenated with the base hook * name, in addition to the base hook name. */ -function islandora_build_hook_list($hook, $refinements = array()) { +function islandora_build_hook_list($hook, array $refinements = array()) { $refinements = array_unique($refinements); $hooks = array($hook); foreach ($refinements as $refinement) { @@ -333,7 +333,7 @@ function islandora_get_parents_from_rels_ext(AbstractObject $object) { // @todo some logging would be nice, not sure what this throws. return array(); } - $map = function($o) { + $map = function ($o) { return islandora_object_load($o['object']['value']); }; $collections = array_map($map, $collections); @@ -484,7 +484,11 @@ function islandora_get_datastreams_requirements_from_content_model(AbstractObjec * @return NewFedoraObject * An ingestable NewFedoraObject. */ -function islandora_prepare_new_object($name_source = NULL, $label = NULL, $datastreams = array(), $content_models = array(), $relationships = array()) { +function islandora_prepare_new_object($name_source = NULL, + $label = NULL, + array $datastreams = array(), + array $content_models = array(), + array $relationships = array()) { global $user; $tuque = islandora_get_tuque_connection(); $object = isset($name_source) ? $tuque->repository->constructObject($name_source) : new IslandoraNewFedoraObject(NULL, $tuque->repository); @@ -500,7 +504,7 @@ function islandora_prepare_new_object($name_source = NULL, $label = NULL, $datas $dsid = $ds['dsid']; $label = isset($ds['label']) ? $ds['label'] : ''; $mimetype = isset($ds['mimetype']) ? $ds['mimetype'] : 'text/xml'; - // Default 'Managed' + // Default 'Managed'. $control_group = 'M'; $groups = array('X', 'M', 'R', 'E'); if (isset($ds['control_group']) && in_array($ds['control_group'], $groups)) { @@ -733,16 +737,16 @@ function islandora_get_content_models($ignore_system_namespace = TRUE) { * Returns Drupal tableselect element allowing selection of Content Models. * * @param string $drupal_variable - * the name of the Drupal variable holding selected content models + * The name of the Drupal variable holding selected content models * Content models held in this variable will appear at the top of - * the displayed list + * the displayed list. * @param array $default_values_array - * default values to display if $drupal_variable is unset + * Default values to display if $drupal_variable is unset. * * @return array * Drupal form element allowing content model selection */ -function islandora_content_model_select_table_form_element($drupal_variable, $default_values_array = array('')) { +function islandora_content_model_select_table_form_element($drupal_variable, array $default_values_array = array('')) { $defaults = array(); $rows = array(); $content_models = array(); @@ -835,7 +839,7 @@ function islandora_deprecated($release, $solution = NULL) { * of strings, which we transform to renderable markup elements (by * reference). */ -function islandora_as_renderable_array(&$markup_array) { +function islandora_as_renderable_array(array &$markup_array) { foreach ($markup_array as &$value) { if (!is_array($value)) { // Not a renderable array, just a string. Let's convert it to a diff --git a/islandora.api.php b/islandora.api.php index 1cdb9205..35c2eaf3 100644 --- a/islandora.api.php +++ b/islandora.api.php @@ -1,4 +1,5 @@ models)) { $resource_url = url("islandora/object/{$object->id}/datastream/OBJ/view"); @@ -30,7 +31,8 @@ function hook_islandora_view_object($object, $user, $page_number, $page_size) { // Theme the image seperatly. $variables['islandora_img'] = theme('image', $params); $output = theme('islandora_default_print', array( - 'islandora_content' => $variables['islandora_img'])); + 'islandora_content' => $variables['islandora_img'], + )); } return $output; } @@ -52,13 +54,15 @@ function hook_islandora_view_print_object($object) { * create the hook name. * * @param AbstractObject $object - * A Tuque FedoraObject + * A Tuque FedoraObject. * * @return array * An array whose values are markup. */ -function hook_cmodel_pid_islandora_view_object($object) { - +function hook_cmodel_pid_islandora_view_object(AbstractObject $object) { + $output = array(); + // See hook_islandora_view_object(). + return $output; } /** @@ -69,21 +73,21 @@ function hook_cmodel_pid_islandora_view_object($object) { * @param array $rendered * The array of rendered views. */ -function hook_islandora_view_object_alter(&$object, &$rendered) { +function hook_islandora_view_object_alter(AbstractObject &$object, array &$rendered) { } /** * Alter display output if the object has the given model. * - * @see hook_islandora_view_object_alter() - * * @param AbstractObject $object * A Tuque AbstractObject being operated on. * @param array $rendered * The array of rendered views. + * + * @see hook_islandora_view_object_alter() */ -function hook_cmodel_pid_islandora_view_object_alter(&$object, &$rendered) { +function hook_cmodel_pid_islandora_view_object_alter(AbstractObject &$object, array &$rendered) { } @@ -91,13 +95,15 @@ function hook_cmodel_pid_islandora_view_object_alter(&$object, &$rendered) { * Generate an object's datastreams management display. * * @param AbstractObject $object - * A Tuque FedoraObject + * A Tuque FedoraObject. * * @return array * An array whose values are markup. */ -function hook_islandora_edit_object($object) { - +function hook_islandora_edit_object(AbstractObject $object) { + $output = array(); + // Not sure if there is an implementation of this hook. + return $output; } /** @@ -107,24 +113,27 @@ function hook_islandora_edit_object($object) { * create the hook name. * * @param AbstractObject $object - * A Tuque FedoraObject + * A Tuque FedoraObject. * * @return array * An array whose values are markup. + * + * @see hook_islandora_edit_object() */ -function hook_cmodel_pid_islandora_edit_object($object) { - +function hook_cmodel_pid_islandora_edit_object(AbstractObject $object) { + $output = array(); + return $output; } /** * Allow datastreams management display output to be altered. * * @param AbstractObject $object - * A Tuque FedoraObject + * A Tuque FedoraObject. * @param array $rendered - * an arr of rendered views + * An array of rendered views. */ -function hook_islandora_edit_object_alter(&$object, &$rendered) { +function hook_islandora_edit_object_alter(AbstractObject &$object, array &$rendered) { } @@ -227,12 +236,12 @@ function hook_cmodel_pid_dsid_islandora_datastream_alter(AbstractObject $object, * This hook is called after an object has been successfully ingested via a * FedoraRepository object. * + * @param AbstractObject $object + * The object that was ingested. + * * @note * If ingested directly via the FedoraApiM object this will not be called as we * don't have access to the ingested object at that time. - * - * @param AbstractObject $object - * The object that was ingested. */ function hook_islandora_object_ingested(AbstractObject $object) { @@ -301,14 +310,14 @@ function hook_cmodel_pid_islandora_object_purged($pid) { * * This hook is called after the datastream has been successfully ingested. * - * @note - * If ingested directly via the FedoraApiM object this will not be called as we - * don't have access to the ingested datastream at that time. - * * @param AbstractObject $object * The object the datastream belongs to. * @param AbstractDatastream $datastream * The ingested datastream. + * + * @note + * If ingested directly via the FedoraApiM object this will not be called as we + * don't have access to the ingested datastream at that time. */ function hook_islandora_datastream_ingested(AbstractObject $object, AbstractDatastream $datastream) { @@ -394,7 +403,7 @@ function hook_cmodel_pid_dsid_islandora_datastream_purged(AbstractObject $object * - name: A string containg a human-readable name for the entry. * - url: A string containing the URL to which to the user will be routed. */ -function hook_islandora_edit_datastream_registry($object, $dsid) { +function hook_islandora_edit_datastream_registry(AbstractObject $object, $dsid) { $routes = array(); $routes[] = array( 'name' => t('My Awesome Edit Route'), @@ -451,7 +460,7 @@ function hook_islandora_undeletable_datastreams(array $models) { * * @param array $form_state * An array containing the form_state, on which infomation from step storage - * might be extracted. Note that the + * might be extracted. * * @return array * An associative array of associative arrays which define each step in the @@ -511,7 +520,6 @@ function hook_islandora_ingest_steps(array $form_state) { * * @param array $steps * An array of steps as generated by hook_islandora_ingest_steps(). - * * @param array $form_state * An array containing the Drupal form_state. */ @@ -538,7 +546,6 @@ function hook_cmodel_pid_islandora_ingest_steps(array $form_state) { * * @param array $steps * An array of steps as generated by hook_islandora_ingest_steps(). - * * @param array $form_state * An array containing the Drupal form_state. */ @@ -557,13 +564,13 @@ function hook_cmodel_pid_islandora_ingest_steps_alter(array &$steps, array &$for * @param object $user * A loaded user object, as the global $user variable might contain. * - * @return bool|NULL|array + * @return bool|null|array * Either boolean TRUE or FALSE to explicitly allow or deny the operation on * the given object, or NULL to indicate that we are making no assertion * about the outcome. Can also be an array containing multiple * TRUE/FALSE/NULLs, due to how hooks work. */ -function hook_islandora_object_access($op, $object, $user) { +function hook_islandora_object_access($op, AbstractObject $object, $user) { switch ($op) { case 'create stuff': return TRUE; @@ -596,13 +603,13 @@ function hook_cmodel_pid_islandora_object_access($op, $object, $user) { * @param object $user * A loaded user object, as the global $user variable might contain. * - * @return bool|NULL|array + * @return bool|null|array * Either boolean TRUE or FALSE to explicitly allow or deny the operation on * the given object, or NULL to indicate that we are making no assertion * about the outcome. Can also be an array containing multiple * TRUE/FALSE/NULLs, due to how hooks work. */ -function hook_islandora_datastream_access($op, $object, $user) { +function hook_islandora_datastream_access($op, AbstractDatastream $object, $user) { switch ($op) { case 'create stuff': return TRUE; @@ -664,7 +671,7 @@ function hook_cmodel_pid_islandora_overview_object_alter(AbstractObject &$object * hierarchy. * * @param AbstractObject $object - * Optional object to which derivatives will be added + * Optional object to which derivatives will be added. * @param array $ds_modified_params * An array that will contain the properties changed on the datastream if * derivatives were triggered from a datastream_modified hook, as well as a @@ -703,7 +710,7 @@ function hook_cmodel_pid_islandora_overview_object_alter(AbstractObject &$object * - file: A string denoting the path to the file where the function * is being called from. */ -function hook_islandora_derivative(AbstractObject $object = NULL, $ds_modified_params = array()) { +function hook_islandora_derivative(AbstractObject $object = NULL, array $ds_modified_params = array()) { $derivatives[] = array( 'source_dsid' => 'OBJ', 'destination_dsid' => 'DERIV', @@ -777,7 +784,7 @@ function hook_cmodel_pid_islandora_derivative_alter() { * Retrieves PIDS of related objects for property updating. * * @param AbstractObject $object - * AbstractObject representing deleted object + * AbstractObject representing deleted object. */ function hook_islandora_update_related_objects_properties(AbstractObject $object) { $related_objects = get_all_children_siblings_and_friends($object); @@ -796,9 +803,9 @@ function hook_islandora_update_related_objects_properties(AbstractObject $object * @param string $context * Where the alter is originating from for distinguishing. * @param AbstractObject $object - * (Optional) AbstractObject representing object providing breadcrumb path + * (Optional) AbstractObject representing object providing breadcrumb path. */ -function hook_islandora_breadcrumbs_alter(&$breadcrumbs, $context, $object = NULL) { +function hook_islandora_breadcrumbs_alter(array &$breadcrumbs, $context, AbstractObject $object = NULL) { } @@ -883,7 +890,7 @@ function hook_islandora_get_breadcrumb_query_predicates() { * - original_edit_registry: The original edit_registry prior to any * modifications. */ -function hook_islandora_edit_datastream_registry_alter(&$edit_registry, $context) { +function hook_islandora_edit_datastream_registry_alter(array &$edit_registry, array $context) { // Example: Remove xml form builder edit registry. if (isset($edit_registry['xml_form_builder_edit_form_registry'])) { unset($edit_registry['xml_form_builder_edit_form_registry']); @@ -951,7 +958,6 @@ function callback_islandora_breadcrumbs_backends(AbstractObject $object) { * * @param string $filename * The filename being created. - * * @param AbstractDatastream $datastream * The datastream object being downloaded. */ diff --git a/islandora.module b/islandora.module index 337212e8..a72f4fb7 100644 --- a/islandora.module +++ b/islandora.module @@ -4,7 +4,7 @@ * @file * Defines all the hooks this module implements. * - * islandora.module: defines paths (drupal menu items) as entry points and acts + * Islandora.module: defines paths (drupal menu items) as entry points and acts * as a hub for dispatching tasks to other modules. * * This file is part of Islandora. @@ -76,7 +76,7 @@ const ISLANDORA_BREADCRUMB_LEGACY_BACKEND = 'islandora_breadcrumbs_legacy_sparql * Implements hook_menu(). * * We need some standard entry points so we can have consistent urls for - * different Object actions + * different Object actions. */ function islandora_menu() { $items = array(); @@ -190,7 +190,8 @@ function islandora_menu() { ISLANDORA_ADD_DS, ISLANDORA_PURGE, ISLANDORA_INGEST, - ), 2), + ), 2, + ), ); $items['islandora/object/%islandora_object/manage/overview'] = array( 'title' => 'Overview', @@ -208,7 +209,8 @@ function islandora_menu() { ISLANDORA_METADATA_EDIT, ISLANDORA_ADD_DS, ISLANDORA_PURGE, - ), 2), + ), 2, + ), 'weight' => -10, ); $items['islandora/object/%islandora_object/manage/properties'] = array( @@ -437,7 +439,7 @@ function islandora_admin_paths() { * The theme entries 'islandora_objects' and 'islandora_objects_subset' * utilize the same template file. When theming, be sure to utilize the theme * name, and not the template file names. Similar situation found here: - * @link https://jira.duraspace.org/browse/ISLANDORA-934. @endlink + * @link https://jira.duraspace.org/browse/ISLANDORA-934. @endlink. */ function islandora_theme() { return array( @@ -722,7 +724,7 @@ function islandora_print_object(AbstractObject $object) { * FALSE if 'islandora_show_print_option' is not selected in islandora * configuraton. */ -function islandora_print_object_access($op, $object) { +function islandora_print_object_access($op, AbstractObject $object) { if (!variable_get('islandora_show_print_option', FALSE)) { return FALSE; } @@ -750,8 +752,6 @@ function islandora_forms($form_id) { * Will check the given user or the user repersented by the GET token parameter, * failing that it will use the global user. * - * @global $user - * * @param mixed $object_or_datastream * The AbstractObject or AbstractDatastream to test for accessibility, if NULL * is given the object is assumed to not exist or be inaccessible. @@ -768,11 +768,13 @@ function islandora_forms($form_id) { * a token to restore the user. If no GET parameter is present use currently * logged in user. * + * @global $user + * * @return bool * TRUE if the user is allowed to access this object/datastream, FALSE * otherwise. */ -function islandora_user_access($object_or_datastream, array $permissions, $content_models = array(), $access_any = TRUE, $user = NULL) { +function islandora_user_access($object_or_datastream, array $permissions, array $content_models = array(), $access_any = TRUE, $user = NULL) { module_load_include('inc', 'islandora', 'includes/utilities'); $is_repository_accessible = &drupal_static(__FUNCTION__); @@ -860,11 +862,11 @@ function islandora_user_access($object_or_datastream, array $permissions, $conte * Checks whether the user can access the given object. * * Checks for object existance, accessiblitly, namespace permissions, - * and user permissions + * and user permissions. * * @param string $perm * User permission to test for. - * @param AbstractObject $object + * @param AbstractObject|string $object * The object to test, if NULL given the object doesn't exist or is * inaccessible. * @@ -914,7 +916,7 @@ function islandora_object_datastream_tokened_access_callback($perm, $object = NU * Checks whether the user can access the given object's manage tab. * * Checks for object existance, accessiblitly, namespace permissions, - * and user permissions + * and user permissions. * * @param array $perms * Array of user permission to test for. @@ -925,7 +927,7 @@ function islandora_object_datastream_tokened_access_callback($perm, $object = NU * @return bool * TRUE if the user is allowed to access this object, FALSE otherwise. */ -function islandora_object_manage_access_callback($perms, $object = NULL) { +function islandora_object_manage_access_callback(array $perms, AbstractObject $object = NULL) { module_load_include('inc', 'islandora', 'includes/utilities'); if (!$object && !islandora_describe_repository()) { @@ -1140,7 +1142,7 @@ function islandora_drupal_title(AbstractObject $object) { * @return array * The default rendering of the object view page, indexed at 'Default output'. */ -function islandora_default_islandora_view_object($object) { +function islandora_default_islandora_view_object(AbstractObject $object) { $output = theme('islandora_default', array('islandora_object' => $object)); return array('Default output' => array('#markup' => $output)); } @@ -1156,7 +1158,7 @@ function islandora_default_islandora_view_object($object) { * @return array * A renderable array */ -function islandora_default_islandora_printer_object($object, $alter) { +function islandora_default_islandora_printer_object(AbstractObject $object, $alter) { module_load_include('inc', 'islandora', 'includes/utilities'); module_load_include('inc', 'islandora', 'includes/datastream'); module_load_include('inc', 'islandora', 'includes/metadata'); @@ -1165,11 +1167,10 @@ function islandora_default_islandora_printer_object($object, $alter) { drupal_add_css($path . '/css/islandora.print.css'); $islandora_object = islandora_object_load($object->id); - $repository = $islandora_object->repository; try { $dc = $islandora_object['DC']->content; - $dc_object = DublinCore::importFromXMLString($dc); + $dc_object = DublinCore::importFromXmlString($dc); } catch (Exception $e) { drupal_set_message(t('Error retrieving object %s %t', array('%s' => $islandora_object->id, '%t' => $e->getMessage())), 'error', FALSE); @@ -1180,7 +1181,8 @@ function islandora_default_islandora_printer_object($object, $alter) { 'object' => $object, 'dc_array' => $variables, 'metadata' => $metadata, - 'islandora_content' => $alter)); + 'islandora_content' => $alter, + )); return array('Default output' => array('#markup' => $output)); } @@ -1277,7 +1279,7 @@ function islandora_object_load($object_id) { * @return FedoraObject * A token authenticated object. @see islandora_object_load */ -function islandora_tokened_object_load($object_id, $map) { +function islandora_tokened_object_load($object_id, array $map) { if (array_key_exists('token', $_GET)) { $token = filter_input(INPUT_GET, 'token', FILTER_SANITIZE_STRING); if ($token) { @@ -1304,7 +1306,7 @@ function islandora_tokened_object_load($object_id, $map) { * islandora_tokened_datastream_load(DSID, DSID, PID) * * @param mixed $datastream_id - * %islandora_tokened_datastream @see islandora_datastream_load + * Load datastream from %islandora_tokened_datastream. * @param array $map * Used to extract the Fedora object's PID at $map[2]. * @@ -1313,7 +1315,7 @@ function islandora_tokened_object_load($object_id, $map) { * * @see islandora_datastream_load */ -function islandora_tokened_datastream_load($datastream_id, $map) { +function islandora_tokened_datastream_load($datastream_id, array $map) { return islandora_datastream_load($datastream_id, $map[2]); } @@ -1329,8 +1331,7 @@ function islandora_tokened_datastream_load($datastream_id, $map) { * @param string $datastream_id * The DSID of the datastream specified as '%islandora_datastream' to fetch * from the given object in the menu path identified by '%islandora_object'. - * - * @param mixed $object_id + * @param AbstractObject|string $object_id * The object to load the datastream from. This can be a Fedora PID or * an instantiated IslandoraAbstractObject as it implements __toString() * returning the PID. @@ -1365,7 +1366,7 @@ function islandora_datastream_load($datastream_id, $object_id) { * @return int * The datastreams version if found, NULL otherwise. */ -function islandora_get_islandora_datastream_version($object = NULL, $dsid = NULL, $datastream_file = NULL) { +function islandora_get_islandora_datastream_version(AbstractObject $object = NULL, $dsid = NULL, $datastream_file = NULL) { $return = NULL; // @TODO, need better check for $object if ($object && $object[$dsid]) { @@ -1500,15 +1501,15 @@ function islandora_delete_object(AbstractObject &$object) { /** * Delete's or purges the given datastream. * - * @throws Exception - * Which types are undefined, but more than likely because of the hooks - * there will be several kinds. - * * @param AbstractDatastream $datastream * The datastream to delete. * * @return bool * TRUE if successful, FALSE otherwise. + * + * @throws Exception + * Which types are undefined, but more than likely because of the hooks + * there will be several kinds. */ function islandora_delete_datastream(AbstractDatastream &$datastream) { $object = $datastream->parent; @@ -1641,7 +1642,7 @@ function islandora_entity_property_info() { * Implements hook_file_mimetype_mapping_alter(). * * Grab custom Islandora mime type list - * and add any missing ext/mimes to the Drupal mapping + * and add any missing ext/mimes to the Drupal mapping. */ function islandora_file_mimetype_mapping_alter(&$mapping) { module_load_include('inc', 'islandora', 'includes/mimetype.utils'); @@ -1668,7 +1669,7 @@ function islandora_file_mimetype_mapping_alter(&$mapping) { * @param string $op * String identifying an operation to check. Should correspond to a * permission declared via hook_permission(). - * @param AbstractObject $object + * @param AbstractObject|string $object * An object to check for permissions. * @param object $user * An optional loaded user object. Defaults to the global $user. @@ -1712,7 +1713,7 @@ function islandora_object_access($op, $object, $user = NULL) { * Denies according to PID namespace restrictions, then passes or denies * according to core Drupal permissions according to user_access(). */ -function islandora_islandora_object_access($op, $object, $user) { +function islandora_islandora_object_access($op, AbstractObject $object, $user) { module_load_include('inc', 'islandora', 'includes/utilities'); $access = (islandora_namespace_accessible($object->id) && user_access($op, $user)); if (($object->state != 'A') && variable_get('islandora_deny_inactive_and_deleted', FALSE)) { @@ -2003,7 +2004,7 @@ function islandora_islandora_datastream_access($op, AbstractDatastream $datastre * Access for submenu items. * * @param string $package_name - * Name of the package + * Name of the package. * * @return bool * Access granted @@ -2217,7 +2218,7 @@ function islandora_islandora_breadcrumbs_backends() { } /** - * Implements hook_islandora_solution_pack_child_relationships + * Implements hook_islandora_solution_pack_child_relationships(). */ function islandora_islandora_solution_pack_child_relationships($cmodels) { // Return empty arrays from core implementation so that these keys always diff --git a/islandora.rules.inc b/islandora.rules.inc index 2ebaa519..569efff4 100644 --- a/islandora.rules.inc +++ b/islandora.rules.inc @@ -2,7 +2,7 @@ /** * @file - * Does rule type stuff, + * Does rule type stuff,. */ /** @@ -158,7 +158,6 @@ function islandora_rules_base_xpath_parameters() { ); } - /** * Implements hook_rules_condition_info(). */ @@ -397,7 +396,7 @@ function islandora_rules_datastream_load_domxpath($string) { * A loaded Drupal taxonomy vocabulary object, in which terms are understood * to be namespace prefixes and descriptions are the namespace URIs. */ -function islandora_rules_datastream_load_namespace_vocab($xpath, $xpath_vocab) { +function islandora_rules_datastream_load_namespace_vocab(DOMXPath $xpath, $xpath_vocab) { foreach (taxonomy_get_tree($xpath_vocab->vid, 0, 1, FALSE) as $term) { $xpath->registerNamespace($term->name, $term->description); } @@ -499,7 +498,7 @@ function islandora_rules_data_info() { * The object on which to set the property, described by $info['property']. * @param array $options * An array of options... Not sure how it's used? Not touched by us, in any - * case. :P + * case. :P. * @param string $name * The name of the property to set, as used by Rules. * @param string $type @@ -510,7 +509,7 @@ function islandora_rules_data_info() { * - property: A string indicate the actual property on the $data we wish to * set. */ -function islandora_rules_property_get($data, array $options, $name, $type, $info) { +function islandora_rules_property_get($data, array $options, $name, $type, array $info) { return $data->$info['property']; } @@ -536,7 +535,7 @@ function islandora_rules_property_get($data, array $options, $name, $type, $info * - property: A string indicate the actual property on the $data we wish to * set. */ -function islandora_rules_property_set(&$data, $name, $value, $langcode, $type, $info) { +function islandora_rules_property_set(&$data, $name, $value, $langcode, $type, array $info) { $data->$info['property'] = $value; } diff --git a/tests/authtokens.test b/tests/authtokens.test index 352689e2..4f52c1ec 100644 --- a/tests/authtokens.test +++ b/tests/authtokens.test @@ -5,6 +5,9 @@ * Test Authentication Tokens. */ +/** + * Auth token tests. + */ class IslandoraAuthtokensTestCase extends IslandoraWebTestCase { /** @@ -18,13 +21,6 @@ class IslandoraAuthtokensTestCase extends IslandoraWebTestCase { ); } - /** - * Set up data for the tests. - */ - public function setUp() { - parent::setUp(); - } - /** * Test redeeming invalid tokens. */ @@ -107,4 +103,5 @@ class IslandoraAuthtokensTestCase extends IslandoraWebTestCase { public function testTokenedViewDatastreamWithXacml() { // We need to add this test. } + } diff --git a/tests/datastream_cache.test b/tests/datastream_cache.test index 8118c08a..42c37e88 100644 --- a/tests/datastream_cache.test +++ b/tests/datastream_cache.test @@ -5,6 +5,9 @@ * Tests to verify the cache headers we provide. */ +/** + * Datastream caching tests. + */ class IslandoraDatastreamCacheTestCase extends IslandoraWebTestCase { /** @@ -134,7 +137,7 @@ class IslandoraDatastreamCacheTestCase extends IslandoraWebTestCase { )); $this->assertResponse(200); - // Test combination of If-None-Match and If-Modified-Since + // Test combination of If-None-Match and If-Modified-Since. $result = $this->drupalGet("islandora/object/{$object->id}/datastream/{$datastream->id}/view", array(), array( 'If-Modified-Since: ' . $datastream->createdDate->format('D, d M Y H:i:s \G\M\T'), format_string('If-None-Match: "!checksum"', array( @@ -157,4 +160,5 @@ class IslandoraDatastreamCacheTestCase extends IslandoraWebTestCase { )); $this->assertResponse(200); } + } diff --git a/tests/datastream_validator_tests.test b/tests/datastream_validator_tests.test index 40615ae4..d0176485 100644 --- a/tests/datastream_validator_tests.test +++ b/tests/datastream_validator_tests.test @@ -1,4 +1,5 @@ addResult(FALSE, 'boo you failed', $this->getAssertionCall()); } + } /** @@ -109,8 +111,8 @@ class DatastreamValidatorResultTestCase extends IslandoraWebTestCase { $this->assertTrue(substr($first_caller['file'], -48) === substr($second_caller['file'], -48), "Fail caller file matches the pass caller file.", 'Islandora'); $this->assertTrue($first_caller['function'] === 'TestDatastreamValidator->assertSomethingSuccessfully()', "Correct pass caller function returned (actual: {$first_caller['function']}; expected: TestDatastreamValidator->assertSomethingSuccessfully()).", 'Islandora'); $this->assertTrue($second_caller['function'] === 'TestDatastreamValidator->assertSomethingFailed()', "Correct fail caller function returned (actual: {$second_caller['function']}; expected: TestDatastreamValidator->assertSomethingFailed()).", 'Islandora'); - $this->assertTrue($first_caller['line'] === 16, "Correct pass line number returned (actual: {$first_caller['line']}; expected: 16).", 'Islandora'); - $this->assertTrue($second_caller['line'] === 23, "Correct fail line number returned (actual: {$second_caller['line']}; expected: 23).", 'Islandora'); + $this->assertTrue($first_caller['line'] === 17, "Correct pass line number returned (actual: {$first_caller['line']}; expected: 17).", 'Islandora'); + $this->assertTrue($second_caller['line'] === 24, "Correct fail line number returned (actual: {$second_caller['line']}; expected: 24).", 'Islandora'); } } @@ -222,7 +224,7 @@ class PrefixDatastreamValidatorTestCase extends IslandoraWebTestCase { 'dsid' => $prefix, 'path' => $this->path . $filename, 'control_group' => 'M', - ), + ), ); $object = $this->ingestConstructedObject(array(), $datastreams); return $object; @@ -273,4 +275,5 @@ class PrefixDatastreamValidatorTestCase extends IslandoraWebTestCase { } } } + } diff --git a/tests/datastream_versions.test b/tests/datastream_versions.test index 6b22bd95..6d5ffb59 100644 --- a/tests/datastream_versions.test +++ b/tests/datastream_versions.test @@ -2,9 +2,12 @@ /** * @file - * Tests that datastream versions code works as intended + * Tests that datastream versions code works as intended. */ +/** + * Datastream version tests. + */ class IslandoraDatastreamVersionTestCase extends IslandoraWebTestCase { /** @@ -195,4 +198,5 @@ class IslandoraDatastreamVersionTestCase extends IslandoraWebTestCase { $this->drupalGet("islandora/object/{$this->pid}/datastream/DC/version/0/delete"); $this->assertResponse(404); } + } diff --git a/tests/derivatives.test b/tests/derivatives.test index 95377a75..bba83b2f 100644 --- a/tests/derivatives.test +++ b/tests/derivatives.test @@ -11,6 +11,9 @@ * To make sense of these tests reference islandora_derivatives_test.module. */ +/** + * Derivative hook tests. + */ class IslandoraDerivativesTestCase extends IslandoraWebTestCase { /** @@ -93,8 +96,8 @@ class IslandoraDerivativesTestCase extends IslandoraWebTestCase { global $_islandora_derivative_test_ingest_method; $_islandora_derivative_test_ingest_method = 'ingestDatastream'; $object = $this->constructBaseObject(); - $object = $this->constructDERIVDatastream($object); - $this->constructNOSOURCEDatastream($object); + $object = $this->constructDerivDatastream($object); + $this->constructNoSourceDatastream($object); $islandora_object = islandora_object_load($this->pid); islandora_do_derivatives($islandora_object, array( 'force' => TRUE, @@ -125,7 +128,7 @@ class IslandoraDerivativesTestCase extends IslandoraWebTestCase { global $_islandora_derivative_test_ingest_method; $_islandora_derivative_test_ingest_method = 'ingestDatastream'; $object = $this->constructBaseObject(); - $this->constructDERIVDatastream($object); + $this->constructDerivDatastream($object); // Need to do this as Tuque caches. $connection = islandora_get_tuque_connection(); $connection->cache->resetCache(); @@ -156,11 +159,11 @@ class IslandoraDerivativesTestCase extends IslandoraWebTestCase { /** * Tests derivative hook filtering based upon source_dsid. */ - public function testDerivativeFilteringOnSourceDSID() { + public function testDerivativeFilteringOnSourceDsid() { global $_islandora_derivative_test_derivative_functions; $_islandora_derivative_test_derivative_functions = array(); $object = $this->constructBaseObject(); - $this->constructSOMEWEIRDDATASTREAMDatastream($object); + $this->constructSomeWeirdDatastream($object); $object = islandora_object_load($this->pid); islandora_do_derivatives($object, array( 'source_dsid' => 'OBJ', @@ -182,7 +185,7 @@ class IslandoraDerivativesTestCase extends IslandoraWebTestCase { /** * Tests that only functions were the source_dsid is NULL are fired. */ - public function testNULLSourceDSID() { + public function testNullSourceDsid() { global $_islandora_derivative_test_derivative_functions; $_islandora_derivative_test_derivative_functions = array(); $this->constructBaseObject(); @@ -205,11 +208,11 @@ class IslandoraDerivativesTestCase extends IslandoraWebTestCase { /** * Tests that when no source_dsid all derivative functions are called. */ - public function testNoSourceDSIDNoForce() { + public function testNoSourceDsidNoForce() { global $_islandora_derivative_test_derivative_functions; $_islandora_derivative_test_derivative_functions = array(); $object = $this->constructBaseObject(); - $object = $this->constructSOMEWEIRDDATASTREAMDatastream($object); + $object = $this->constructSomeWeirdDatastream($object); $object = islandora_object_load($this->pid); islandora_do_derivatives($object, array()); $this->assertDatastreams($object, array( @@ -227,11 +230,11 @@ class IslandoraDerivativesTestCase extends IslandoraWebTestCase { /** * Tests that when no source_dsid all derivative functions are called. */ - public function testNoSourceDSIDForce() { + public function testNoSourceDsidForce() { global $_islandora_derivative_test_derivative_functions; $_islandora_derivative_test_derivative_functions = array(); $object = $this->constructBaseObject(); - $this->constructSOMEWEIRDDATASTREAMDatastream($object); + $this->constructSomeWeirdDatastream($object); $object = islandora_object_load($this->pid); islandora_do_derivatives($object, array( 'force' => TRUE, @@ -290,7 +293,7 @@ class IslandoraDerivativesTestCase extends IslandoraWebTestCase { * @return AbstractObject * The modified AbstractObject. */ - public function constructDERIVDatastream(AbstractObject $object) { + public function constructDerivDatastream(AbstractObject $object) { $dsid = 'DERIV'; $ds = $object->constructDatastream($dsid); $ds->label = 'Test'; @@ -308,7 +311,7 @@ class IslandoraDerivativesTestCase extends IslandoraWebTestCase { * @return AbstractObject * The modified AbstractObject. */ - public function constructNOSOURCEDatastream(AbstractObject $object) { + public function constructNoSourceDatastream(AbstractObject $object) { $dsid = 'NOSOURCE'; $ds = $object->constructDatastream($dsid); $ds->label = 'Test'; @@ -326,7 +329,7 @@ class IslandoraDerivativesTestCase extends IslandoraWebTestCase { * @return AbstractObject * The modified AbstractObject. */ - public function constructSOMEWEIRDDATASTREAMDatastream(AbstractObject $object) { + public function constructSomeWeirdDatastream(AbstractObject $object) { $dsid = 'SOMEWEIRDDATASTREAM'; $ds = $object->constructDatastream($dsid); $ds->label = 'Test'; @@ -334,4 +337,5 @@ class IslandoraDerivativesTestCase extends IslandoraWebTestCase { $object->ingestDatastream($ds); return $object; } + } diff --git a/tests/hooked_access.test b/tests/hooked_access.test index 894eee80..f2a90a9a 100644 --- a/tests/hooked_access.test +++ b/tests/hooked_access.test @@ -11,6 +11,9 @@ * To make sense of these tests reference islandora_hooked_access_test.module. */ +/** + * Access hook tests. + */ class IslandoraHookedAccessTestCase extends IslandoraWebTestCase { /** @@ -91,20 +94,6 @@ class IslandoraHookedAccessTestCase extends IslandoraWebTestCase { } } - /** - * Deny an object permission check without an object. - */ - public function testDenyBadObject() { - $this->assertFalse(islandora_object_access($this->op, 'this is not an object'), 'Deny bad objects.'); - } - - /** - * Deny a datastream permission check without a datastream. - */ - public function testDenyBadDatastream() { - $this->assertFalse(islandora_datastream_access($this->op, 'this is not a datastream'), 'Deny bad datastreams.'); - } - /** * Allow operation on object. */ @@ -146,4 +135,5 @@ class IslandoraHookedAccessTestCase extends IslandoraWebTestCase { public function testDenyDatastreamExplicit() { $this->assertFalse(islandora_datastream_access($this->denied_op, $this->object['asdf']), 'Explicit denial of datastream access.'); } + } diff --git a/tests/hooks.test b/tests/hooks.test index 073d0349..1e35b962 100644 --- a/tests/hooks.test +++ b/tests/hooks.test @@ -11,6 +11,9 @@ * To make sense of these tests reference islandora_hooks_test.module. */ +/** + * Islandora hooks tests. + */ class IslandoraHooksTestCase extends IslandoraWebTestCase { /** @@ -256,4 +259,5 @@ class IslandoraHooksTestCase extends IslandoraWebTestCase { $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); } + } diff --git a/tests/includes/datastream_validators.inc b/tests/includes/datastream_validators.inc index b8ff785e..0f29bbb9 100644 --- a/tests/includes/datastream_validators.inc +++ b/tests/includes/datastream_validators.inc @@ -1,4 +1,5 @@ addResult(TRUE, "{$this->datastream} datastream asserts that it is a valid Intel-byte-orderded TIF/TIFF file."); } elseif ($datastream_header_hex == "4d4d002a") { @@ -248,7 +249,7 @@ class TIFFDatastreamValidator extends DatastreamValidator { * @return string * The ... thing I just wrote up there. */ - protected function getTIFFHeaderHex() { + protected function getTiffHeaderHex() { return substr(bin2hex($this->datastreamContent), 0, 8); } @@ -265,7 +266,7 @@ class JP2DatastreamValidator extends DatastreamValidator { * JP2 files begin with an offset header at the second 32-bit integer, * 0x6A502020. This header is in all .jp2s, and we check for it here. */ - protected function assertJP2Header() { + protected function assertJp2Header() { $assertion = substr(bin2hex($this->datastreamContent), 8, 8) == '6a502020'; $pass = "Datastream {$this->datastream} contains the appropriate JP2 header."; $fail = "Datastream {$this->datastream} does not contain the appropriate JP2 header."; @@ -279,13 +280,14 @@ class JP2DatastreamValidator extends DatastreamValidator { * JP2 files have their codestream capped with a marker, 0xFFD9. We're just * checking for it here to see if the .jp2 encoder finished okay. */ - protected function assertJP2Marker() { + protected function assertJp2Marker() { $assertion = substr(bin2hex($this->datastreamContent), strlen(bin2hex($this->datastreamContent)) - 4, 4) == 'ffd9'; $pass = "Datastream {$this->datastream} contains the appropriate JP2 ending marker."; $fail = "Datastream {$this->datastream} does not contain the appropriate JP2 ending marker. If this is the only JP2 validator that failed, it is likely that derivative generation was interrupted."; $message = $assertion ? $pass : $fail; $this->addResult($assertion, $message); } + } /** @@ -296,7 +298,7 @@ class PDFDatastreamValidator extends DatastreamValidator { /** * Validates the PDF signature. */ - protected function assertPDFSignature() { + protected function assertPdfSignature() { $assertion = substr($this->datastreamContent, 0, 5) == '%PDF-'; $pdf_version = substr($this->datastreamContent, 5, 3); $pass = "{$this->datastream} datastream asserts that it is a valid PDF file using PDF version {$pdf_version}"; @@ -308,7 +310,7 @@ class PDFDatastreamValidator extends DatastreamValidator { /** * Counts the number of signatures in this PDF file and asserts there are any. */ - protected function assertPDFStreamCount() { + protected function assertPdfStreamCount() { $pdf_stream_count = substr_count(bin2hex($this->datastreamContent), '0a73747265616d0a'); $assertion = $pdf_stream_count !== 0; $pass = "{$this->datastream} datastream reports the existence of {$pdf_stream_count} PDF streams. Note that an extremely low number could still indicate corruption."; @@ -319,17 +321,15 @@ class PDFDatastreamValidator extends DatastreamValidator { /** * Validates the PDF closing tag. - * - * @return bool - * TRUE if it was present; FALSE otherwise. */ - protected function assertPDFClosingTag() { + protected function assertPdfClosingTag() { $assertion = strpos(bin2hex($this->datastreamContent), '0a2525454f460a') == TRUE; $pass = "{$this->datastream} datastream reports the existence of the closing 'EOF' tag required at the end of PDFs"; $fail = "{$this->datastream} datastream does not contain the closing 'EOF' tag. If this is the only PDF validation that failed, it is likely that derivative generation was interrupted."; $message = $assertion ? $pass : $fail; $this->addResult($assertion, $message); } + } /** @@ -340,6 +340,7 @@ class PDFDatastreamValidator extends DatastreamValidator { * integer representing the number of times it should appear in the datastream. */ class TextDatastreamValidator extends DatastreamValidator { + /** * Constructor override; blow up if we don't have our two values. */ @@ -369,6 +370,7 @@ class TextDatastreamValidator extends DatastreamValidator { protected function getTextStringCount() { return substr_count($this->datastreamContent, $this->params[0]); } + } /** @@ -401,7 +403,7 @@ class WAVDatastreamValidator extends DatastreamValidator { /** * Asserts that the datastream contains a valid WAV signature. */ - protected function assertWAVSignature() { + protected function assertWavSignature() { $signatures = str_split(substr($this->datastreamContent, 0, 24), 8); $assertion = $signatures[0] == '52494646' && $signatures[2] == '57415645'; $pass = "Header of the {$this->datastream} datastream contains a valid file signature."; @@ -413,7 +415,7 @@ class WAVDatastreamValidator extends DatastreamValidator { /** * Asserts that the chunksize in the header is correct. */ - protected function assertWAVChunkSize() { + protected function assertWavChunkSize() { $assertion = islandora_hex2int(substr($this->datastreamContent, 8, 8)) === 36 + self::getDataSubChunkSize(); $pass = "{$this->datastream} datastream chunksize in WAV header is correct"; $fail = "{$this->datastream} datastream chunksize in WAV header does not match actual chunksize."; @@ -424,7 +426,7 @@ class WAVDatastreamValidator extends DatastreamValidator { /** * Asserts that the datastream contains a 'fmt' subchunk. */ - protected function assertWAVFmtSubChunk() { + protected function assertWavFmtSubChunk() { $assertion = substr($this->datastreamContent, 24, 8) === '666d7420'; $pass = "{$this->datastream} datastream contains a 'fmt' subchunk."; $fail = "{$this->datastream} datastream is missing the required 'fmt' subchunk."; @@ -435,7 +437,7 @@ class WAVDatastreamValidator extends DatastreamValidator { /** * Asserts that the byterate reported by the WAV header is valid. */ - protected function assertWAVByteRate() { + protected function assertWavByteRate() { $wav_samplerate = islandora_hex2int(substr($this->datastreamContent, 48, 8)); $assertion = islandora_hex2int(substr($this->datastreamContent, 56, 8)) === $wav_samplerate * self::getNumChannels() * self::getBytesPerSample(); $pass = "{$this->datastream} datastream byterate in the WAV header is correct."; @@ -447,7 +449,7 @@ class WAVDatastreamValidator extends DatastreamValidator { /** * Asserts that the block alignment is correct. */ - protected function assertWAVBlockAlignment() { + protected function assertWavBlockAlignment() { $assertion = islandora_hex2int(substr($this->datastreamContent, 64, 4)) === self::getNumChannels() * self::getBytesPerSample(); $pass = "{$this->datastream} datastream block alignment is set correctly."; $fail = "{$this->datastream} datastream block alignment is off."; @@ -460,7 +462,7 @@ class WAVDatastreamValidator extends DatastreamValidator { * * Also asserts that the subchunk size is correct. */ - protected function assertWAVDataSubChunk() { + protected function assertWavDataSubChunk() { if (substr($this->datastreamContent, 72, 8) !== '64617461') { $this->addResult(FALSE, "{$this->datastream} datastream is missing the 'data' subchunk."); return; @@ -505,6 +507,7 @@ class WAVDatastreamValidator extends DatastreamValidator { protected function getDataSubChunkSize() { return islandora_hex2int(substr($this->datastreamContent, 80, 8)); } + } /** @@ -526,7 +529,7 @@ class MP3DatastreamValidator extends DatastreamValidator { * breaking my own rules here and using a single assert function so that I * can handle the weird logic. */ - protected function assertValidMP3() { + protected function assertValidMp3() { $this->datastreamContent = bin2hex($this->datastreamContent); // If it's not a VBR MP3, we don't have to check much, so let's get that @@ -612,7 +615,7 @@ class MP4DatastreamValidator extends DatastreamValidator { /** * Asserts that the datastream is ISO-formatted video. */ - protected function assertISOVideo() { + protected function assertIsoVideo() { $mp4_ftyp = substr(strpos($this->datastreamContent, 'ftyp'), 4, 4); $assertion = strpos($this->datastreamContent, 'ftyp') !== 0; $pass = "{$this->datastream} datastream asserts that it is a valid ISO-formatted video file using ftyp {$mp4_ftyp}"; @@ -620,6 +623,7 @@ class MP4DatastreamValidator extends DatastreamValidator { $message = $assertion ? $pass : $fail; $this->addResult($assertion, $message); } + } /** @@ -636,7 +640,7 @@ class OGGDatastreamValidator extends DatastreamValidator { /** * Asserts that the datastream contains ogg pages. */ - protected function assertOGGPages() { + protected function assertOggPages() { $ogg_pages = substr_count($this->datastreamContent, 'OggS'); $assertion = $ogg_pages !== 0; $pass = "{$this->datastream} datastream asserts that it contains {$ogg_pages} Ogg pages (even a very small file should contain several)."; @@ -666,6 +670,7 @@ class OGGDatastreamValidator extends DatastreamValidator { $message = $assertion ? $pass : $fail; $this->addResult($assertion, $message); } + } /** @@ -683,7 +688,7 @@ class MKVDatastreamValidator extends DatastreamValidator { /** * Asserts that the datastream is an EBML-format file. */ - protected function assertEBMLFormat() { + protected function assertEbmlFormat() { $assertion = substr(bin2hex($this->datastreamContent), 0, 8) == '1a45dfa3'; $pass = "{$this->datastream} datastream asserts that it is an EBML-formatted file"; $fail = "{$this->datastream} datastream is not an EBML-formatted file."; @@ -701,4 +706,5 @@ class MKVDatastreamValidator extends DatastreamValidator { $message = $assertion ? $pass : $fail; $this->addResult($assertion, $message); } + } diff --git a/tests/includes/islandora_unit_test_case.inc b/tests/includes/islandora_unit_test_case.inc index da0a8a71..0f06b8ae 100644 --- a/tests/includes/islandora_unit_test_case.inc +++ b/tests/includes/islandora_unit_test_case.inc @@ -1,9 +1,13 @@ FALSE); $utilities = new IslandoraTestUtilities($this->configuration, $params); @@ -40,7 +44,7 @@ class IslandoraUnitTestCase extends DrupalUnitTestCase { * @param IslandoraTestUtilities $utility * An instance of IslandoraTestUtilities with populated results. */ - public function parseUtilityResults($utility) { + public function parseUtilityResults(IslandoraTestUtilities $utility) { foreach ($utility->getResults() as $result) { $this->assert($result->getType(), $result->getMessage(), 'Islandora', $result->getCaller()); } diff --git a/tests/includes/islandora_web_test_case.inc b/tests/includes/islandora_web_test_case.inc index 5e422418..57b0995a 100644 --- a/tests/includes/islandora_web_test_case.inc +++ b/tests/includes/islandora_web_test_case.inc @@ -5,6 +5,9 @@ * Defines the class IslandoraWebTestCase, which allows tests to access Fedora. */ +/** + * Islandora specific state for WebTestCase. + */ class IslandoraWebTestCase extends DrupalWebTestCase { /** @@ -43,7 +46,7 @@ class IslandoraWebTestCase extends DrupalWebTestCase { * @return bool * TRUE if the result was a pass, or FALSE otherwise. */ - public function __call($method, $args) { + public function __call($method, array $args) { module_load_include('inc', 'islandora', 'tests/includes/utilities'); $params = array( 'logged_in_user' => $this->loggedInUser, @@ -65,7 +68,7 @@ class IslandoraWebTestCase extends DrupalWebTestCase { * @param IslandoraTestUtilities $utility * An instance of IslandoraTestUtilities with populated results. */ - public function parseUtilityResults($utility) { + public function parseUtilityResults(IslandoraTestUtilities $utility) { foreach ($utility->getResults() as $result) { $this->assert($result->getType(), $result->getMessage(), 'Islandora', $result->getCaller()); } @@ -253,9 +256,9 @@ class IslandoraWebTestCase extends DrupalWebTestCase { * Deletes an object using the PID. This does the deletion using the UI. * * @param string $pid - * The PID of the collection to be deleted + * The PID of the collection to be deleted. * @param string $button - * The label of the first 'Delete' button + * The label of the first 'Delete' button. * @param bool $safety * If TRUE, this will only delete objects owned by users in $this->users. * @@ -284,7 +287,7 @@ class IslandoraWebTestCase extends DrupalWebTestCase { } } - /** + /* * These are a few quick helper functions to fill in a gap in the standard * DrupalWebTestCase where no function exists to test for the simple existence * or non-existence of an error. @@ -373,8 +376,6 @@ class IslandoraWebTestCase extends DrupalWebTestCase { * button labels that don't have the ID we want, so that the only one left * with the correct label is the one with the right ID. * - * @see DrupalWebTestCase::drupalPost() - * * @param string $path * Location of the post form. * @param array $edit @@ -388,15 +389,17 @@ class IslandoraWebTestCase extends DrupalWebTestCase { * @param array $headers * An array containing additional HTTP request headers, each formatted as * "name: value". - * @param null $form_html_id + * @param string $form_html_id * (optional) HTML ID of the form to be submitted. - * @param null $extra_post + * @param string $extra_post * (optional) A string of additional data to append to the POST submission. * * @return bool|string * The content from the POST request's curlExec, or FALSE on fail. + * + * @see DrupalWebTestCase::drupalPost() */ - public function drupalPostByID($path, $edit, $submit, $id, array $options = array(), array $headers = array(), $form_html_id = NULL, $extra_post = NULL) { + public function drupalPostById($path, array $edit, $submit, $id, array $options = array(), array $headers = array(), $form_html_id = NULL, $extra_post = NULL) { $buttons = $this->xpath("//input[@type=\"submit\" and @value=\"{$submit}\"]"); if (empty($buttons)) { $this->fail("No buttons found on the page with value '$submit'"); diff --git a/tests/includes/test_utility_abstraction.inc b/tests/includes/test_utility_abstraction.inc index aa09004b..dad96d92 100644 --- a/tests/includes/test_utility_abstraction.inc +++ b/tests/includes/test_utility_abstraction.inc @@ -1,4 +1,5 @@ type; } + } /** diff --git a/tests/includes/utilities.inc b/tests/includes/utilities.inc index eefae4cc..2549d21b 100644 --- a/tests/includes/utilities.inc +++ b/tests/includes/utilities.inc @@ -1,4 +1,5 @@ configuration = $configuration; $this->params = $params; $connection = new RepositoryConnection($this->configuration['fedora_url'], $this->configuration['admin_user'], $this->configuration['admin_pass']); @@ -111,7 +115,7 @@ class IslandoraTestUtilities extends IslandoraTestUtilityClass { * @return bool * TRUE on success, FALSE on fail. */ - public function assertDatastreams($object, array $datastreams) { + public function assertDatastreams(AbstractObject $object, array $datastreams) { if (!self::assertFedoraObject($object)) { $this->addResult(FALSE, "Failed. Object passed in is invalid.", 'Islandora'); } @@ -136,7 +140,7 @@ class IslandoraTestUtilities extends IslandoraTestUtilityClass { * @param array $datastreams * An array of datastreams to confirm not present. */ - public function assertNoDatastreams($object, array $datastreams) { + public function assertNoDatastreams(AbstractObject $object, array $datastreams) { if (!self::assertFedoraObject($object)) { $this->addResult(FALSE, "Failed. Object passed in is invalid.", 'Islandora'); return; diff --git a/tests/ingest.test b/tests/ingest.test index 173b926f..7cc7069d 100644 --- a/tests/ingest.test +++ b/tests/ingest.test @@ -11,6 +11,9 @@ * To make sense of these tests reference islandora_hooks_test.module. */ +/** + * Ingest tests. + */ class IslandoraIngestsTestCase extends IslandoraWebTestCase { /** diff --git a/tests/islandora_derivatives_test.module b/tests/islandora_derivatives_test.module index 91ef8fef..a703b82f 100644 --- a/tests/islandora_derivatives_test.module +++ b/tests/islandora_derivatives_test.module @@ -71,6 +71,7 @@ function islandora_derivatives_test_some_cmodel_islandora_derivative_alter(&$der * An AbstractObject representing a Fedora object. * @param bool $force * Whether or not derivative generation is to be forced. + * * @return array * An array detailing the success of the operation. * @@ -131,6 +132,7 @@ function islandora_derivatives_test_create_stanley_datastream(AbstractObject $ob * An AbstractObject representing a Fedora object. * @param bool $force * Whether or not derivative generation is to be forced. + * * @return array * An array detailing the success of the operation. * @@ -226,13 +228,13 @@ function islandora_derivatives_test_add_datastream(AbstractObject $object, $dsid /** * Returns a message if we failed to add a derivative. * - * @see hook_islandora_derivative() - * * @param string $message * The error message to be returned back. * * @return array * An array describing the outcome of our failure. + * + * @see hook_islandora_derivative() */ function islandora_derivatives_test_failed_adding($message) { return array( diff --git a/tests/islandora_hooked_access_test.module b/tests/islandora_hooked_access_test.module index 6f5861f7..efbc29e6 100644 --- a/tests/islandora_hooked_access_test.module +++ b/tests/islandora_hooked_access_test.module @@ -2,7 +2,7 @@ /** * @file - * Hook implementations tested in hooked_access.test + * Hook implementations tested in hooked_access.test. */ /** diff --git a/tests/islandora_hooks_test.module b/tests/islandora_hooks_test.module index d602cbfd..47ec396d 100644 --- a/tests/islandora_hooks_test.module +++ b/tests/islandora_hooks_test.module @@ -2,7 +2,7 @@ /** * @file - * Implements hooks that get tested by islandora_hooks.test + * Implements hooks that get tested by islandora_hooks.test. */ /** @@ -112,7 +112,8 @@ function islandora_hooks_test_islandora_object_ingested(AbstractObject $object) function islandora_hooks_test_islandora_object_modified(AbstractObject $object) { if ($object->id == 'test:testModifiedObjectHook') { $_SESSION['islandora_hooks']['hook'][ISLANDORA_OBJECT_MODIFIED_HOOK] = TRUE; - if ($_SESSION['islandora_hooks']['iteration'][ISLANDORA_OBJECT_MODIFIED_HOOK]++ < 3) { + while ($_SESSION['islandora_hooks']['iteration'][ISLANDORA_OBJECT_MODIFIED_HOOK] < 3) { + $_SESSION['islandora_hooks']['iteration'][ISLANDORA_OBJECT_MODIFIED_HOOK] += 1; $new_label = 'New Label! + ' . $_SESSION['islandora_hooks']['iteration'][ISLANDORA_OBJECT_MODIFIED_HOOK]; $object->label = $new_label; } @@ -143,7 +144,8 @@ function islandora_hooks_test_islandora_datastream_ingested(AbstractObject $obje function islandora_hooks_test_islandora_datastream_modified(AbstractObject $object, AbstractDatastream $datastream, array $params) { if ($object->id == 'test:testModifiedDatastreamHook' && $datastream->id == "TEST") { $_SESSION['islandora_hooks']['hook'][ISLANDORA_DATASTREAM_MODIFIED_HOOK] = TRUE; - if ($_SESSION['islandora_hooks']['iteration'][ISLANDORA_DATASTREAM_MODIFIED_HOOK]++ < 3) { + while ($_SESSION['islandora_hooks']['iteration'][ISLANDORA_DATASTREAM_MODIFIED_HOOK] < 3) { + $_SESSION['islandora_hooks']['iteration'][ISLANDORA_DATASTREAM_MODIFIED_HOOK] += 1; $new_label = 'New Label! + ' . $_SESSION['islandora_hooks']['iteration'][ISLANDORA_DATASTREAM_MODIFIED_HOOK]; $datastream->label = $new_label; } diff --git a/tests/islandora_ingest_test.module b/tests/islandora_ingest_test.module index 8a6771d9..86281861 100644 --- a/tests/islandora_ingest_test.module +++ b/tests/islandora_ingest_test.module @@ -2,7 +2,7 @@ /** * @file - * Implements hooks that get tested by islandora_hooks.test + * Implements hooks that get tested by islandora_hooks.test. */ /** diff --git a/tests/islandora_manage_permissions.test b/tests/islandora_manage_permissions.test index e17d1501..8d2832d6 100644 --- a/tests/islandora_manage_permissions.test +++ b/tests/islandora_manage_permissions.test @@ -5,6 +5,9 @@ * Tests islandora permissions, and permission related funcitons. */ +/** + * Permission management tests. + */ class IslandoraPermissionsTestCase extends IslandoraWebTestCase { /** @@ -133,4 +136,5 @@ class IslandoraPermissionsTestCase extends IslandoraWebTestCase { $ret = islandora_user_access($object['DC'], array(ISLANDORA_VIEW_OBJECTS), array(), TRUE, $user); $this->assertTrue($ret, 'User access granted for matching permissions, with a datastream given instead of an object.'); } + } diff --git a/tests/islandora_manage_temp_file.test b/tests/islandora_manage_temp_file.test index 65003ed8..c2f35eae 100644 --- a/tests/islandora_manage_temp_file.test +++ b/tests/islandora_manage_temp_file.test @@ -5,6 +5,9 @@ * Tests for our islandora_temp_file_entry() function. */ +/** + * Temporary file management tests. + */ class IslandoraManageTempfileTestCase extends IslandoraWebTestCase { /** @@ -80,4 +83,5 @@ class IslandoraManageTempfileTestCase extends IslandoraWebTestCase { $this->baseFileHelper($this->tempUri); $this->baseFileHelper($this->publicUri); } + } diff --git a/tests/scripts/travis_scripts.sh b/tests/scripts/travis_scripts.sh index 5b6fa4e2..6ed1487d 100755 --- a/tests/scripts/travis_scripts.sh +++ b/tests/scripts/travis_scripts.sh @@ -1,15 +1,43 @@ #!/bin/bash # Common checks to get run during the 'script' section in Travis. +OUTPUT=0 + +# Make OUTPUT equal return code if return code is not 0 +function checkReturn { + if [ $1 -ne 0 ]; then + OUTPUT=$1 + fi +} # Lint -find $TRAVIS_BUILD_DIR -type f \( -name '*.php' -o -name '*.inc' -o -name '*.module' -o -name '*.install' -o -name '*.test' \) -exec php -l {} \; +find $TRAVIS_BUILD_DIR -type f \( -name '*.php' -o -name '*.inc' -o -name '*.module' -o -name '*.install' -o -name '*.test' \) -print0 | xargs -0 -n1 php -l +checkReturn $? # Check line endings $ISLANDORA_DIR/tests/scripts/line_endings.sh $TRAVIS_BUILD_DIR +checkReturn $? # Coding standards -drush coder-review --reviews=production,security,style,i18n,potx,sniffer $TRAVIS_BUILD_DIR +drush coder-review --reviews=production,security,style,i18n,potx $TRAVIS_BUILD_DIR +checkReturn $? + +# Skip code sniffer for PHP 5.3.3 +if [ "$(phpenv version-name)" != "5.3.3" ]; then + # Code sniffer + if [ -d "$HOME/.composer/vendor/drupal/coder/coder_sniffer/Drupal" ]; then + DRUPAL_SNIFFS=$HOME/.composer/vendor/drupal/coder/coder_sniffer/Drupal + elif [ -d "$HOME/.config/composer/vendor/drupal/coder/coder_sniffer/Drupal" ]; then + DRUPAL_SNIFFS=$HOME/.config/composer/vendor/drupal/coder/coder_sniffer/Drupal + else + DRUPAL_SNIFFS="Drupal" + fi + /usr/bin/phpcs --standard=$DRUPAL_SNIFFS --extensions="php,module,inc,install,test" --ignore="vendor,*.info,*.txt,*.md" $TRAVIS_BUILD_DIR + checkReturn $? +fi # Copy/paste detection phpcpd --names *.module,*.inc,*.test $TRAVIS_BUILD_DIR +checkReturn $? + +exit $OUTPUT diff --git a/tests/scripts/travis_setup.sh b/tests/scripts/travis_setup.sh index db50a52d..5e8e4543 100755 --- a/tests/scripts/travis_setup.sh +++ b/tests/scripts/travis_setup.sh @@ -25,37 +25,69 @@ export CATALINA_HOME='.' export JAVA_OPTS="-Xms1024m -Xmx1024m -XX:MaxPermSize=512m -XX:+CMSClassUnloadingEnabled -Djavax.net.ssl.trustStore=$CATALINA_HOME/fedora/server/truststore -Djavax.net.ssl.trustStorePassword=tomcat" # TODO: roll a Fedora 3.8.1 islandora_tomcat that doesn't require a rebuild. if [ $FEDORA_VERSION = "3.8.1" ]; then - export FEDORA_HOME=fedora + export FEDORA_HOME=$HOME/islandora_tomcat/fedora ./fedora/server/bin/fedora-rebuild.sh -r org.fcrepo.server.utilities.rebuild.SQLRebuilder fi ./bin/startup.sh -# Drush installation. cd $HOME -pear channel-discover pear.drush.org -pear upgrade --force Console_Getopt -pear upgrade --force pear -pear channel-discover pear.drush.org -wget http://alpha.library.yorku.ca/drush-6.3.tar.gz -tar xf drush-6.3.tar.gz -sudo mv drush-6.3 /opt/ -sudo ln -s /opt/drush-6.3/drush /usr/bin/drush -# PHPCS installation. -wget http://alpha.library.yorku.ca/PHP_CodeSniffer-1.5.6.tgz -pear install PHP_CodeSniffer-1.5.6.tgz +# Drush and PHPCS installation. +if [ "$(phpenv version-name)" == "5.3.3" ]; then + # No mod_openssl in Travis 5.3.3 boxes + composer config -g disable-tls true + composer config -g secure-http false + composer self-update + composer global require drush/drush:6.* + composer global require drupal/coder:7.* +else + composer global require drush/drush:7.* + composer global require drupal/coder +fi + +# Symlink the things +if [ -f "$HOME/.config/composer/vendor/bin/drush" ]; then + sudo ln -s $HOME/.config/composer/vendor/bin/drush /usr/bin/drush +elif [ -f "$HOME/.composer/vendor/bin/drush" ]; then + sudo ln -s $HOME/.composer/vendor/bin/drush /usr/bin/drush +else + echo "Could not find drush" + exit 1 +fi +/usr/bin/drush version + +if [ -f "$HOME/.config/composer/vendor/bin/phpcs" ]; then + sudo ln -s $HOME/.config/composer/vendor/bin/phpcs /usr/bin/phpcs +elif [ -f "$HOME/.composer/vendor/bin/phpcs" ]; then + sudo ln -s $HOME/.composer/vendor/bin/phpcs /usr/bin/phpcs +else + echo "Did not find phpcs" + exit 1 +fi +/usr/bin/phpcs --version # PHP Copy-Paste Detection installation. -wget http://alpha.library.yorku.ca/phpcpd.phar -sudo mv phpcpd.phar /usr/local/bin/phpcpd -sudo chmod +x /usr/local/bin/phpcpd +composer global require --dev sebastian/phpcpd +if [ -f "$HOME/.config/composer/vendor/bin/phpcpd" ]; then + sudo ln -s $HOME/.config/composer/vendor/bin/phpcpd /usr/local/bin/phpcpd +elif [ -f "$HOME/.composer/vendor/bin/phpcpd" ]; then + sudo ln -s $HOME/.composer/vendor/bin/phpcpd /usr/local/bin/phpcpd +else + echo "Did not find phpcpd" + exit 1 +fi +/usr/local/bin/phpcpd --version # Drupal installation. phpenv rehash drush dl --yes drupal cd drupal-* drush si minimal --db-url=mysql://drupal:drupal@localhost/drupal --yes -drush runserver --php-cgi=$HOME/.phpenv/shims/php-cgi localhost:8081 &>/tmp/drush_webserver.log & +if [ "$(phpenv version-name)" == "5.3.3" ]; then + drush runserver --php-cgi=$HOME/.phpenv/shims/php-cgi localhost:8081 &>/tmp/drush_webserver.log & +else + drush runserver localhost:8081 &>/tmp/drush_webserver.log & +fi # Add Islandora to the list of symlinked modules. ln -s $ISLANDORA_DIR sites/all/modules/islandora # Use our custom Travis test config for Simpletest. diff --git a/theme/islandora-dublin-core-description.tpl.php b/theme/islandora-dublin-core-description.tpl.php index 2ff54cdc..3150b7e7 100644 --- a/theme/islandora-dublin-core-description.tpl.php +++ b/theme/islandora-dublin-core-description.tpl.php @@ -1,4 +1,5 @@ -
> +
>