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   1282 use strict;
  4         7  
  4         95  
4 4     4   15 use warnings;
  4         7  
  4         91  
5              
6 4         22 use parent qw(
7             Net::WebSocket::Frame
8             Net::WebSocket::Base::Typed
9 4     4   18 );
  4         6  
10              
11 4     4   163 use Net::WebSocket::X ();
  4         8  
  4         58  
12              
13 4     4   17 use constant get_fin => 1;
  4         7  
  4         210  
14 4     4   25 use constant is_control_frame => 1;
  4         9  
  4         618  
15              
16             sub _assemble_length {
17 6     6   12 my ($class, $payload_sr) = @_;
18              
19 6 50       16 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         22 return( chr(length $$payload_sr), q<> );
26             }
27              
28             sub new {
29 6     6 0 19 my ($class, @opts) = @_;
30              
31 6         24 return $class->SUPER::new(
32             @opts,
33             fin => 1,
34             );
35             }
36              
37             1;