blob: abd5e063dd14a83b15567a556d0f3b226d158c36 [file] [log] [blame]
use Mojo::Base -strict;
use Test::More;
use Test::Mojo;
use Mojo::File qw/path/;
use utf8;
$ENV{KALAMAR_VERSION} = '0.47.999';
#####################
# Start Fake server #
#####################
my $mount_point = '/realapi/';
$ENV{KALAMAR_API} = $mount_point;
my $t = Test::Mojo->new('Kalamar');
# Mount fake backend
# Get the fixture path
my $fixtures_path = path(Mojo::File->new(__FILE__)->dirname, 'server');
my $fake_backend = $t->app->plugin(
Mount => {
$mount_point =>
$fixtures_path->child('mock.pl')
}
);
# Configure fake backend
$fake_backend->pattern->defaults->{app}->log($t->app->log);
$t->app->mode('production');
$t->get_ok('/')
->status_is(200)
->text_is('title', 'KorAP - Corpus Analysis Platform')
->text_is('h1 span', 'KorAP - Corpus Analysis Platform')
->element_exists('div.intro')
->text_is('div.intro > p > strong', 'KorAP')
->content_unlike(qr!onload!)
->text_is('div.intro > p > a.link-guided-tour', 'guided tour')
->text_is('nav > div > a[href=/doc/korap/kalamar]', 'V 0.47.999')
->element_exists('select#ql-field option[value=poliqarp]')
->element_exists('select#ql-field option[value=cqp]')
->element_exists_not('select#ql-field option[value=noliqart]')
;
# Only routed when existing
$t->get_ok('/settings')
->status_is(404);
push @{$t->app->renderer->paths}, path(path(__FILE__)->dirname);
$t->app->plugin(Localize => {
dict => {
Template => {
intro => 'custom/intro'
}
},
override => 1
});
$t->get_ok('/')
->status_is(200)
->text_is('title', 'KorAP - Corpus Analysis Platform')
->text_is('h1 span', 'KorAP - Corpus Analysis Platform')
->element_exists('div.intro')
->text_is('div.intro h2', 'This is a custom intro page!')
->element_exists('meta[name="DC.description"][content="KorAP - Corpus Analysis Platform"]')
->element_exists('meta[name="keywords"][content^="KorAP"]')
->element_exists('body[itemscope][itemtype="http://schema.org/WebApplication"]')
->element_exists_not('#koralQuery')
->element_exists('aside.invisible')
->element_exists('aside.off')
;
$t->get_ok('/?cq=corpusSigle%3DGOE')
->status_is(200)
->text_is('title', 'KorAP - Corpus Analysis Platform')
->text_is('h1 span', 'KorAP - Corpus Analysis Platform')
->element_exists_not('#notifications div.notify')
->element_exists('div.intro')
->text_is('div.intro h2', 'This is a custom intro page!')
->element_exists('meta[name="DC.description"][content="KorAP - Corpus Analysis Platform"]')
->element_exists('meta[name="keywords"][content^="KorAP"]')
->element_exists('body[itemscope][itemtype="http://schema.org/WebApplication"]')
->element_exists('#koralQuery')
->element_exists('aside.invisible')
->element_exists('aside.off')
->text_is('#notifications > .notify-error', undef)
;
$t->get_ok('/huhuhuhuhu')
->status_is(404)
->text_is('title', 'KorAP: 404 - Page not found')
->text_is('h1 span', 'KorAP: 404 - Page not found');
$t->get_ok('/doc/off')
->status_is(200)
->text_is('title', 'KorAP - Corpus Analysis Platform')
->text_is('h1 span', 'KorAP - Corpus Analysis Platform')
->attr_is('aside', 'class',' off')
;
done_testing();