| use strict; |
| use warnings FATAL => 'all'; |
| |
| # test the processing of variations of the key lengths and the keys |
| # numbers |
| |
| use Apache::Test; |
| use Apache::TestUtil; |
| use Apache::TestRequest qw(GET_BODY POST_BODY); |
| |
| my $location = "/TestApReq__big_input"; |
| |
| my @key_len = (5, 100, 305); |
| my @key_num = (5, 15, 26); |
| my @keys = ('a'..'z'); |
| |
| my @big_key_len = (100, 500, 5000, 10000); |
| my @big_key_num = (5, 15, 25); |
| my @big_keys = ('a'..'z'); |
| |
| plan tests => @key_len * @key_num + @big_key_len * @big_key_num; |
| |
| |
| # GET |
| my $len = 0; |
| for my $key_len (@key_len) { |
| for my $key_num (@key_num) { |
| my @query = (); |
| |
| for my $key (@keys[0..($key_num-1)]) { |
| my $pair = "$key=" . 'd' x $key_len; |
| $len += length $pair; |
| push @query, $pair; |
| } |
| my $query = join "&", @query; |
| $len += @query - 1; # the stick with two ends one '&' char off |
| |
| my $body = GET_BODY "$location?$query"; |
| t_debug "# of keys : $key_num, key_len $key_len"; |
| ok t_cmp($body, |
| ( ($key_len + 3) * $key_num - 1), |
| "GET long query"); |
| } |
| |
| } |
| |
| # POST |
| $len = 0; |
| for my $big_key_len (@big_key_len) { |
| for my $big_key_num (@big_key_num) { |
| my @query = (); |
| |
| for my $big_key (@big_keys[0..($big_key_num-1)]) { |
| my $pair = "$big_key=" . 'd' x $big_key_len; |
| $len += length $pair; |
| push @query, $pair; |
| } |
| my $query = join "&", @query; |
| $len += @query - 1; # the stick with two ends one '&' char off |
| |
| my $body = POST_BODY $location, content => $query; |
| t_debug "# of keys : $big_key_num, key_len $big_key_len"; |
| ok t_cmp($body, |
| ( ($big_key_len + 3) * $big_key_num - 1), |
| "POST big data"); |
| } |
| |
| } |