''], '/^
getContent());
if (!empty($regexp)) {
$this->assertRegExp($regexp, $response->getContent());
}
}
public function test_CallNotProvided() {
$request = new TestRequest();
$response = $request->post([], '/lib/exe/ajax.php');
$this->assertEquals('', $response->getContent());
}
public function test_UnknownCall() {
$call = 'unknownCALL';
$request = new TestRequest();
$response = $request->post(['call'=> $call], '/lib/exe/ajax.php');
$this->assertEquals("AJAX call '$call' unknown!\n", $response->getContent());
}
public function test_EventOnUnknownCall() {
global $EVENT_HANDLER;
$call = 'unknownCALL';
$request = new TestRequest();
// referenced data from event hook
$hookTriggered = false;
$eventDataTriggered = '';
$dataTriggered = '';
$postTriggered = '';
$hookTriggered_AFTER = false;
$eventDataTriggered_AFTER = '';
$dataTriggered_AFTER = '';
$postTriggered_AFTER = '';
$EVENT_HANDLER->register_hook('AJAX_CALL_UNKNOWN', 'BEFORE', null,
function($event, $data) use (&$hookTriggered, &$dataTriggered, &$eventDataTriggered, &$postTriggered) {
/** @var Doku_Event $event */
$hookTriggered = true;
$dataTriggered = $data;
$eventDataTriggered = $event->data;
$postTriggered = $GLOBALS['INPUT']->post->str('q');
$event->preventDefault();
$event->stopPropagation();
echo "captured event BEFORE\n";
}, 'some passed data'
);
$EVENT_HANDLER->register_hook('AJAX_CALL_UNKNOWN', 'AFTER', null,
function($event, $data) use (&$hookTriggered_AFTER , &$dataTriggered_AFTER , &$eventDataTriggered_AFTER , &$postTriggered_AFTER ) {
/** @var Doku_Event $event */
$hookTriggered_AFTER = true;
$dataTriggered_AFTER = $data;
$eventDataTriggered_AFTER = $event->data;
$postTriggered_AFTER = $GLOBALS['INPUT']->post->str('q');
$event->preventDefault();
$event->stopPropagation();
echo "captured event AFTER";
}, 'some passed data AFTER'
);
$response = $request->post(['call'=> $call, 'q' => 'some-post-param'], '/lib/exe/ajax.php');
// BEFORE
$this->assertEquals(true, $hookTriggered, 'Testing plugin did not trigger!');
$this->assertEquals('some passed data', $dataTriggered);
$this->assertEquals($call, $eventDataTriggered, 'Must pass call name as event data');
$this->assertEquals('some-post-param', $postTriggered);
// AFTER
$this->assertEquals(true, $hookTriggered_AFTER, 'Testing plugin did not trigger!');
$this->assertEquals('some passed data AFTER', $dataTriggered_AFTER);
$this->assertEquals($call, $eventDataTriggered_AFTER, 'Must pass call name as event data');
$this->assertEquals('some-post-param', $postTriggered_AFTER);
//output
$this->assertEquals("captured event BEFORE\ncaptured event AFTER", $response->getContent());
}
}