Issue #1280792 by julien, xjm, pingers, Niklas Fiekas: Fixed {trigger_assignments()}.hook has only 32 characters, is too short.

merge-requests/26/head
webchick 2012-01-30 23:04:21 -08:00
parent 060b016ae0
commit a66c4bbbd3
3 changed files with 46 additions and 2 deletions

View File

@ -57,7 +57,7 @@ function trigger_test_action_info() {
function trigger_test_trigger_info() {
// Register triggers that this module provides. The first is an additional
// node trigger and the second is our own, which should create a new tab
// on the trigger assignment page.
// on the trigger assignment page. The last tests long trigger names.
return array(
'node' => array(
'node_triggertest' => array(
@ -68,6 +68,9 @@ function trigger_test_trigger_info() {
'trigger_test_triggertest' => array(
'label' => t('Another test trigger is fired'),
),
'trigger_test_in_the_day_we_sweat_it_out_in_the_streets_of_a_runaway_american_dream' => array(
'label' => t('A test trigger with a name over 64 characters'),
),
),
);
}

View File

@ -14,7 +14,7 @@ function trigger_schema() {
'fields' => array(
'hook' => array(
'type' => 'varchar',
'length' => 32,
'length' => 128,
'not null' => TRUE,
'default' => '',
'description' => 'Primary Key: The name of the internal Drupal hook; for example, node_insert.',
@ -68,3 +68,11 @@ function trigger_update_7000() {
}
db_drop_field('trigger_assignments', 'op');
}
/**
* Implements hook_update_N().
*/
function trigger_update_7001() {
db_drop_primary_key('trigger_assignments');
db_change_field('trigger_assignments', 'hook', 'hook', array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => '', 'description' => 'Primary Key: The name of the internal Drupal hook; for example, node_insert.', ), array('primary key' => array('hook', 'aid')));
}

View File

@ -738,3 +738,36 @@ class TriggerOrphanedActionsTestCase extends DrupalWebTestCase {
$this->assertRaw(t('!post %title has been updated.', array('!post' => 'Basic page', '%title' => $edit["title"])), t('Make sure the Basic page can be updated with the missing trigger function.'));
}
}
/**
* Tests the trigger assign form.
*/
class TriggerAssignFormTestCase extends DrupalWebTestCase {
public static function getInfo() {
return array(
'name' => 'Trigger assignment form',
'description' => 'Test assigning new triggers using the administration form.',
'group' => 'Trigger',
);
}
function setUp() {
parent::setUp('trigger', 'trigger_test');
}
/**
* Tests submitting an action for a trigger with a long name.
*/
function testLongTrigger() {
$test_user = $this->drupalCreateUser(array('administer actions'));
$this->drupalLogin($test_user);
$action = 'trigger_test_generic_any_action';
$hash = drupal_hash_base64($action);
// Make sure a long hook name can be inserted.
$edit = array('aid' => $hash);
$this->drupalPost('admin/structure/trigger/trigger_test', $edit, t('Assign'), array(), array(), 'trigger-trigger-test-in-the-day-we-sweat-it-out-in-the-streets-of-a-runaway-american-dream-assign-form');
$this->assertText(t('Generic test action for any trigger'));
}
}