1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
use strict;
use warnings FATAL => 'all';
use Apache::Test;
use Apache::TestUtil;
use Apache::TestRequest;
plan tests => 10, need_module 'brotli', need_module 'alias';
my $r;
# GET request against the location with Brotli.
$r = GET("/only_brotli/index.html", "Accept-Encoding" => "br");
ok t_cmp($r->code, 200);
ok t_cmp($r->header("Content-Encoding"), "br", "response Content-Encoding is OK");
if (!defined($r->header("Content-Length"))) {
t_debug "Content-Length was expected";
ok 0;
}
if (!defined($r->header("ETag"))) {
t_debug "ETag field was expected";
ok 0;
}
# GET request for a zero-length file.
$r = GET("/only_brotli/zero.txt", "Accept-Encoding" => "br");
ok t_cmp($r->code, 200);
ok t_cmp($r->header("Content-Encoding"), "br", "response Content-Encoding is OK");
if (!defined($r->header("Content-Length"))) {
t_debug "Content-Length was expected";
ok 0;
}
if (!defined($r->header("ETag"))) {
t_debug "ETag field was expected";
ok 0;
}
# HEAD request against the location with Brotli.
$r = HEAD("/only_brotli/index.html", "Accept-Encoding" => "br");
ok t_cmp($r->code, 200);
ok t_cmp($r->header("Content-Encoding"), "br", "response Content-Encoding is OK");
if (!defined($r->header("Content-Length"))) {
t_debug "Content-Length was expected";
ok 0;
}
if (!defined($r->header("ETag"))) {
t_debug "ETag field was expected";
ok 0;
}
if (have_module('deflate')) {
# GET request against the location with fallback to deflate (test that
# Brotli is chosen due to the order in SetOutputFilter).
$r = GET("/brotli_and_deflate/apache_pb.gif", "Accept-Encoding" => "gzip,br");
ok t_cmp($r->code, 200);
ok t_cmp($r->header("Content-Encoding"), "br", "response Content-Encoding is OK");
if (!defined($r->header("Content-Length"))) {
t_debug "Content-Length was expected";
ok 0;
}
if (!defined($r->header("ETag"))) {
t_debug "ETag field was expected";
ok 0;
}
$r = GET("/brotli_and_deflate/apache_pb.gif", "Accept-Encoding" => "gzip");
ok t_cmp($r->code, 200);
ok t_cmp($r->header("Content-Encoding"), "gzip", "response Content-Encoding is OK");
if (!defined($r->header("Content-Length"))) {
t_debug "Content-Length was expected";
ok 0;
}
if (!defined($r->header("ETag"))) {
t_debug "ETag field was expected";
ok 0;
}
} else {
skip "skipping tests without mod_deflate" foreach (1..4);
}
|