blob: 252b308c9bfe18d92ccf670a4e4ca893b0cb6e11 [file] [log] [blame]
#!/bin/bash
#
# Copyright 2010 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Author: morlovich@google.com (Maks Orlovich)
#
# Runs the measurement proxy tests. This is isolated in a separate file
# because this is also testing a deprecated feature of enabling gzip
# in a vhost without the inherit flags. This produces ugly warnings on
# apache restart that I want to move out of the default path.
# We need to know the directory this file is located in. Unfortunately,
# if we're 'source'd from a script in a different directory $(dirname $0) gives
# us the directory that *that* script is located in
this_dir=$(dirname "${BASH_SOURCE[0]}")
source "$this_dir/../automatic/system_test_helpers.sh" || exit 1
if [ "$SECONDARY_HOSTNAME" != "" ]; then
start_test Measurement proxy mode
# Wrong password --- 403.
OUT=$($CURL --silent --include --proxy $SECONDARY_HOSTNAME\
http://mpr.example.com/h/_/sicrit/www.modpagespeed.com/)
check_from "$OUT" fgrep -q "403 "
# Right one...
OUT=$($CURL --silent --include --proxy $SECONDARY_HOSTNAME\
http://mpr.example.com/h/b/secret/www.gstatic.com/psa/static/57ea3579bb97c7b4ca6658061d5c765b-mobilize.js)
# Note that this also checks that it got minified --- the original has
# spaces around the equal sign.
check_from "$OUT" fgrep -q "goog.constructNamespace_="
# Combined + minified CSS.
OUT=$($CURL --silent --include --proxy $SECONDARY_HOSTNAME\
http://mpr.example.com/h/b/secret/www.gstatic.com/psa/static/A.0e5d6484d7bf84edf94c17a8d6a6c6de-mobilize.css+0f58e3ef023072001e64bba88abaeeeb-mobilize.css,Mcc.JzQiGpc0_X.css.pagespeed.cf.0slDU6deBr.css)
check_from "$OUT" fgrep -q "psmob-map-button"
start_test Measurement proxy mode passthrough gzip
URL="http://mprpass.example.com/h/b/secret/www.gstatic.com/psa/static/57ea3579bb97c7b4ca6658061d5c765b-mobilize.js"
http_proxy=${SECONDARY_HOSTNAME} fetch_until -gzip $URL "wc -c" 69551 "" -le
start_test Measurement proxy mode rewrite gzip
URL="http://mpr.example.com/h/b/secret/www.gstatic.com/psa/static/57ea3579bb97c7b4ca6658061d5c765b-mobilize.js"
http_proxy=${SECONDARY_HOSTNAME} fetch_until -gzip $URL "wc -c" 65151 "" -le
start_test Measurement proxy mode passthrough nogzip
URL="http://mprpass.example.com/h/b/secret/www.gstatic.com/psa/static/57ea3579bb97c7b4ca6658061d5c765b-mobilize.js"
http_proxy=${SECONDARY_HOSTNAME} fetch_until $URL "wc -c" 288467 "" -ge
start_test Measurement proxy mode rewrite nogzip
URL="http://mpr.example.com/h/b/secret/www.gstatic.com/psa/static/57ea3579bb97c7b4ca6658061d5c765b-mobilize.js"
http_proxy=${SECONDARY_HOSTNAME} fetch_until $URL "wc -c" 241055 "" -ge
fi
start_test Efficacy of ModPagespeedFetchWithGzip
# TODO(sligocki): The serf_fetch_bytes_count should be available on
# this vhost's pagespeed_admin/statistics page. Why isn't it?
STATS=$OUTDIR/gzip_efficacy_stats
$WGET_DUMP $GLOBAL_STATISTICS_URL > $STATS.1
# Note: The client request will not served with gzip because we do not
# have an Accept-Encoding header, we are testing that the backend fetch
# uses gzip.
EXAMPLE_BIG_CSS="$EXAMPLE_ROOT/styles/big.css.pagespeed.ce.01O-NppLwe.css"
echo $WGET -O /dev/null --save-headers "$EXAMPLE_BIG_CSS"
$WGET -O /dev/null --save-headers "$EXAMPLE_BIG_CSS" 2>&1 \
| head | grep "HTTP request sent, awaiting response... 200 OK"
$WGET_DUMP $GLOBAL_STATISTICS_URL > $STATS.2
check_stat_op $STATS.1 $STATS.2 serf_fetch_bytes_count 200 -gt
check_stat_op $STATS.1 $STATS.2 serf_fetch_bytes_count 500 -lt
check_failures_and_exit