File Coverage

blib/lib/WWW/Bebo/API/Canvas.pm
Criterion Covered Total %
statement 40 41 97.5
branch 7 8 87.5
condition 3 3 100.0
subroutine 10 10 100.0
pod 6 6 100.0
total 66 68 97.0


line stmt bran cond sub pod time code
1             #######################################################################
2             # $Date$
3             # $Revision$
4             # $Author$
5             # ex: set ts=8 sw=4 et
6             #########################################################################
7             package WWW::Bebo::API::Canvas;
8 21     21   115 use warnings;
  21         38  
  21         763  
9 21     21   180 use strict;
  21         32  
  21         558  
10 21     21   98 use Carp;
  21         56  
  21         1352  
11              
12 21     21   124 use version; our $VERSION = qv('0.0.03');
  21         45  
  21         121  
13              
14             sub get_fb_params {
15 14     14 1 85 my $self = shift;
16 14         411 $self->base->query(shift);
17              
18             return {
19 42         1259 map { (/^fb_sig_ (.*) $/xms)[0] => $self->base->query->param($_) }
  75         254  
20 14         347 grep {m/^fb_sig_/xms} $self->base->query->param
21             };
22             }
23              
24             sub get_non_fb_params {
25 2     2 1 6 my $self = shift;
26 2         58 $self->base->query(shift);
27              
28             return {
29 4         129 map { $_ => $self->base->query->param($_) }
  14         191  
30 2         57 grep { !/^fb_sig_?/xms } $self->base->query->param
31             };
32             }
33              
34             sub validate_sig {
35 6     6 1 9 my $self = shift;
36 6         154 $self->base->query(shift);
37              
38 6         20 my $fb_params = $self->get_fb_params;
39 6 100       196 return unless $self->base->query->param('fb_sig');
40 2 50       62 return $fb_params
41             if $self->base->verify_sig(
42             params => $fb_params,
43             sig => $self->base->query->param('fb_sig'),
44             );
45              
46 0         0 return;
47             }
48              
49             sub get_user {
50 4     4 1 5 my $self = shift;
51 4         106 $self->base->query(shift);
52              
53 4         22 my $fb_params = $self->validate_sig;
54 4 100       38 return $fb_params->{'user'} if exists $fb_params->{'user'};
55              
56 3         16 return q{};
57             }
58              
59             sub in_fb_canvas {
60 2     2 1 4 my $self = shift;
61 2         54 $self->base->query(shift);
62              
63 2         7 return $self->get_fb_params->{'in_canvas'};
64             }
65              
66             sub in_frame {
67 3     3 1 5 my $self = shift;
68 3         73 $self->base->query(shift);
69              
70 3         9 my $fb_params = $self->get_fb_params;
71 3 100 100     51 return 1 if $fb_params->{'in_canvas'} or $fb_params->{'in_iframe'};
72              
73 1         6 return;
74             }
75              
76             1;
77             __END__