Example #1
0
<?php

if (!defined('LIMONADE')) {
    $h = "HTTP/1.0 401 Unauthorized";
    header($h);
    die($h);
}
// Security check
test_case("Functional");
test_case_describe("Functional tests");
function before_each_test_in_functional()
{
    env(null);
}
function test_functional_request()
{
    $response = test_request(TESTS_DOC_ROOT . '01-hello_world.php', 'GET', true);
    //echo $response;
    assert_header($response, 'Content-type', 'text/html');
}
end_test_case();
Example #2
0
<?php

test_case("Router");
test_case_describe("Testing limonade router functions.");
function before_each_test_in_router()
{
    route_reset();
}
function test_router_build_route()
{
    assert_trigger_error('route_build', array('UNKOWN', '/', 'aaa'));
    /* testing route returned array */
    $r = route_build("GET", "/index", 'get_index');
    assert_equal($r["method"], "GET");
    assert_equal($r["pattern"], "#^/index(?:/*?)?\$#i");
    assert_empty($r["names"]);
    assert_equal($r["function"], "get_index");
    /* testing very simple route with no parameters */
    assert_match($r["pattern"], "/index");
    assert_no_match($r["pattern"], "/other");
    assert_no_match($r["pattern"], "/");
    assert_no_match($r["pattern"], "/index/1");
    /* testing empty route */
    $r = route_build("GET", "/", 'get_index');
    assert_match($r["pattern"], "/");
    assert_match($r["pattern"], "");
    assert_no_match($r["pattern"], "/test2");
    $r = route_build("GET", "", 'get_index');
    assert_match($r["pattern"], "/");
    assert_match($r["pattern"], "");
    assert_no_match($r["pattern"], "/test2");
Example #3
0
{
    public function __construct(\Pimple\Container $container)
    {
        $this->container = $container;
    }
    public function get($id)
    {
        return $this->container->offsetGet($id);
    }
    public function has($id)
    {
    }
}
test('pimple test-case is identical to unbox test-case', function () {
    $container = (require __DIR__ . '/bootstrap-pimple.php');
    test_case(new PimpleTestAdapter($container));
});
test('can resolve dependencies using dependency maps', function () {
    $container = new Container();
    $container->set('cache.path', '/tmp/cache');
    $container->register('cache', function ($path) {
        return new FileCache($path);
    }, [$container->ref('cache.path')]);
    $container->register(UserRepository::class, function (CacheProvider $cp) {
        return new UserRepository($cp);
    }, ['cp' => $container->ref('cache')]);
    $repo = $container->get(UserRepository::class);
    ok($repo instanceof UserRepository);
    ok($repo->cache instanceof CacheProvider);
    eq($repo->cache->path, '/tmp/cache');
});
Example #4
0
        //ERROR: please use ':', not ';'
        case 2:
            return 2;
        default:
            return 42;
    }
}
class MiscA
{
}
class MiscB
{
}
function test_instanceof()
{
    $x = new MiscA();
    if ($x instanceof MiscA) {
    }
    //ERROR: please use 'instanceof'
    if ($x instanceof MiscA) {
    }
}
var_dump(test_case());
interface TestInterfaceWithBody
{
    public function foo();
    //ERROR: interface method with a body
    public function wtf_is_this()
    {
    }
}
Example #5
0
<?php

test_case("Test");
test_case_describe("Testing test and assertions functions.\n" . "Must run first, before all other tests.");
function before_each_test_in_test()
{
    // echo "// test_before_test(): executed before each test\n";
    global $val;
    $val = NULL;
}
function before_each_assert_in_test()
{
    // echo "// test_before_test(): executed before each test\n";
    global $val;
    $val = 10;
}
// fake function for test purpose
function my_triggering_error_func($trigger)
{
    if ($trigger) {
        trigger_error("Mmmm... error", E_USER_ERROR);
    }
}
// tests
function test_test_simple_assertions()
{
    assert_true(true);
    assert_false(false);
    assert_equal("aaa", "aaa");
    assert_not_equal("aaas", "aaa");
}
Example #6
0
<?php

