Labyrinth

 view release on metacpan or  search on metacpan

t/33-labyrinth-request.t  view on Meta::CPAN


    is($request->next_action,'Content::GetVersion');
    is($request->next_action,'Hits::SetHits');
    is($request->next_action,'Menus::LoadMenus');
    is($request->next_action,undef);
    is($request->add_actions('Content::One','Content::Two','Content::Three'),3);
    is($request->next_action,'Content::One');
    $request->reset_request('home-admin');
    is($request->next_action,'Content::Admin');

    $request->reset_realm('admin');
    is($request->next_action,'Content::GetVersion');

    $ENV{HTTP_HOST}     = 'example.com';
    $ENV{REQUEST_URI}   = '/path';

    $request->redirect();
    is($tvars{redirect},undef);
    $request->redirect('http');
    is($tvars{redirect},'http://example.com/path');
    $request->redirect('http','/test');
    is($tvars{redirect},'http://example.com/test');
    $request->redirect('http',undef,'home-main');
    is($tvars{redirect},'http://example.com/path?act=home-main');
    $request->redirect('http',undef,'');
    is($tvars{redirect},'http://example.com/path');

    is($request->layout,    'admin/layout.html');
    is($request->content,   'admin/backend_index.html');

    $request->reset_request('home-test');
    is($request->onsuccess, 'home-main');
    is($request->onerror,   'error-badaccess');
    is($request->onfailure, 'error-badcmd');

    # clean up
    $td->{driver}->drop_database($td->name);
}

sub create_sqlite_databases {
    my $db = shift;

    my @create_example = (
        'PRAGMA auto_vacuum = 1',
        q|DROP TABLE IF EXISTS requests|,
        q|CREATE TABLE requests (
          section   TEXT,
          command   TEXT,
          actions   TEXT,
          layout    TEXT,
          content   TEXT,
          onsuccess TEXT,
          onerror   TEXT,
          onfailure TEXT,
          secure    TEXT,
          rewrite   TEXT,
          PRIMARY KEY (section,command)
        )|,

        q|INSERT INTO requests VALUES ('realm','admin','Content::GetVersion,Menus::LoadMenus','admin/layout.html','','','','','off','')|,
        q|INSERT INTO requests VALUES ('realm','popup','','public/popup.html','','','','','off','')|,
        q|INSERT INTO requests VALUES ('realm','public','Content::GetVersion,Hits::SetHits,Menus::LoadMenus','public/layout.html','','','','','off','')|,
        q|INSERT INTO requests VALUES ('error','badmail','','','public/badmail.html','','','','off','')|,
        q|INSERT INTO requests VALUES ('error','badcmd','','','public/badcommand.html','','','','off','')|,
        q|INSERT INTO requests VALUES ('error','banuser','','','public/banuser.html','','','','off','')|,
        q|INSERT INTO requests VALUES ('error','badaccess','Users::LoggedIn','','public/badaccess.html','','error-login','','off','')|,
        q|INSERT INTO requests VALUES ('error','baduser','','','public/baduser.html','','','','off','')|,
        q|INSERT INTO requests VALUES ('error','login','Users::Store','','users/user-login.html','','','','off','')|,
        q|INSERT INTO requests VALUES ('error','message','','','public/error_message.html','','','','off','')|,
        q|INSERT INTO requests VALUES ('home','admin','Content::Admin','','admin/backend_index.html','','','','off','')|,
        q|INSERT INTO requests VALUES ('home','main','Content::Home','','content/welcome.html','','','','off','')|,
        q|INSERT INTO requests VALUES ('home','test','Content::Test','','','home-main','error-badaccess','error-badcmd','off','')|,
    );

    dosql($db,\@create_example);
}

sub create_mysql_databases {
    my $db = shift;

    my @create_example = (
        q|DROP TABLE IF EXISTS requests|,
        q|CREATE TABLE requests (
          section varchar(15) NOT NULL,
          command varchar(15) NOT NULL,
          actions varchar(1000) DEFAULT NULL,
          layout varchar(255) DEFAULT NULL,
          content varchar(255) DEFAULT NULL,
          onsuccess varchar(32) DEFAULT NULL,
          onerror varchar(32) DEFAULT NULL,
          onfailure varchar(32) DEFAULT NULL,
          secure enum('off','on','either','both') DEFAULT 'off',
          rewrite varchar(255) DEFAULT NULL,
          PRIMARY KEY (section,command)
        ) ENGINE=MyISAM DEFAULT CHARSET=utf8|,

        q|INSERT INTO requests VALUES ('realm','admin','Content::GetVersion,Menus::LoadMenus','admin/layout.html','','','','','off','')|,
        q|INSERT INTO requests VALUES ('realm','popup','','public/popup.html','','','','','off','')|,
        q|INSERT INTO requests VALUES ('realm','public','Content::GetVersion,Hits::SetHits,Menus::LoadMenus','public/layout.html','','','','','off','')|,
        q|INSERT INTO requests VALUES ('error','badmail','','','public/badmail.html','','','','off','')|,
        q|INSERT INTO requests VALUES ('error','badcmd','','','public/badcommand.html','','','','off','')|,
        q|INSERT INTO requests VALUES ('error','banuser','','','public/banuser.html','','','','off','')|,
        q|INSERT INTO requests VALUES ('error','badaccess','Users::LoggedIn','','public/badaccess.html','','error-login','','off','')|,
        q|INSERT INTO requests VALUES ('error','baduser','','','public/baduser.html','','','','off','')|,
        q|INSERT INTO requests VALUES ('error','login','Users::Store','','users/user-login.html','','','','off','')|,
        q|INSERT INTO requests VALUES ('error','message','','','public/error_message.html','','','','off','')|,
        q|INSERT INTO requests VALUES ('home','admin','Content::Admin','','admin/backend_index.html','','','','off','')|,
        q|INSERT INTO requests VALUES ('home','main','Content::Home','','content/welcome.html','','','','off','')|,
        q|INSERT INTO requests VALUES ('home','test','Content::Test','','','home-main','error-badaccess','error-badcmd','off','')|,
    );

    dosql($db,\@create_example);
}

sub dosql {
    my ($db,$sql) = @_;

    for(@$sql) {
        #diag "SQL: [$db] $_";
        eval { $db->dbh->do($_); };
        if($@) {
            diag $@;
            return 1;
        }
    }

    return 0;
}



( run in 0.907 second using v1.01-cache-2.11-cpan-364913b4093 )