mirror of
https://github.com/graygnuorg/pound.git
synced 2026-10-23 22:28:53 +03:00
* NEWS: Document changes. * doc/pound.texi: Likewise. * src/http.c (accessor_query): If argument is given, prefix it to the expansion, if the query part is present. (accessors): Change declaration of "query". (find_accessor): Handle optional and mandatory arguments. Return textual error description along with the NULL return. All callers changed. * tests/reqacc.at: Test expansion of "%[query ?]".
130 lines
1.9 KiB
Plaintext
130 lines
1.9 KiB
Plaintext
# This file is part of pound testsuite. -*- autotest -*-
|
|
# Copyright (C) 2023-2026 Sergey Poznyakoff
|
|
#
|
|
# Pound is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# Pound is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with pound. If not, see <http://www.gnu.org/licenses/>.
|
|
AT_SETUP([Request accessors])
|
|
AT_KEYWORDS([rewrite reqacc accessor])
|
|
|
|
PT_CHECK([ListenHTTP
|
|
Service
|
|
Rewrite
|
|
SetPath ["/echo%[url]"]
|
|
End
|
|
Backend
|
|
Address
|
|
Port
|
|
End
|
|
End
|
|
End
|
|
],
|
|
[GET /one
|
|
end
|
|
|
|
200
|
|
x-orig-uri: /echo/one
|
|
end])
|
|
|
|
PT_CHECK([ListenHTTP
|
|
Service
|
|
Rewrite
|
|
SetPath ["/echo%[path]"]
|
|
End
|
|
Backend
|
|
Address
|
|
Port
|
|
End
|
|
End
|
|
End
|
|
],
|
|
[GET /one
|
|
end
|
|
|
|
200
|
|
x-orig-uri: /echo/one
|
|
end])
|
|
|
|
PT_CHECK([ListenHTTP
|
|
Service
|
|
Rewrite
|
|
SetHeader ["X-Query: (%[query])"]
|
|
SetHeader ["X-Query-Pfx: (%[query ?])"]
|
|
End
|
|
Backend
|
|
Address
|
|
Port
|
|
End
|
|
End
|
|
End
|
|
],
|
|
[GET /echo/foo?dir=%2Fvar%2Flib&foo=bar
|
|
end
|
|
|
|
200
|
|
x-orig-header-X-Query: (dir=%2Fvar%2Flib&foo=bar)
|
|
x-orig-header-X-Query-Pfx: (?dir=%2Fvar%2Flib&foo=bar)
|
|
end
|
|
|
|
GET /echo/foo
|
|
end
|
|
|
|
200
|
|
x-orig-header-X-Query: ()
|
|
x-orig-header-X-Query-Pfx: ()
|
|
end
|
|
])
|
|
|
|
PT_CHECK([ListenHTTP
|
|
Service
|
|
Rewrite
|
|
SetHeader ["X-Dir: (%[param dir])"]
|
|
End
|
|
Backend
|
|
Address
|
|
Port
|
|
End
|
|
End
|
|
End
|
|
],
|
|
[GET /echo/foo?dir=%2Fvar%2Flib
|
|
end
|
|
|
|
200
|
|
x-orig-header-X-Dir: (%2Fvar%2Flib)
|
|
end
|
|
])
|
|
|
|
PT_CHECK([ListenHTTP
|
|
Service
|
|
Rewrite
|
|
SetHeader ["X-X-Foobar: (%[header x-foobar])"]
|
|
End
|
|
Backend
|
|
Address
|
|
Port
|
|
End
|
|
End
|
|
End
|
|
],
|
|
[GET /echo/foo
|
|
X-Foobar: quux
|
|
end
|
|
|
|
200
|
|
x-orig-header-X-X-Foobar: (quux)
|
|
end
|
|
])
|
|
|
|
AT_CLEANUP
|
|
|