#############################################################################
#
# This is a configuration file for Privoxy-Regression-Test
-# (included in the source tarball's tools directory).
+# (included in the source tarball's tools directory and available at
+# https://www.privoxy.org/gitweb/?p=privoxy.git;a=blob;f=tools/privoxy-regression-test.pl;hb=HEAD).
#
-# After referencing it in your Privoxy configuration both Privoxy and
+# After referencing this file in your Privoxy configuration both Privoxy and
# Privoxy-Regression-Test should be good to go.
#
#############################################################################
#
-# Copyright (c) 2007-2020 Fabian Keil <fk@fabiankeil.de>
+# Copyright (c) 2007-2023 Fabian Keil <fk@fabiankeil.de>
#
# Permission to use, copy, modify, and distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
#############################################################################
{{settings}}
-for-privoxy-version=3.0.27
+for-privoxy-version=3.0.33
# Some dependencies Privoxy-Regression-Test should know about:
#
# Level 23 needs = config line enable-proxy-authentication-forwarding\s+1
# Level 24 needs = feature status FEATURE_CLIENT_TAGS Yes
# Level 25 needs = feature status FEATURE_HTTPS_INSPECTION No
+# Level 26 needs = feature status FEATURE_PCRE_HOST_PATTERNS Yes
#######################################################
# Enable taggers to activate the tests on demand
# Set Header = Referer: http://
# Expect Header = REMOVAL
#
-# Set Header = Referer: https://p.p/
+# Set Header = Referer: https://www.privoxy.org/
+# Expect Header = REMOVAL
+#
+# Set Header = Referer: http://www.privoxy.org/
# Expect Header = REMOVAL
TAG:^hide-referrer\{conditional-block\}$
# Set Header = Referer: http://
# Expect Header = Referer: http://p.p/
#
-# Set Header = Referer: https://p.p/
+# Set Header = Referer: https://www.privoxy.org/
+# Expect Header = Referer: http://p.p/
+#
+# Set Header = Referer: http://www.privoxy.org/
# Expect Header = Referer: http://p.p/
TAG:^hide-referrer\{conditional-forge\}$
TAG:^connection-sharing disabled$
{}
+# XXX: This test is expected to fail when using "https://p.p/"
+# as CGI prefix with https inspection enabled but can't
+# yet be automatically skipped. By design connections aren't
+# shared when using "https://" so Privoxy does not remove the
+# header.
# Set Header = Connection: close
# Expect Header = REMOVAL
# Level = 16
TAG:^No Host header$
{}
+# XXX: This test is expected to fail when using "https://p.p/"
+# as CGI prefix with https inspection enabled but can't
+# yet be automatically skipped. The reason for the test
+# failure is that Privoxy-Regression-Test only modifies
+# the Host header for the CONNECT request, not for the
+# actual request that follows. Changing that would not
+# fix the test though as a modified Host header in the
+# actual request would result in Privoxy attempting to
+# connect to it.
# Set Header = Host: whatever.example.org
# Expect Header = NO CHANGE
TAG:^Host header other than the target host$
# Expect Status Code = 404
# Level = 18
# Fetch Test = http://p.p/die
-# Expect Status Code = 200
+# Expect Status Code = 403
# Level = 19
# Fetch Test = http://p.p/show-status
# Fetch Test = http://config.privoxy.org/show-status?file=actions&index=0
# Fetch Test = http://p.p/favicon.ico
# Fetch Test = http://p.p/robots.txt
# Fetch Test = http://p.p/send-banner
+# Fetch Test = http://p.p/send-banner?type=r
+# Fetch Test = http://p.p/send-banner?type=auto
+# Fetch Test = http://p.p/send-banner?type=blank
+# Fetch Test = http://p.p/send-banner?type=pattern
# Trusted CGI Request = http://p.p/send-stylesheet
# Fetch Test = http://p.p/send-stylesheet
# Expect Status Code = 403
# Fetch Test = http://p.p/toggle-client-tag
# Expect Status Code = 403
# Level = 24
+# Fetch Test = http://p.p/wpad.dat
# Trusted CGI Request = http://p.p/edit-actions
# Expect Status Code = 302
# Level = 12
# Trusted CGI Request = http://p.p/send-stylesheet
+# CVE-2021-20217
+# Fetch Test = http://config.privoxy.org/?1&0
+# OVE-20210203-0001
+# Fetch Test = http://config.privoxy.org/show-url-info?url=0%%0A0
+
# The following tests depend on Privoxy being configured to deliver the user manual
# Fetch Test = http://p.p/user-manual
# Redirect Destination = http://redirected.example.net/¶meter1=part-of-the-redirected-url1¶meter2=part-of-the-redirected-url1
redirect2.example.net/
+# Redirected URL = http://redirect3.example.net/01-02-03-04-05-06-07-08-09
+# Redirect Destination = http://redirect3.example.net/09-08-07-06-05-04-03-02-01
+{+redirect{s@/(\d+)-(\d+)-(\d+)-(\d+)-(\d+)-(\d+)-(\d+)-(\d+)-(\d+)@/$9-$8-$7-$6-$5-$4-$3-$2-$1@}}
+redirect3.example.net/01-02-03-04-05-06-07-08-09
+
{+delay-response{1}}
# Fetch Test = http://config.privoxy.org/show-url-info?url=http%3A%2F%2Fwww.example.com%2Fprivoxy-test-delay-response
config.privoxy.org/show-url-info\?url=http%3A%2F%2Fwww\.example\.com%2Fprivoxy-test-delay-response
+
+{+block{Block with pcre host pattern}}
+# Blocked URL = http://aaa.example.org/
+# Level = 26
+PCRE-HOST-PATTERN:^a{3}\.example\.org$
+# Blocked URL = http://bbb.example.org/
+# Level = 26
+PCRE-HOST-PATTERN:^(bbb|ccc|ddd)\.example\.org$
+
+{+block{Block should not apply because the path pattern is left-anchored}}
+# Sticky Actions = -block
+# URL = http://www.example.org/tralala/blafasel
+www.example.org/blafasel