From 2484439643f86cbc2da3b4f391eb3e23e51fc94d Mon Sep 17 00:00:00 2001 From: Angie Byron Date: Sun, 18 Oct 2009 05:14:39 +0000 Subject: #595654 by sun: Fixed AJAX command 'settings' (with tests). --- modules/simpletest/tests/ajax_test.module | 59 +++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 modules/simpletest/tests/ajax_test.module (limited to 'modules/simpletest/tests/ajax_test.module') diff --git a/modules/simpletest/tests/ajax_test.module b/modules/simpletest/tests/ajax_test.module new file mode 100644 index 000000000..27bf3bf16 --- /dev/null +++ b/modules/simpletest/tests/ajax_test.module @@ -0,0 +1,59 @@ + 'ajax_render', + 'page callback' => 'ajax_test_render', + 'access callback' => TRUE, + 'type' => MENU_CALLBACK, + ); + $items['ajax-test/render-error'] = array( + 'title' => 'ajax_render_error', + 'page callback' => 'ajax_test_render_error', + 'access callback' => TRUE, + 'type' => MENU_CALLBACK, + ); + return $items; +} + +/** + * Menu callback; Copies $_GET['commands'] into $commands and ajax_render()s that. + * + * Additionally ensures that ajax_render() incorporates JavaScript settings + * by invoking drupal_add_js() with a dummy setting. + */ +function ajax_test_render() { + // Prepare AJAX commands. + $commands = array(); + if (!empty($_GET['commands'])) { + $commands = $_GET['commands']; + } + // Add a dummy JS setting. + drupal_add_js(array('ajax' => 'test'), 'setting'); + + // Output AJAX commands and end the request. + ajax_render($commands); +} + +/** + * Menu callback; Invokes ajax_render_error(). + * + * Optionally passes $_GET['message'] to ajax_render_error(). + */ +function ajax_test_render_error() { + $message = ''; + if (!empty($_GET['message'])) { + $message = $_GET['message']; + } + ajax_render_error($message); +} + -- cgit v1.2.3