test_case("Output");
test_case_describe("Testing limonade output functions.");
if (!defined('URL_FOR_OUTPUT_TEST')) {
    define('URL_FOR_OUTPUT_TEST', TESTS_DOC_ROOT . '02-outputs.php');
}
function before_each_test_in_output()
{
    env(null);
    option('encoding', 'utf-8');
}
function test_output_layout()
{
}
function test_output_render()
{
    $lorem = "Lorem ipsum dolor sit amet.";
    $q_lorem = preg_quote($lorem);
    # Testing standard rendering with sprint string
    assert_equal(render($lorem), $lorem);
    assert_equal(render($lorem, null, array('unused')), $lorem);
    assert_equal(render("Lorem %s dolor sit amet.", null, array('ipsum')), $lorem);
    assert_equal(render("Lorem %s dolor sit amet.", null, array('var1' => 'ipsum')), $lorem);
    $response = test_request(URL_FOR_OUTPUT_TEST . '/render0', 'GET');
    assert_equal($response, $lorem);
    $response = test_request(URL_FOR_OUTPUT_TEST . '/render1', 'GET');
    assert_equal($response, $lorem);
    # Testing rendering with a view (inline function case)
    $view = '_test_output_html_hello_world';
    $html = render($view);
Example #7
0
<?php

if (!defined('LIMONADE')) {
    $h = "HTTP/1.0 401 Unauthorized";
    header($h);
    die($h);
}
// Security check
test_case("File");
test_case_describe("Testing limonade file functions.");
function before_each_test_in_file()
{
}
function test_file_mime_type()
{
    $mimes = mime_type();
    assert_true(is_array($mimes));
    assert_not_empty($mimes);
    assert_empty(mime_type(''));
    assert_null(mime_type('unknown_extension'));
    assert_equal(mime_type('txt'), 'text/plain');
    assert_equal(mime_type('TXT'), 'text/plain');
    assert_equal(mime_type('jpg'), 'image/jpeg');
    assert_equal(mime_type('JPG'), 'image/jpeg');
}
function test_file_extension()
{
    assert_equal(file_extension('my_file'), '');
    assert_equal(file_extension('my_file.txt'), 'txt');
    assert_equal(file_extension('my_file.html.php'), 'php');
    assert_equal(file_extension('my_file.JPG'), 'JPG');
Example #8
0
<?php

if (!defined('LIMONADE')) {
    $h = "HTTP/1.0 401 Unauthorized";
    header($h);
    die($h);
}
// Security check
test_case("HTTP");
test_case_describe("Testing limonade HTTP utils functions.");
function test_http_response_status_code()
{
    $response = test_request(TESTS_DOC_ROOT . '02-outputs.php/render0', 'GET', true);
    assert_match("/HTTP\\/1\\./", $response);
    assert_status($response, 200);
}
function test_http_ua_accepts()
{
    $env = env();
    $env['SERVER']['HTTP_ACCEPT'] = null;
    assert_true(http_ua_accepts('text/plain'));
    $env['SERVER']['HTTP_ACCEPT'] = 'text/html';
    assert_true(http_ua_accepts('html'));
    $env['SERVER']['HTTP_ACCEPT'] = 'text/*; application/json';
    assert_true(http_ua_accepts('html'));
    assert_true(http_ua_accepts('text/html'));
    assert_true(http_ua_accepts('text/plain'));
    assert_true(http_ua_accepts('application/json'));
    assert_false(http_ua_accepts('image/png'));
    assert_false(http_ua_accepts('png'));
    assert_true(defined('TESTS_DOC_ROOT'), "Undefined 'TESTS_DOC_ROOT' constant");
Example #9
0
<?php
if(!defined('LIMONADE')){$h="HTTP/1.0 401 Unauthorized";header($h);die($h);}// Security check

test_case("Main");
   test_case_describe("Testing limonade main functions.");
   
   function before_each_test_in_main()
   {
     env(null);
   }
   
   function test_main_option()
   {
     assert_true(is_array(option()));
     assert_true(is_array(option(null)));
     assert_empty(option());
     $my_first_option = option('my_first_option');
     assert_true(empty($my_first_option));
     assert_not_equal(option('my_first_option', 'my first value'), 123);
     assert_true(is_string(option('my_first_option')));
     assert_equal(option('my_first_option'), 'my first value');
     assert_equal(option('my_first_option'), 'my first value');
     assert_true(is_array(option('my_first_option', 123, 456)));
     $my_first_option = option('my_first_option');
     assert_equal($my_first_option[0], 123);
     assert_equal($my_first_option[1], 456);
   }
   
   function test_main_params()
   {
     assert_empty(params());
Example #10
0
    $p2->SetDataValues($data);
    $p2->SetDataType($like);
    // Base data type - alias should match this
    $p2->SetPlotType($plot_type);
    $p2->DrawGraph();
    $p2_image = $p2->EncodeImage('raw');
    if ($test_save) {
        file_put_contents("dta-{$case}b_{$like}.png", $p2_image);
    }
    if ($p1_image == $p2_image) {
        $n_pass++;
        if ($test_verbose) {
            echo "Pass: {$title}\n";
        }
    } else {
        $n_fail++;
        echo "FAIL - Image Mismatch: {$title}\n";
    }
}
# ===== Test Cases =====
# Test all cases:
for ($case = 0; $case < $n_cases; $case++) {
    test_case($case);
}
# ======== End of test cases and error reporting ==========
# Option: Use basename of file, or replace with a string.
echo basename(__FILE__) . " results: {$n_tests} test cases, {$n_pass} pass, {$n_fail} fail\n";
if ($n_fail > 0) {
    exit(1);
}
# PHPlot test suite requires falling off the end, not exit, on success.
Example #11
0
<?php

test_case("Request");
test_case_describe("Testing limonade request functions.");
function before_each_test_in_request()
{
    env(null);
}
function test_request_methods()
{
    $m = request_methods();
    assert_length_of($m, 5);
}
function test_request_method_is_allowed()
{
    assert_true(request_method_is_allowed("GET"));
    assert_true(request_method_is_allowed("get"));
    assert_true(request_method_is_allowed("POST"));
    assert_true(request_method_is_allowed("PUT"));
    assert_true(request_method_is_allowed("DELETE"));
    assert_true(request_method_is_allowed("HEAD"));
}
function test_request_method()
{
    $env = env();
    $env['SERVER']['REQUEST_METHOD'] = null;
    assert_trigger_error("request_method");
    $methods = request_methods();
    foreach ($methods as $method) {
        $env['SERVER']['REQUEST_METHOD'] = $method;
        assert_equal(request_method($env), $method);