diff --git a/t/app.t b/t/app.t index 13c840df70d703947220bc218cda2be5b8cebc1d..967a39ed3102a09d2fa0e604e88d86f64171c2a5 100755 --- a/t/app.t +++ b/t/app.t @@ -170,7 +170,7 @@ named_subtest "index page" => sub { $t->get_ok('/') ->status_is(200) ->text_is('html head title' => 'eduGAIN Access Check') - ->text_is('a[href=/select_entity]' => 'Get started', 'get started button'); + ->text_is('a[href=/select/entity]' => 'Get started', 'get started button'); my $res = $t->tx()->res(); html_ok($res) or diag_file($res, $test_dir); @@ -179,7 +179,7 @@ named_subtest "index page" => sub { named_subtest "SP selection page" => sub { my $t = get_test_object(test => $_[0]); - $t->get_ok('/select_entity') + $t->get_ok('/select/entity') ->status_is(200) ->text_is('html head title' => 'eduGAIN Access Check', 'expected title') ->element_exists('select[id=all][name=all]', 'SP selection widget'); @@ -191,7 +191,7 @@ named_subtest "SP selection page" => sub { named_subtest "email selection page, missing entityid" => sub { my $t = get_test_object(test => $_[0]); - $t->get_ok('/select_email') + $t->get_ok('/select/email') ->status_is(200) ->text_is('html head title' => 'eduGAIN Access Check', 'expected title') ->content_like(qr/Error:[\n\s]+missing parameter 'entityid'/, 'expected error message'); @@ -203,7 +203,7 @@ named_subtest "email selection page, missing entityid" => sub { named_subtest "email selection page, invalid entityid" => sub { my $t = get_test_object(test => $_[0]); - $t->get_ok('/select_email' => form => {entityid => 'foo'}) + $t->get_ok('/select/email' => form => {entityid => 'foo'}) ->status_is(200) ->text_is('html head title' => 'eduGAIN Access Check', 'expected title') ->content_like(qr/Error:[\n\s]+invalid parameter 'entityid'/, 'expected error message'); @@ -215,7 +215,7 @@ named_subtest "email selection page, invalid entityid" => sub { named_subtest "email selection page, valid entityid" => sub { my $t = get_test_object(test => $_[0]); - $t->get_ok('/select_email' => form => {entityid => 'https://sp.renater.fr/'}) + $t->get_ok('/select/email' => form => {entityid => 'https://sp.renater.fr/'}) ->status_is(200) ->text_is('html head title' => 'eduGAIN Access Check', 'expected title') ->element_exists('input[name=email][value=contact1@renater.fr]', 'email selection widget'); @@ -227,7 +227,7 @@ named_subtest "email selection page, valid entityid" => sub { named_subtest "challenge sending page, missing CSRF token" => sub { my $t = get_test_object(test => $_[0]); - $t->get_ok('/send_challenge') + $t->get_ok('/challenge/send') ->status_is(403) ->text_is('html head title' => 'eduGAIN Access Check', 'expected title') ->content_like(qr/Error:[\n\s]+missing CSRF token/, 'expected error message'); @@ -242,7 +242,7 @@ named_subtest "challenge sending page, missing entityid" => sub { # neutralize CSRF token check, as we short-circuit the form $t->app()->hook(before_dispatch => sub { $_[0]->session(csrf_token => 'foo') }); - $t->get_ok('/send_challenge' => form => {token => 'foo'}) + $t->get_ok('/challenge/send' => form => {token => 'foo'}) ->status_is(200) ->text_is('html head title' => 'eduGAIN Access Check', 'expected title') ->content_like(qr/Error:[\n\s]+missing parameter 'entityid'/, 'expected error message'); @@ -257,7 +257,7 @@ named_subtest "challenge sending page, invalid entityid" => sub { # neutralize CSRF token check, as we short-circuit the form $t->app()->hook(before_dispatch => sub { $_[0]->session(csrf_token => 'foo') }); - $t->get_ok('/send_challenge' => form => {token => 'foo', entityid => 'foo'}) + $t->get_ok('/challenge/send' => form => {token => 'foo', entityid => 'foo'}) ->status_is(200) ->text_is('html head title' => 'eduGAIN Access Check', 'expected title') ->content_like(qr/Error:[\n\s]+invalid parameter 'entityid'/, 'expected error message'); @@ -272,7 +272,7 @@ named_subtest "challenge sending page, valid entityid, missing email" => sub { # neutralize CSRF token check, as we short-circuit the form $t->app()->hook(before_dispatch => sub { $_[0]->session(csrf_token => 'foo') }); - $t->get_ok('/send_challenge' => form => {token => 'foo', entityid => 'https://sp.renater.fr/'}) + $t->get_ok('/challenge/send' => form => {token => 'foo', entityid => 'https://sp.renater.fr/'}) ->status_is(200) ->text_is('html head title' => 'eduGAIN Access Check', 'expected title') ->content_like(qr/Error:[\n\s]+missing parameter 'email'/, 'expected error message'); @@ -287,7 +287,7 @@ named_subtest "challenge sending page, valid entityid, invalid email" => sub { # neutralize CSRF token check, as we short-circuit the form $t->app()->hook(before_dispatch => sub { $_[0]->session(csrf_token => 'foo') }); - $t->get_ok('/send_challenge' => form => {token => 'foo', entityid => 'https://sp.renater.fr/', email => 'foo'}) + $t->get_ok('/challenge/send' => form => {token => 'foo', entityid => 'https://sp.renater.fr/', email => 'foo'}) ->status_is(200) ->text_is('html head title' => 'eduGAIN Access Check', 'expected title') ->content_like(qr/Error:[\n\s]+invalid parameter 'email'/, 'expected error message'); @@ -299,7 +299,7 @@ named_subtest "challenge sending page, valid entityid, invalid email" => sub { named_subtest "challenge validation page, missing entityid" => sub { my $t = get_test_object(test => $_[0]); - $t->get_ok('/validate_challenge') + $t->get_ok('/challenge/validate') ->status_is(200) ->text_is('html head title' => 'eduGAIN Access Check', 'expected title') ->content_like(qr/Error:[\n\s]+missing parameter 'entityid'/, 'expected error message'); @@ -311,7 +311,7 @@ named_subtest "challenge validation page, missing entityid" => sub { named_subtest "challenge validation page, invalid entityid" => sub { my $t = get_test_object(test => $_[0]); - $t->get_ok('/validate_challenge' => form => {entityid => 'foo'}) + $t->get_ok('/challenge/validate' => form => {entityid => 'foo'}) ->status_is(200) ->text_is('html head title' => 'eduGAIN Access Check', 'expected title') ->content_like(qr/Error:[\n\s]+invalid parameter 'entityid'/, 'expected error message'); @@ -323,7 +323,7 @@ named_subtest "challenge validation page, invalid entityid" => sub { named_subtest "challenge validation page, valid entityid, missing email" => sub { my $t = get_test_object(test => $_[0]); - $t->get_ok('/validate_challenge' => form => {entityid => 'https://sp.renater.fr/'}) + $t->get_ok('/challenge/validate' => form => {entityid => 'https://sp.renater.fr/'}) ->status_is(200) ->text_is('html head title' => 'eduGAIN Access Check', 'expected title') ->content_like(qr/Error:[\n\s]+missing parameter 'email'/, 'expected error message'); @@ -335,7 +335,7 @@ named_subtest "challenge validation page, valid entityid, missing email" => sub named_subtest "challenge validation page, valid entityid, invalid email" => sub { my $t = get_test_object(test => $_[0]); - $t->get_ok('/validate_challenge' => form => {entityid => 'https://sp.renater.fr/', email => 'foo'}) + $t->get_ok('/challenge/validate' => form => {entityid => 'https://sp.renater.fr/', email => 'foo'}) ->status_is(200) ->text_is('html head title' => 'eduGAIN Access Check', 'expected title') ->content_like(qr/Error:[\n\s]+invalid parameter 'email'/, 'expected error message'); @@ -347,7 +347,7 @@ named_subtest "challenge validation page, valid entityid, invalid email" => sub named_subtest "challenge validation page, valid entityid, valid email" => sub { my $t = get_test_object(test => $_[0]); - $t->get_ok('/validate_challenge' => form => {entityid => 'https://sp.renater.fr/', email => 'contact1@renater.fr'}) + $t->get_ok('/challenge/validate' => form => {entityid => 'https://sp.renater.fr/', email => 'contact1@renater.fr'}) ->status_is(200) ->text_is('html head title' => 'eduGAIN Access Check', 'expected title') ->text_is('div.content h2' => 'Complete email challenge', 'expected form title'); @@ -362,7 +362,7 @@ named_subtest "index page, french version" => sub { $t->get_ok('/') ->status_is(200) ->text_is('html head title' => 'eduGAIN Access Check') - ->text_is('html body a[href=/select_entity]' => 'Commencer', 'get started button'); + ->text_is('html body a[href=/select/entity]' => 'Commencer', 'get started button'); my $res = $t->tx()->res(); html_ok($res) or diag_file($res, $test_dir); diff --git a/templates/web/edugain/index.html.tt2 b/templates/web/edugain/index.html.tt2 index cc025e620b6179f5b785f877c139ce810c4ab00b..0ef63ab0cf452c6db0949a5f0c8727d6a2408569 100644 --- a/templates/web/edugain/index.html.tt2 +++ b/templates/web/edugain/index.html.tt2 @@ -5,20 +5,20 @@ <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"/> <meta charset="utf-8"/> - <link type="image/png" rel="icon" href="images/favicon.png"/> + <link type="image/png" rel="icon" href="/images/favicon.png"/> - <link type="text/css" rel="stylesheet" href="font-awesome/css/font-awesome.min.css" /> - <link type="text/css" rel="stylesheet" href="foundation/css/foundation.min.css"/> - <link type="text/css" rel="stylesheet" href="jquery-ui-1.12.1/jquery-ui.min.css"/> - <link type="text/css" rel="stylesheet" href="css/style.css"/> - <link type="text/css" rel="stylesheet" href="css/edugain.css" /> - <link type="text/css" rel="stylesheet" href="css/edugain-menu-master.css" /> - <link type="text/css" rel="stylesheet" href="css/edugain-menu-min-600.css" media="(min-width: 800px)" /> - <link type="text/css" rel="stylesheet" href="css/edugain-min-800.css" media="(min-width: 800px)" /> + <link type="text/css" rel="stylesheet" href="/font-awesome/css/font-awesome.min.css" /> + <link type="text/css" rel="stylesheet" href="/foundation/css/foundation.min.css"/> + <link type="text/css" rel="stylesheet" href="/jquery-ui-1.12.1/jquery-ui.min.css"/> + <link type="text/css" rel="stylesheet" href="/css/style.css"/> + <link type="text/css" rel="stylesheet" href="/css/edugain.css" /> + <link type="text/css" rel="stylesheet" href="/css/edugain-menu-master.css" /> + <link type="text/css" rel="stylesheet" href="/css/edugain-menu-min-600.css" media="(min-width: 800px)" /> + <link type="text/css" rel="stylesheet" href="/css/edugain-min-800.css" media="(min-width: 800px)" /> - <script src="jquery-3.3.1.min.js"></script> - <script src="jquery-ui-1.12.1/jquery-ui.min.js"></script> - <script src="jquery-validation-1.17.0.min.js"></script> + <script src="/jquery-3.3.1.min.js"></script> + <script src="/jquery-ui-1.12.1/jquery-ui.min.js"></script> + <script src="/jquery-validation-1.17.0.min.js"></script> <title>[% app.name %]</title> </head> @@ -26,33 +26,33 @@ <body> <header> <div id="geant_logo_t" class="small-6 medium-4 columns text-left"> - <img src="images/geant_logo1.png"> + <img src="/images/geant_logo1.png"> </div> <div id="edugain_logo" class="small-6 medium-4 medium-offset-4 columns text-right"> - <img src="images/edugain_logo1.png"> + <img src="/images/edugain_logo1.png"> </div> </header> <nav class="main-nav"> <div class="central-section"> - <div id="nav_icon" class="nav-icon"><a id="nav_icon_toggle" href="javascript:void(0);"><img src="images/menu-icon.gif" /></a></div> + <div id="nav_icon" class="nav-icon"><a id="nav_icon_toggle" href="javascript:void(0);"><img src="/images/menu-icon.gif" /></a></div> <!-- menu goes here --> <div id="core_nav_section" class="et-menu-holder"> <ul id="core_nav" class="et-menu et-left"> - <li class="et-first-option no-children"><a href="[% c.url_for('home') %]" title="Home"><img style="width: 16px; height: 15px; position: relative; top: 3px" src="images/home_logo.png" alt="Home icon" /></a></li> + <li class="et-first-option no-children"><a href="[% c.url_for('home') %]" title="Home"><img style="width: 16px; height: 15px; position: relative; top: 3px" src="/images/home_logo.png" alt="Home icon" /></a></li> <li class="et-option et-has-children"> <span>Language</span> <ul class="et-submenu"> <li class="et-submenu-option"> <a [% IF l10n.language_tag() == "en" %]class="nocursor"[% ELSE %]href="[% c.url_with().query(lang => 'en') | html %]"[% END %] data-lang="en" title="English"> - <img src="images/en.png" /> + <img src="/images/en.png" /> <span>English</span> [% IF l10n.language_tag() == "en" %]<span class="fa fa-check"></span>[% END %] </a> </li> <li class="et-submenu-option"> <a [% IF l10n.language_tag() == "fr" %]class="nocursor"[% ELSE %]href="[% c.url_with().query(lang => 'fr') | html %]"[% END %] data-lang="fr" title="Français"> - <img src="images/fr.png" /> + <img src="/images/fr.png" /> <span>Français</span> [% IF l10n.language_tag() == "fr" %]<span class="fa fa-check"></span>[% END %] </a> @@ -79,7 +79,7 @@ <p class="text-center">[% app.name %] [% app.version %] - <a href="mailto:[% app.support_email %]">[% c.loc("contact us") %]</a></p> <div class="central-section"> <div class="col-1-1"> - <img src="images/footer_logo_padded.jpg" style="width: 111px; height:26px;" /> + <img src="/images/footer_logo_padded.jpg" style="width: 111px; height:26px;" /> </div> <div class="col-1-2"> diff --git a/templates/web/renater/index.html.tt2 b/templates/web/renater/index.html.tt2 index 312720ec3b1f65bc99d39af72c1edeaccc085954..cb14be960d7f2568e20ef1bf9fac5c30008bdd04 100644 --- a/templates/web/renater/index.html.tt2 +++ b/templates/web/renater/index.html.tt2 @@ -4,23 +4,23 @@ <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"> <meta charset="utf-8"> - <link type="image/png" rel="icon" href="images/favicon-federation.png" /> + <link type="image/png" rel="icon" href="/images/favicon-federation.png" /> - <link type="text/css" rel="stylesheet" href="font-awesome/css/font-awesome.min.css" /> - <link type="text/css" rel="stylesheet" href="foundation/css/foundation.min.css"> - <link type="text/css" rel="stylesheet" href="jquery-ui-1.12.1/jquery-ui.min.css" /> - <link type="text/css" rel="stylesheet" href="css/style.css" /> - <link type="text/css" rel="stylesheet" href="css/renater.css" /> - <link type="text/css" rel="stylesheet" href="css/renater-header.css" /> - <link type="text/css" rel="stylesheet" href="css/renater-footer.css" /> - <link type="text/css" rel="stylesheet" href="css/renater-fonts.css" /> + <link type="text/css" rel="stylesheet" href="/font-awesome/css/font-awesome.min.css" /> + <link type="text/css" rel="stylesheet" href="/foundation/css/foundation.min.css"> + <link type="text/css" rel="stylesheet" href="/jquery-ui-1.12.1/jquery-ui.min.css" /> + <link type="text/css" rel="stylesheet" href="/css/style.css" /> + <link type="text/css" rel="stylesheet" href="/css/renater.css" /> + <link type="text/css" rel="stylesheet" href="/css/renater-header.css" /> + <link type="text/css" rel="stylesheet" href="/css/renater-footer.css" /> + <link type="text/css" rel="stylesheet" href="/css/renater-fonts.css" /> - <script src="jquery-3.3.1.min.js"></script> - <script src="jquery-ui-1.12.1/jquery-ui.min.js"></script> - <script src="jquery-validation-1.17.0.min.js"></script> - <script src="foundation/js/vendor/what-input.js"></script> - <script src="foundation/js/vendor/foundation.min.js"></script> - <script src="js/startup.js"></script> + <script src="/jquery-3.3.1.min.js"></script> + <script src="/jquery-ui-1.12.1/jquery-ui.min.js"></script> + <script src="/jquery-validation-1.17.0.min.js"></script> + <script src="/foundation/js/vendor/what-input.js"></script> + <script src="/foundation/js/vendor/foundation.min.js"></script> + <script src="/js/startup.js"></script> <title>[% app.name %]</title> </head> @@ -32,7 +32,7 @@ <div class="title-bar-title top-bar-right"></div> <div class="top-bar-left"> <a href="[% c.url_for('home') %]" title="Accueil"> - <img src="images/logo-federation.svg" alt="Logo Fédération" data-options="disable_for_touch:true"> + <img src="/images/logo-federation.svg" alt="Logo Fédération" data-options="disable_for_touch:true"> </a> </div> </div> @@ -41,7 +41,7 @@ <ul class="menu" data-dropdown-menu> <li class="menu-text hide-for-small-only"> <a href="[% c.url_for('home') %]" title="Accueil"> - <img src="images/logo-federation.svg" alt="Logo Fédération" data-options="disable_for_touch:true"> + <img src="/images/logo-federation.svg" alt="Logo Fédération" data-options="disable_for_touch:true"> </a> </li> </ul> @@ -50,26 +50,26 @@ <ul class="menu icon-top" data-back-button="<li class='js-drilldown-back'><a tabindex='0'>Back</a></li>" data-responsive-menu="drilldown medium-dropdown"> <li> <a href="[% c.url_for('home') %]" title="Accueil" data-tooltip class="left"> - <img class="hide-for-small-only home_img" src="images/home.svg" alt="Accueil" data-options="disable_for_touch:true"/> + <img class="hide-for-small-only home_img" src="/images/home.svg" alt="Accueil" data-options="disable_for_touch:true"/> <span class="show-for-small-only">Accueil</span> </a> </li> <li class="has-submenu" data-action="select_language"> <a href="#" title="[% c.loc("Language") %]"> - <img class="lang_img" src="images/lang.svg" alt="[% c.loc("Language") %]" data-options="disable_for_touch:true"/> + <img class="lang_img" src="/images/lang.svg" alt="[% c.loc("Language") %]" data-options="disable_for_touch:true"/> <span class="show-for-small-only">[% c.loc("Language") %]</span> </a> <ul class="submenu vertical" data-submenu> <li> <a [% IF l10n.language_tag() == "en" %]class="nocursor"[% ELSE %]href="[% c.url_with().query(lang => 'en') | html %]"[% END %] data-lang="en" title="English"> - <img src="images/en.png" /> + <img src="/images/en.png" /> <span>English</span> [% IF l10n.language_tag() == "en" %]<span class="fa fa-check"></span>[% END %] </a> </li> <li> <a [% IF l10n.language_tag() == "fr" %]class="nocursor"[% ELSE %]href="[% c.url_with().query(lang => 'fr') | html %]"[% END %] data-lang="fr" title="Français"> - <img src="images/fr.png" /> + <img src="/images/fr.png" /> <span>Français</span> [% IF l10n.language_tag() == "fr" %]<span class="fa fa-check"></span>[% END %] </a> @@ -96,14 +96,14 @@ <footer> <article class="hide-for-small-only"> <p class="row"> - <span class="small-1 columns text-left"><img src="images/logo_renater_blanc.png"/></span> + <span class="small-1 columns text-left"><img src="/images/logo_renater_blanc.png"/></span> <span class="small-5 columns text-left">Réseau National de télécommunications <br/>pour la Technologie l’Enseignement et la Recherche.</span> <span class="small-5 columns text-right"> <a href="https://www.facebook.com/gip.renater" target="_blank"> - <img src="images/facebook.svg" alt="Facebook" data-options="disable_for_touch:true"/> + <img src="/images/facebook.svg" alt="Facebook" data-options="disable_for_touch:true"/> </a> <a href="https://twitter.com/RENATERnews" target="_blank"> - <img src="images/twitter.svg" alt="Twitter" data-options="disable_for_touch:true"/> + <img src="/images/twitter.svg" alt="Twitter" data-options="disable_for_touch:true"/> </a> </span> </p>