Example #1
0
<?php

require_once __DIR__ . '/../../bootstrap.php';
use greebo\essence\Event;
use greebo\essence\Response;
$t = new lime_test(1);
// fix cli SERVER_PROTOCOL
$_SERVER['SERVER_PROTOCOL'] = '';
$event = new Event();
$response = new Response($event);
$response->status(201);
//$t->pass('->status() works properly');
$response->header('Content-type', 'text/html');
//$t->pass('->header() works properly');
$response->cookie('foo', 'bar');
//$t->pass('->cookie() works properly');
$response->content('RESPONSE TEST');
//$t->pass('->content() works properly');
$event->connect('response.content', function ($response, $content) {
    return $content . ' FILTERED';
});
ob_start();
$response->send();
$result = ob_get_clean();
$t->is($result, 'RESPONSE TEST FILTERED', '->send() sends filtered content');
Example #2
0
 /**
  * Register autoescaping on template variables.
  * 
  * @param \greebo\essence\Event $event
  */
 static function register(\greebo\essence\Event $event)
 {
     $event->connect('template.slots', function ($template, $slots) {
         foreach ($slots as $name => $slot) {
             $slots[$name] = Escaper::escape($slot, $template->escaper());
         }
         return $slots;
     });
 }
Example #3
0
<?php

require_once __DIR__ . '/../../bootstrap.php';
use greebo\essence\Event;
$t = new lime_test(9);
$event = new Event();
$subject = new stdClass();
$content = array();
$t->diag('->fire()');
$event->fire('invalid', $subject);
$event->connect('fire', function ($subj) use($t, $subject) {
    $t->pass('->connect() works properly');
    $t->pass('->fire() works properly');
    $t->ok($subj === $subject, '->fire() send correct subject');
});
$event->fire('fire', $subject);
$event->connect('until', function ($subj) {
    return 'stopped';
});
$event->connect('until', function ($subj) use($t) {
    $t->fail('->fire() must be stopped by previous listener');
});
$return = $event->fire('until', $subject);
$t->is($return, 'stopped', '->fire() stop notification and returns correct value');
$t->diag('->filter()');
$return = $event->filter('invalid', $subject, $content);
$t->is($return, $content, '->filter() returns original content on invalid event');
$event->connect('filter', function ($subj, $cont) use($t, $subject, $content) {
    $t->pass('->filter() works properly');
    $t->ok($subj === $subject, '->filter() send correct subject');
    $t->ok($cont === $content, '->filter() send correct content');