File Coverage

blib/lib/Net/WebSocket/Base/ControlFrame.pm
Criterion Covered Total %
statement 23 25 92.0
branch 1 2 50.0
condition n/a
subroutine 8 8 100.0
pod 0 1 0.0
total 32 36 88.8


line stmt bran cond sub pod time code
1             package Net::WebSocket::Base::ControlFrame;
2              
3 4     4   1074 use strict;
  4         11  
  4         116  
4 4     4   21 use warnings;
  4         7  
  4         100  
5              
6 4         30 use parent qw(
7             Net::WebSocket::Frame
8             Net::WebSocket::Base::Typed
9 4     4   17 );
  4         19  
10              
11 4     4   146 use Net::WebSocket::X ();
  4         5  
  4         59  
12              
13 4     4   16 use constant get_fin => 1;
  4         7  
  4         182  
14 4     4   19 use constant is_control_frame => 1;
  4         7  
  4         484  
15              
16             sub _assemble_length {
17 6     6   12 my ($class, $payload_sr) = @_;
18              
19 6 50       13 if (length $$payload_sr > 125) {
20 0         0 my $type = $class->get_type();
21              
22 0         0 die Net::WebSocket::X->create('ControlPayloadTooLong', $type, $$payload_sr);
23             }
24              
25 6         21 return( chr(length $$payload_sr), q<> );
26             }
27              
28             sub new {
29 6     6 0 15 my ($class, @opts) = @_;
30              
31 6         52 return $class->SUPER::new(
32             @opts,
33             fin => 1,
34             );
35             }
36              
37             1;