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