| test_filter extend_cache_images rewrites an image tag. |
| URL=$EXAMPLE_ROOT/extend_cache.html?PageSpeedFilters=extend_cache_images |
| fetch_until $URL 'egrep -c src.*/Puzzle[.]jpg[.]pagespeed[.]ce[.].*[.]jpg' 1 |
| check run_wget_with_args $URL |
| echo about to test resource ext corruption... |
| #test_resource_ext_corruption $URL images/Puzzle.jpg.pagespeed.ce.91_WewrLtP.jpg |
| |
| start_test Attempt to fetch cache-extended image without hash should 404 |
| check_not run_wget_with_args $REWRITTEN_ROOT/images/Puzzle.jpg.pagespeed.ce..jpg |
| check fgrep "404 Not Found" $WGET_OUTPUT |
| |
| start_test Cache-extended image should respond 304 to an If-Modified-Since. |
| URL=$REWRITTEN_ROOT/images/Puzzle.jpg.pagespeed.ce.91_WewrLtP.jpg |
| DATE=$(date -R) |
| check_not run_wget_with_args --header "If-Modified-Since: $DATE" $URL |
| check fgrep "304 Not Modified" $WGET_OUTPUT |
| |
| start_test Cache-extended last-modified date should match origin |
| URL=$REWRITTEN_ROOT/images/Puzzle.jpg.pagespeed.ce.91_WewrLtP.jpg |
| ORIGIN_URL=$REWRITTEN_ROOT/images/Puzzle.jpg\?PageSpeed=off |
| rm -f $WGET_OUTPUT |
| $WGET_DUMP $ORIGIN_URL > $WGET_OUTPUT |
| echo $WGET_DUMP $ORIGIN_URL '>' $WGET_OUTPUT |
| origin_last_modified=$(extract_headers $WGET_OUTPUT | \ |
| scrape_header Last-Modified) |
| check [ "$origin_last_modified" != '' ]; |
| rm -f $WGET_OUTPUT |
| $WGET_DUMP $URL > $WGET_OUTPUT |
| extended_last_modified=$(extract_headers $WGET_OUTPUT | \ |
| scrape_header Last-Modified) |
| check [ "$origin_last_modified" = "$extended_last_modified" ] |
| |
| start_test Legacy format URLs should still work. |
| URL=$REWRITTEN_ROOT/images/ce.0123456789abcdef0123456789abcdef.Puzzle,j.jpg |
| # Note: Wget request is HTTP/1.0, so some servers respond back with |
| # HTTP/1.0 and some respond back 1.1. |
| $WGET_DUMP $URL > $FETCHED |
| check_200_http_response_file "$FETCHED" |
| |
| # Cache extend PDFs. |
| test_filter extend_cache_pdfs PDF cache extension |
| |
| # Saves any WGET_ARGS computed by 'test_filter' into WGET_EC, past the |
| # invocation of start_test Cache-extended PDFs below, which clears WGET_ARGS. |
| WGET_EC="$WGET_DUMP $WGET_ARGS" |
| |
| fetch_until -save $URL 'fgrep -c .pagespeed.' 3 |
| check grep -q 'a href=".*pagespeed.*\.pdf' $FETCH_FILE |
| check grep -q 'embed src=".*pagespeed.*\.pdf' $FETCH_FILE |
| check fgrep -q '<a href="example.notpdf">' $FETCH_FILE |
| check grep -q '<a href=".*pagespeed.*\.pdf">example.pdf?a=b' $FETCH_FILE |
| |
| start_test Cache-extended PDFs load and have the right mime type. |
| PDF_CE_URL=$(grep -o 'http://[^\"]*pagespeed.[^\"]*\.pdf' $FETCH_FILE | \ |
| head -n 1) |
| if [ -z "$PDF_CE_URL" ]; then |
| # If PreserveUrlRelativity is on, we need to find the relative URL and |
| # absolutify it ourselves. |
| PDF_CE_URL="$EXAMPLE_ROOT/" |
| PDF_CE_URL+=$(grep -o '[^\"]*pagespeed.[^\"]*\.pdf' $FETCH_FILE | head -n 1) |
| fi |
| echo Extracted cache-extended url $PDF_CE_URL |
| OUT=$($WGET_EC $PDF_CE_URL) |
| check_from "$OUT" grep -aq 'Content-Type: application/pdf' |