summaryrefslogtreecommitdiff
path: root/modules/trigger
diff options
context:
space:
mode:
authorwebchick <webchick@24967.no-reply.drupal.org>2012-01-30 23:04:21 -0800
committerwebchick <webchick@24967.no-reply.drupal.org>2012-01-30 23:04:21 -0800
commita66c4bbbd39f9fce14df6ad63805f30fae95b518 (patch)
tree6fdea5e664a2bd7eb3f8d186a190f09b1b137089 /modules/trigger
parent060b016ae05687454f19b3c92ff02675881bca01 (diff)
downloadbrdo-a66c4bbbd39f9fce14df6ad63805f30fae95b518.tar.gz
brdo-a66c4bbbd39f9fce14df6ad63805f30fae95b518.tar.bz2
Issue #1280792 by julien, xjm, pingers, Niklas Fiekas: Fixed {trigger_assignments()}.hook has only 32 characters, is too short.
Diffstat (limited to 'modules/trigger')
-rw-r--r--modules/trigger/tests/trigger_test.module5
-rw-r--r--modules/trigger/trigger.install10
-rw-r--r--modules/trigger/trigger.test33
3 files changed, 46 insertions, 2 deletions
diff --git a/modules/trigger/tests/trigger_test.module b/modules/trigger/tests/trigger_test.module
index 0e3f3f877..8152a06ae 100644
--- a/modules/trigger/tests/trigger_test.module
+++ b/modules/trigger/tests/trigger_test.module
@@ -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'),
+ ),
),
);
}
diff --git a/modules/trigger/trigger.install b/modules/trigger/trigger.install
index 9a172a2a0..ac3ef3c47 100644
--- a/modules/trigger/trigger.install
+++ b/modules/trigger/trigger.install
@@ -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')));
+}
diff --git a/modules/trigger/trigger.test b/modules/trigger/trigger.test
index 9a9a4ba28..f5a8962b6 100644
--- a/modules/trigger/trigger.test
+++ b/modules/trigger/trigger.test
@@ -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'));
+ }
+}