Skip to content

Commit d9a3cd4

Browse files
committed
All providers can be tested for realm priority during tests.
1 parent 08b658c commit d9a3cd4

File tree

2 files changed

+32
-10
lines changed

2 files changed

+32
-10
lines changed

lib/Dancer2/Plugin/Auth/Extensible/Test.pm

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -198,13 +198,10 @@ sub _test_base {
198198
}
199199

200200
SKIP: {
201-
skip "priorities not defined for this provider test", 1
202-
if !defined $ENV{DANCER_ENVIRONMENT}
203-
|| $ENV{DANCER_ENVIRONMENT} ne 'provider-config';
201+
skip "Priorities not defined for this provider test", 1
202+
if !get('/can_test_realm_priority')->content;
204203

205204
# test realm priority
206-
# TODO: find out if we can run these tests by poking the
207-
# provider rather than having it hard-coded.
208205
my $logs = $trap->read;
209206
cmp_deeply(
210207
$logs,
@@ -744,6 +741,11 @@ sub _test_base {
744741
is $res->code, 200, "/get_user_details/dave response is 200"
745742
or diag explain $trap->read;
746743

744+
my $user = YAML::Load $res->content;
745+
cmp_deeply $user,
746+
superhashof( { name => 'David Precious' } ),
747+
"We have Dave's name in the response"
748+
or diag explain $user;
747749
}
748750
{
749751
my $res = get('/get_user_details/burt');

lib/Dancer2/Plugin/Auth/Extensible/Test/App.pm

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -141,17 +141,37 @@ get '/update_user_role/:realm' => sub {
141141
get '/get_user_details/:user' => sub {
142142
content_type 'text/x-yaml';
143143
my $user = get_user_details param('user');
144-
my $name = blessed($user) ? $user->name : $user->{name};
145-
YAML::Dump { name => $name };
144+
if ( blessed($user) ) {
145+
if ( $user->isa('DBIx::Class::Row')) {
146+
$user = +{ $user->get_columns };
147+
}
148+
else {
149+
# assume some kind of hash-backed object
150+
$user = \%$user;
151+
}
152+
}
153+
YAML::Dump $user;
146154
};
147155

148156
get '/get_user_mark/:realm' => sub {
149157
my $realm = param 'realm';
150158
content_type 'text/x-yaml';
151159
my $user = get_user_details 'mark', $realm;
152-
my $name = blessed($user) ? $user->name : $user->{name};
153-
YAML::Dump { name => $name };
160+
if ( blessed($user) ) {
161+
if ( $user->isa('DBIx::Class::Row')) {
162+
$user = +{ $user->get_columns };
163+
}
164+
else {
165+
# assume some kind of hash-backed object
166+
$user = \%$user;
167+
}
168+
}
169+
YAML::Dump $user;
170+
};
171+
172+
get '/can_test_realm_priority' => sub {
173+
app->with_plugin('Auth::Extensible')->config->{realms}->{config2}
174+
->{priority};
154175
};
155176

156-
157177
1;

0 commit comments

Comments
 (0)