File Coverage

blib/lib/OpenID/Lite/Extension/UI/Request.pm
Criterion Covered Total %
statement 1 3 33.3
branch n/a
condition n/a
subroutine 1 1 100.0
pod n/a
total 2 4 50.0


line stmt bran cond sub pod time code
1             package OpenID::Lite::Extension::UI::Request;
2              
3 1     1   451 use Any::Moose;
  0            
  0            
4             extends 'OpenID::Lite::Extension::Request';
5              
6             use OpenID::Lite::Extension::UI qw(
7             UI_NS
8             UI_POPUP_NS
9             UI_LANG_NS
10             UI_NS_ALIAS
11             );
12              
13             has 'lang' => (
14             is => 'rw',
15             isa => 'Str',
16             # default => q{en-US}
17             );
18              
19             has 'mode' => (
20             is => 'rw',
21             isa => 'Str',
22             # default => q{popup},
23             );
24              
25             # RP should create popup to be 450 pixels wide and 500 pixels tall.
26             # The popup must have the address bar displayed.
27             # The popup must be in a standalone browser window.
28             # The contents of the popup must not be framed by the RP.
29             override 'append_to_params' => sub {
30             my ( $self, $params ) = @_;
31             $params->register_extension_namespace( UI_NS_ALIAS, UI_NS );
32             $params->set_extension( UI_NS_ALIAS, 'lang', $self->lang );
33             $params->set_extension( UI_NS_ALIAS, 'mode', $self->mode );
34             };
35              
36             sub from_provider_response {
37             my ( $class, $res ) = @_;
38             my $message = $res->req_params->copy();
39             my $ns_url = UI_NS;
40             my $alias = $message->get_ns_alias($ns_url);
41             return unless $alias;
42             my $data = $message->get_extension_args($alias) || {};
43             my $obj = $class->new();
44             my $result = $obj->parse_extension_args($data);
45             return $result ? $obj : undef;
46             }
47              
48             sub parse_extension_args {
49             my ( $self, $args ) = @_;
50             $self->lang( $args->{lang} ) if $args->{lang};
51             $self->mode( $args->{mode} ) if $args->{mode};
52             return 1;
53             }
54              
55             no Any::Moose;
56             __PACKAGE__->meta->make_immutable;
57             1;