diff --git a/t/account-manager.cgi.t b/t/account-manager.cgi.t
index 2e2f1a30cdfc2ff6080824490ae3f42242051ad5..adfa4fc33e61e96ee9fbad680c92d5354570435e 100755
--- a/t/account-manager.cgi.t
+++ b/t/account-manager.cgi.t
@@ -8,10 +8,17 @@ use File::Temp;
 use IPC::Run qw(run);
 use Test::More;
 
-plan tests => 2;
+plan tests => 4;
 
 $ENV{ACCOUNTMANAGER_CONFIG} = 't/manager.conf';
 
+my $has_database =
+    $ENV{TEST_DB_TYPE} &&
+    $ENV{TEST_DB_HOST} &&
+    $ENV{TEST_DB_NAME} &&
+    $ENV{TEST_DB_USER} &&
+    $ENV{TEST_DB_PASSWORD};
+
 subtest start_page => sub {
 
     plan tests => 4;
@@ -44,7 +51,7 @@ subtest sp_selection_page => sub {
     plan tests => 4;
 
     local $ENV{REQUEST_METHOD} = 'GET';
-    local $ENV{QUERY_STRING}   = 'action=account_wizard';
+    local $ENV{QUERY_STRING}   = 'action=select_sp';
 
     my ($out, $err, $rc) = run_executable('account-manager.cgi');
     diag($out) if $ENV{TEST_DEBUG};
@@ -55,17 +62,73 @@ subtest sp_selection_page => sub {
     );
     like(
         $out,
-        qr{<title>eduGAIN Access Check - Select your Service Provider</title>},
+        qr{<title>eduGAIN Access Check</title>},
         'page title'
     );
     like(
         $out,
         qr{<select id="entityid" name="entityid" class="required">},
-        'selection list'
+        'page content contains SP list'
     );
     is($err, '', 'empty stderr');
 };
 
+subtest email_selection_page_missing_parameter => sub {
+
+    plan tests => 4;
+
+    local $ENV{REQUEST_METHOD} = 'GET';
+    local $ENV{QUERY_STRING}   = 'action=select_email';
+
+    my ($out, $err, $rc) = run_executable('account-manager.cgi');
+    diag($out) if $ENV{TEST_DEBUG};
+    like(
+        $out,
+        qr{^Content-Type: text/html\r\n\r\n},
+        'HTTP headers'
+    );
+    like(
+        $out,
+        qr{<title>eduGAIN Access Check</title>},
+        'page title'
+    );
+    like(
+        $out,
+        qr{Error:[\n\s]+missing parameter 'entityid'},
+        'page content contains expected error message'
+    );
+    my $error = $has_database ? qr{^$} : qr{^DBI connect\(\S+\) failed:};
+    like($err, $error, 'expected log message');
+};
+
+subtest email_selection_page_wrong_parameter => sub {
+
+    plan tests => 4;
+
+    local $ENV{REQUEST_METHOD} = 'GET';
+    local $ENV{QUERY_STRING}   = 'action=select_email&entityid=foo';
+
+    my ($out, $err, $rc) = run_executable('account-manager.cgi');
+    diag($out) if $ENV{TEST_DEBUG};
+    like(
+        $out,
+        qr{^Content-Type: text/html\r\n\r\n},
+        'HTTP headers'
+    );
+    like(
+        $out,
+        qr{<title>eduGAIN Access Check</title>},
+        'page title'
+    );
+    like(
+        $out,
+        qr{Error:[\n\s]+format_entityid},
+        'page content contains expected error message'
+    );
+    my $error = $has_database ? qr{^$} : qr{^DBI connect\(\S+\) failed:};
+    like($err, $error, 'expected log message');
+};
+
 sub run_executable {
     my ($executable, $args) = @_;