comparison h2_ssl.t @ 948:4dc302d8e04f

Tests: changed HTTP2 package to act as a class. Stopped exporting any subroutines. A subset of them now act as class methods.
author Sergey Kandaurov <pluknet@nginx.com>
date Fri, 17 Jun 2016 11:36:33 +0300
parents 724fcee9a355
children e9064d691790
comparison
equal deleted inserted replaced
947:b9e42c554ba7 948:4dc302d8e04f
89 $t->run(); 89 $t->run();
90 open STDERR, ">&", \*OLDERR; 90 open STDERR, ">&", \*OLDERR;
91 91
92 ############################################################################### 92 ###############################################################################
93 93
94 my ($sess, $sid, $frames, $frame); 94 my ($s, $sid, $frames, $frame);
95 95
96 # SSL/TLS connection, NPN 96 # SSL/TLS connection, NPN
97 97
98 SKIP: { 98 SKIP: {
99 eval { IO::Socket::SSL->can_npn() or die; }; 99 eval { IO::Socket::SSL->can_npn() or die; };
100 skip 'OpenSSL NPN support required', 1 if $@; 100 skip 'OpenSSL NPN support required', 1 if $@;
101 101
102 $sess = new_session(8081, SSL => 1, npn => 'h2'); 102 $s = Test::Nginx::HTTP2->new(8081, SSL => 1, npn => 'h2');
103 $sid = new_stream($sess, { path => '/h2' }); 103 $sid = $s->new_stream({ path => '/h2' });
104 $frames = h2_read($sess, all => [{ sid => $sid, fin => 1 }]); 104 $frames = $s->read(all => [{ sid => $sid, fin => 1 }]);
105 105
106 ($frame) = grep { $_->{type} eq "DATA" } @$frames; 106 ($frame) = grep { $_->{type} eq "DATA" } @$frames;
107 is($frame->{data}, 'h2', 'http variable - npn'); 107 is($frame->{data}, 'h2', 'http variable - npn');
108 108
109 } 109 }
112 112
113 SKIP: { 113 SKIP: {
114 eval { IO::Socket::SSL->can_alpn() or die; }; 114 eval { IO::Socket::SSL->can_alpn() or die; };
115 skip 'OpenSSL ALPN support required', 1 if $@; 115 skip 'OpenSSL ALPN support required', 1 if $@;
116 116
117 $sess = new_session(8081, SSL => 1, alpn => 'h2'); 117 $s = Test::Nginx::HTTP2->new(8081, SSL => 1, alpn => 'h2');
118 $sid = new_stream($sess, { path => '/h2' }); 118 $sid = $s->new_stream({ path => '/h2' });
119 $frames = h2_read($sess, all => [{ sid => $sid, fin => 1 }]); 119 $frames = $s->read(all => [{ sid => $sid, fin => 1 }]);
120 120
121 ($frame) = grep { $_->{type} eq "DATA" } @$frames; 121 ($frame) = grep { $_->{type} eq "DATA" } @$frames;
122 is($frame->{data}, 'h2', 'http variable - alpn'); 122 is($frame->{data}, 'h2', 'http variable - alpn');
123 123
124 } 124 }
127 127
128 SKIP: { 128 SKIP: {
129 eval { IO::Socket::SSL->can_npn() or die; }; 129 eval { IO::Socket::SSL->can_npn() or die; };
130 skip 'OpenSSL NPN support required', 1 if $@; 130 skip 'OpenSSL NPN support required', 1 if $@;
131 131
132 $sess = new_session(8081, SSL => 1, npn => 'h2'); 132 $s = Test::Nginx::HTTP2->new(8081, SSL => 1, npn => 'h2');
133 $sid = new_stream($sess, { path => '/sp' }); 133 $sid = $s->new_stream({ path => '/sp' });
134 $frames = h2_read($sess, all => [{ sid => $sid, fin => 1 }]); 134 $frames = $s->read(all => [{ sid => $sid, fin => 1 }]);
135 135
136 ($frame) = grep { $_->{type} eq "DATA" } @$frames; 136 ($frame) = grep { $_->{type} eq "DATA" } @$frames;
137 is($frame->{data}, 'HTTP/2.0', 'server_protocol variable - npn'); 137 is($frame->{data}, 'HTTP/2.0', 'server_protocol variable - npn');
138 138
139 } 139 }
142 142
143 SKIP: { 143 SKIP: {
144 eval { IO::Socket::SSL->can_alpn() or die; }; 144 eval { IO::Socket::SSL->can_alpn() or die; };
145 skip 'OpenSSL ALPN support required', 1 if $@; 145 skip 'OpenSSL ALPN support required', 1 if $@;
146 146
147 $sess = new_session(8081, SSL => 1, alpn => 'h2'); 147 $s = Test::Nginx::HTTP2->new(8081, SSL => 1, alpn => 'h2');
148 $sid = new_stream($sess, { path => '/sp' }); 148 $sid = $s->new_stream({ path => '/sp' });
149 $frames = h2_read($sess, all => [{ sid => $sid, fin => 1 }]); 149 $frames = $s->read(all => [{ sid => $sid, fin => 1 }]);
150 150
151 ($frame) = grep { $_->{type} eq "DATA" } @$frames; 151 ($frame) = grep { $_->{type} eq "DATA" } @$frames;
152 is($frame->{data}, 'HTTP/2.0', 'server_protocol variable - alpn'); 152 is($frame->{data}, 'HTTP/2.0', 'server_protocol variable - alpn');
153 153
154 } 154 }
157 157
158 SKIP: { 158 SKIP: {
159 eval { IO::Socket::SSL->can_npn() or die; }; 159 eval { IO::Socket::SSL->can_npn() or die; };
160 skip 'OpenSSL NPN support required', 1 if $@; 160 skip 'OpenSSL NPN support required', 1 if $@;
161 161
162 $sess = new_session(8081, SSL => 1, npn => 'h2'); 162 $s = Test::Nginx::HTTP2->new(8081, SSL => 1, npn => 'h2');
163 $sid = new_stream($sess, { path => '/scheme' }); 163 $sid = $s->new_stream({ path => '/scheme' });
164 $frames = h2_read($sess, all => [{ sid => $sid, fin => 1 }]); 164 $frames = $s->read(all => [{ sid => $sid, fin => 1 }]);
165 165
166 ($frame) = grep { $_->{type} eq "DATA" } @$frames; 166 ($frame) = grep { $_->{type} eq "DATA" } @$frames;
167 is($frame->{data}, 'https', 'scheme variable - npn'); 167 is($frame->{data}, 'https', 'scheme variable - npn');
168 168
169 } 169 }
172 172
173 SKIP: { 173 SKIP: {
174 eval { IO::Socket::SSL->can_alpn() or die; }; 174 eval { IO::Socket::SSL->can_alpn() or die; };
175 skip 'OpenSSL ALPN support required', 1 if $@; 175 skip 'OpenSSL ALPN support required', 1 if $@;
176 176
177 $sess = new_session(8081, SSL => 1, alpn => 'h2'); 177 $s = Test::Nginx::HTTP2->new(8081, SSL => 1, alpn => 'h2');
178 $sid = new_stream($sess, { path => '/scheme' }); 178 $sid = $s->new_stream({ path => '/scheme' });
179 $frames = h2_read($sess, all => [{ sid => $sid, fin => 1 }]); 179 $frames = $s->read(all => [{ sid => $sid, fin => 1 }]);
180 180
181 ($frame) = grep { $_->{type} eq "DATA" } @$frames; 181 ($frame) = grep { $_->{type} eq "DATA" } @$frames;
182 is($frame->{data}, 'https', 'scheme variable - alpn'); 182 is($frame->{data}, 'https', 'scheme variable - alpn');
183 183
184 } 184 }
187 187
188 SKIP: { 188 SKIP: {
189 eval { IO::Socket::SSL->can_npn() or die; }; 189 eval { IO::Socket::SSL->can_npn() or die; };
190 skip 'OpenSSL NPN support required', 1 if $@; 190 skip 'OpenSSL NPN support required', 1 if $@;
191 191
192 $sess = new_session(8081, SSL => 1, npn => 'h2'); 192 $s = Test::Nginx::HTTP2->new(8081, SSL => 1, npn => 'h2');
193 $sid = new_stream($sess, { path => '/https' }); 193 $sid = $s->new_stream({ path => '/https' });
194 $frames = h2_read($sess, all => [{ sid => $sid, fin => 1 }]); 194 $frames = $s->read(all => [{ sid => $sid, fin => 1 }]);
195 195
196 ($frame) = grep { $_->{type} eq "DATA" } @$frames; 196 ($frame) = grep { $_->{type} eq "DATA" } @$frames;
197 is($frame->{data}, 'on', 'https variable - npn'); 197 is($frame->{data}, 'on', 'https variable - npn');
198 198
199 } 199 }
202 202
203 SKIP: { 203 SKIP: {
204 eval { IO::Socket::SSL->can_alpn() or die; }; 204 eval { IO::Socket::SSL->can_alpn() or die; };
205 skip 'OpenSSL ALPN support required', 1 if $@; 205 skip 'OpenSSL ALPN support required', 1 if $@;
206 206
207 $sess = new_session(8081, SSL => 1, alpn => 'h2'); 207 $s = Test::Nginx::HTTP2->new(8081, SSL => 1, alpn => 'h2');
208 $sid = new_stream($sess, { path => '/https' }); 208 $sid = $s->new_stream({ path => '/https' });
209 $frames = h2_read($sess, all => [{ sid => $sid, fin => 1 }]); 209 $frames = $s->read(all => [{ sid => $sid, fin => 1 }]);
210 210
211 ($frame) = grep { $_->{type} eq "DATA" } @$frames; 211 ($frame) = grep { $_->{type} eq "DATA" } @$frames;
212 is($frame->{data}, 'on', 'https variable - alpn'); 212 is($frame->{data}, 'on', 'https variable - alpn');
213 213
214 } 214 }