|  | use Mojo::Base -strict; | 
|  | use Test::More; | 
|  | use Test::Mojo; | 
|  | use Mojo::File qw/path/; | 
|  | use utf8; | 
|  |  | 
|  | my $t = Test::Mojo->new('Kalamar' => { | 
|  | Kalamar => { | 
|  | plugins => ['Auth'] | 
|  | }, | 
|  | 'Kalamar-Auth' => { | 
|  | client_id => 2, | 
|  | client_secret => 'k414m4r-s3cr3t', | 
|  | oauth2 => 1 | 
|  | } | 
|  | }); | 
|  |  | 
|  | $t->app->mode('production'); | 
|  |  | 
|  | my $q = qr!(?:\"|")!; | 
|  |  | 
|  | $t->post_ok('/user/login' => form => { handle_or_email => 'test', pwd => 'fail' }) | 
|  | ->status_is(302) | 
|  | ->header_is('Location' => '/'); | 
|  |  | 
|  | $t->get_ok('/') | 
|  | ->status_is(200) | 
|  | ->element_exists('link[rel=stylesheet][href^=/css/kalamar-]') | 
|  | ->element_exists('script[src^=/js/kalamar-]') | 
|  | ->element_exists('div.notify-error') | 
|  | ->text_is('div.notify-error', 'Bad CSRF token') | 
|  | ->element_exists('input[name=handle_or_email][value=test]') | 
|  | ->element_exists_not('div.button.top a') | 
|  | ->attr_is('body','data-korap-url','') | 
|  | ->header_exists_not('Strict-Transport-Security') | 
|  | ; | 
|  |  | 
|  | is('kalamar',$t->app->sessions->cookie_name); | 
|  | ok(!$t->app->sessions->secure); | 
|  |  | 
|  | $t = Test::Mojo->new('Kalamar' => { | 
|  | Kalamar => { | 
|  | plugins => ['Auth'], | 
|  | https_only => 1 | 
|  | }, | 
|  | 'Kalamar-Auth' => { | 
|  | client_id => 2, | 
|  | client_secret => 'k414m4r-s3cr3t', | 
|  | oauth2 => 1 | 
|  | } | 
|  | }); | 
|  |  | 
|  | $t->post_ok('/user/login' => form => { handle_or_email => 'test', pwd => 'fail' }) | 
|  | ->status_is(302) | 
|  | ->header_is('Location' => '/') | 
|  | ->header_is('Strict-Transport-Security', 'max-age=3600; includeSubDomains') | 
|  | ; | 
|  |  | 
|  | $t->get_ok('/') | 
|  | ->status_is(200) | 
|  | ->element_exists_not('div.notify-error') | 
|  | ; | 
|  |  | 
|  | is('kalamar',$t->app->sessions->cookie_name); | 
|  | ok($t->app->sessions->secure); | 
|  |  | 
|  | $t = Test::Mojo->new('Kalamar' => { | 
|  | Kalamar => { | 
|  | plugins => ['Auth'], | 
|  | proxy_prefix => '/korap/test', | 
|  | https_only => 1 | 
|  | }, | 
|  | 'Kalamar-Auth' => { | 
|  | client_id => 2, | 
|  | client_secret => 'k414m4r-s3cr3t', | 
|  | oauth2 => 1 | 
|  | } | 
|  | }); | 
|  |  | 
|  | $t->app->mode('production'); | 
|  |  | 
|  | $t->get_ok('/') | 
|  | ->status_is(200) | 
|  | ->element_exists('link[rel=stylesheet][href^=/korap/test/css/kalamar-]') | 
|  | ->element_exists('script[src^=/korap/test/js/kalamar-]') | 
|  | ; | 
|  |  | 
|  | is('kalamar-koraptest',$t->app->sessions->cookie_name); | 
|  | ok($t->app->sessions->secure); | 
|  |  | 
|  | $t->post_ok('/user/login' => form => { handle_or_email => 'test', pwd => 'fail' }) | 
|  | ->status_is(302) | 
|  | ->header_is('Location' => '/'); | 
|  |  | 
|  | # Session can't be used | 
|  | $t->get_ok('/') | 
|  | ->status_is(200) | 
|  | ->element_exists_not('div.notify-error') | 
|  | ->attr_is('body','data-korap-url','/korap/test') | 
|  | ; | 
|  |  | 
|  |  | 
|  | done_testing(); |