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