From 4e90d24dd9ff1474bf679f70a351dee371e87b51 Mon Sep 17 00:00:00 2001 From: Angie Byron Date: Mon, 29 Nov 2010 03:00:50 +0000 Subject: #818660 by yched, sun: Provide an AJAX command to invoke simple jQuery methods. --- modules/simpletest/tests/ajax.test | 9 +++++++++ modules/simpletest/tests/ajax_forms_test.module | 19 +++++++++++++++++++ 2 files changed, 28 insertions(+) (limited to 'modules/simpletest') diff --git a/modules/simpletest/tests/ajax.test b/modules/simpletest/tests/ajax.test index 2788d4f90b77..2a2469334d39 100644 --- a/modules/simpletest/tests/ajax.test +++ b/modules/simpletest/tests/ajax.test @@ -211,6 +211,15 @@ class AJAXCommandsTestCase extends AJAXTestCase { ); $this->assertCommand($commands, $expected, "'data' AJAX command issued with correct key and value"); + // Tests the 'invoke' command. + $commands = $this->drupalPostAJAX($form_path, $edit, array('op' => t("AJAX invoke command: Invoke addClass() method."))); + $expected = array( + 'command' => 'invoke', + 'method' => 'addClass', + 'arguments' => array('error'), + ); + $this->assertCommand($commands, $expected, "'invoke' AJAX command issued with correct method and argument"); + // Tests the 'html' command. $commands = $this->drupalPostAJAX($form_path, $edit, array('op' => t("AJAX html: Replace the HTML in a selector."))); $expected = array( diff --git a/modules/simpletest/tests/ajax_forms_test.module b/modules/simpletest/tests/ajax_forms_test.module index 531c703fda68..21784dfa353c 100644 --- a/modules/simpletest/tests/ajax_forms_test.module +++ b/modules/simpletest/tests/ajax_forms_test.module @@ -176,6 +176,16 @@ function ajax_forms_test_ajax_commands_form($form, &$form_state) { '#suffix' => '
Data attached to this div.
', ); + // Shows the AJAX 'invoke' command. + $form['invoke_command_example'] = array( + '#value' => t("AJAX invoke command: Invoke addClass() method."), + '#type' => 'submit', + '#ajax' => array( + 'callback' => 'ajax_forms_test_advanced_commands_invoke_callback', + ), + '#suffix' => '
Original contents
', + ); + // Shows the AJAX 'html' command. $form['html_command_example'] = array( '#value' => t("AJAX html: Replace the HTML in a selector."), @@ -331,6 +341,15 @@ function ajax_forms_test_advanced_commands_data_callback($form, $form_state) { return array('#type' => 'ajax', '#commands' => $commands); } +/** + * AJAX callback for 'invoke'. + */ +function ajax_forms_test_advanced_commands_invoke_callback($form, $form_state) { + $commands = array(); + $commands[] = ajax_command_invoke('#invoke_div', 'addClass', array('error')); + return array('#type' => 'ajax', '#commands' => $commands); +} + /** * AJAX callback for 'html'. */ -- cgit v1.2.3