428 Commits

Author SHA1 Message Date
HoneyryderChuck
c4e8d7f55f run regression tests only for latest ruby 2021-06-02 19:03:03 +01:00
HoneyryderChuck
dbea29cca8 regressions for bugs fixed in 0.14.2 and 0.14.1 2021-06-02 19:00:14 +01:00
HoneyryderChuck
a14fa26c7c added new regression testing task 2021-06-02 18:44:05 +01:00
HoneyryderChuck
8b9da51c4b bumping delta checks for truffleruby 2021-05-31 14:29:25 +01:00
HoneyryderChuck
2025491cda moar info for tests 2021-05-31 13:55:18 +01:00
HoneyryderChuck
77c86c0c22 added test to check whether client times out on settings 2021-05-29 22:53:14 +01:00
HoneyryderChuck
9a34af9e27 moved test servlets to separate folder 2021-05-29 15:50:23 +01:00
HoneyryderChuck
df489676ac adding ntlm auth plugin 2021-05-27 19:11:15 +01:00
HoneyryderChuck
63ec59bb0e scoping squid config 2021-05-27 19:11:15 +01:00
HoneyryderChuck
dda1315db4 adding tests to enure that field order is respected, even when repeated, when performing form/multipart requests (Closes #126) 2021-05-27 19:11:15 +01:00
HoneyryderChuck
c61007ba0f do not forget the filename in those multipart spoofs 2021-05-27 17:53:45 +01:00
HoneyryderChuck
35df9c7683 fix: allow setting arbitrary content types for multipart requests
very useful when testing spoof requests.
2021-05-27 16:50:38 +01:00
HoneyryderChuck
a65104e19f added test for the reported bug 2021-05-26 17:30:50 +01:00
HoneyryderChuck
e6fbe82b41 removing unused code 2021-05-22 16:19:24 +01:00
HoneyryderChuck
2c3280b6d0 Merge branch 'issue-119' into 'master'
new option: origin

See merge request honeyryderchuck/httpx!131
2021-05-22 14:23:05 +00:00
HoneyryderChuck
9801cb7b31 update truffleruby to official images 2021-05-21 16:44:31 +01:00
HoneyryderChuck
76350d9ebb quieting logging of test grpc servers 2021-05-20 00:59:14 +01:00
HoneyryderChuck
ff5ed7be59 added support for TLS channel credentials 2021-05-20 00:59:14 +01:00
HoneyryderChuck
b09aef506e wrapping all responses from the grpc plugin in a GRPC::Call
calls are proxies which can access response metadata as it arrives. For
instance, it's possible to now get metadata (which are http headers)
before the response is fully streamed. #trailing_metadata will also be
empty until the response has been fully processed.

This builds on top of the stream plugin improvements foundation.
2021-05-20 00:11:26 +01:00
HoneyryderChuck
bbe5c2d114 added support for grpc deadline options 2021-05-07 16:55:48 +01:00
HoneyryderChuck
232b94590a grpc: added client and server cancellation request support 2021-05-07 16:55:48 +01:00
HoneyryderChuck
949f073738 added test to prove support for requests cancelled from server 2021-05-06 10:38:20 +01:00
HoneyryderChuck
7a60346bf7 Added trailer header support for writing requests
Request can also add their own trailer headers, either explicitly via
Request#trailers , or via request lifecycle callbacks
2021-05-06 10:38:20 +01:00
HoneyryderChuck
fd31d9de0d allow for compression of grpc messages; testing using grpc 2021-05-06 10:38:20 +01:00
HoneyryderChuck
837c7ddf17 allowing .deflate to be called synchronously 2021-05-06 10:38:20 +01:00
HoneyryderChuck
5772f83149 added client and server stream tests and implementation
bidi calls also "just" work (tm)
2021-05-05 13:18:47 +01:00
HoneyryderChuck
d6a03f3e24 first grpc+proto unary test + implementation 2021-05-04 20:09:50 +01:00
HoneyryderChuck
1cf6e5aac7 new option: origin
by setting the origin, one can pass relative paths to httpx, which will
be appended when building the request.
2021-05-04 20:09:50 +01:00
HoneyryderChuck
dbdf7b95a2 added initial test and implementation of a quasi-unary interface 2021-05-04 20:09:50 +01:00
HoneyryderChuck
ae4b7545b2 added the first grpc test, initially using the gprc gem stub client 2021-04-20 19:04:19 +01:00
HoneyryderChuck
96013c334c fixed socket errors tests (messages different in non-alpine) 2021-04-20 10:36:29 +01:00
HoneyryderChuck
b474dee12c update init script, don't need to install so much 2021-04-20 10:36:29 +01:00
HoneyryderChuck
00faafddc9 added tests around the tcp connect errors 2021-03-11 17:58:24 +00:00
HoneyryderChuck
fbf9b12a0b bugfix: ensuring :io option as hash works
while adding tests, found out that io as hash of authority => io wasn't
working due to missing uri extensions. Made sure the same works for unix
sockets.
2021-03-08 17:04:36 +00:00
HoneyryderChuck
e8ac876443 setting the upgrade handlers per session. 2021-03-07 16:18:44 +00:00
HoneyryderChuck
12d4885136 response body now holds the full options from the request 2021-03-05 19:04:09 +00:00
HoneyryderChuck
7fca78ad23 added custom upgrade plugin as example (for websockets) 2021-03-05 12:23:18 +00:00
HoneyryderChuck
a03e93e531 allow for oportunistic upgrades, such as the apache Upgrade: h2
this is achieved by a rework of the upgrade plugin, and the addition of
an h2 upgrade plugin. The idea is the following: if a response carries
an Upgrade header, and there's a handler for it, we should go for it.
The difference is:

* when the response is 101, this means that the negotiation must take
  place before the actual response comes in;
* when the response is 200, upgrading means reconnecting to the channel,
  and assume the new protocol for subsequent requests only.
2021-03-05 12:23:17 +00:00
HoneyryderChuck
72a397b841 added (and fixing bug for) test of subsequent request on upgraded
connection

After the connection has been upgraded and session is kept open,
subsequent requests were still trying to upgrade it. This fixes it by
marking the connection as upgraded, and falling back to normal
behaviour when it is.
2021-03-05 12:23:07 +00:00
HoneyryderChuck
a77091f9e7 refactor the h2c plugin on top of the upgrade plugin
By setting the h2c protocol handler, the rest became much simpler.

Formatting the upgrade request is a matter for the sub-plugin.
Therefore, the specific h2c request upgrade headers are built-in there.
2021-02-28 03:06:03 +00:00
HoneyryderChuck
825dcf867b resolver test: status might be an exception message 2021-02-19 17:13:19 +00:00
HoneyryderChuck
75c9f08964 added test for trailer headers (http/1 only) 2021-02-19 17:13:19 +00:00
HoneyryderChuck
5c4cf4dd9e regression test for issue fixed in v0.11.2
added a test for parsing an RFC-2616-compliant expires date in the
cookie, which fails without the fix.
2021-02-17 01:23:16 +00:00
HoneyryderChuck
a2895d456f regression test for bug fixed in 0.11.3
created a test server which removes the content-length. Taken extra
condition into account, that the close might manifest itself while
selecting on the socket; at that point we're out of the consumption
loop, so better not to deal with throwing :called
2021-02-17 00:55:05 +00:00
HoneyryderChuck
7082f63e4e more explicit error message in multipart test 2021-02-16 18:27:05 +00:00
HoneyryderChuck
10bb2fbfd2 removed test logging 2021-02-07 15:52:28 +00:00
HoneyryderChuck
9ca4cbe68b yield error response on frame protocol errors for a given stream
stream HTTP/2 framing errors were being yielded directly into the connection. This had
the issue of not closing the request, thereby causing an infinite loop
when closing the connection. This seemed to be the issue in CI.
2021-02-07 15:16:26 +00:00
HoneyryderChuck
5a9277d8f4 logging multipart retry test, this seems to be the onne hanging from time to time... 2021-02-06 16:34:47 +00:00
HoneyryderChuck
1724c0f913 waiting for localstack to be up before running the tests in CI 2021-02-06 16:24:35 +00:00
HoneyryderChuck
ef8ad355e9 show the header in the logs when aws sigv4 fails 2021-02-06 16:24:35 +00:00