147 Commits

Author SHA1 Message Date
HoneyryderChuck
dce5c22fa0 fixing latest rubocopz 2021-09-20 12:37:48 +01:00
HoneyryderChuck
579ee4d0cc retries: apply some jitter on the retry after value 2021-09-12 16:10:50 +01:00
HoneyryderChuck
c95e926886 auto-corrected the easy ones first 2021-09-03 12:24:18 +01:00
HoneyryderChuck
f520785572 added content-type filtering to decoders 2021-08-10 13:50:34 +01:00
HoneyryderChuck
556c94a575 added multipart decooder, which overtakes on Response#form for multipart payloads 2021-08-09 15:54:25 +01:00
HoneyryderChuck
e5a120111c added tests for json and form (also multipart) decoders 2021-08-09 15:54:24 +01:00
HoneyryderChuck
e0a46dc7ec making the grpc plugin build a rpc definitions from ma grpc generic service, thereby diminishing boilerplate 2021-07-20 17:29:03 +01:00
HoneyryderChuck
fec85f29cd added test for cookie jar management, exemplifying what the cookie plugin should be doing 2021-07-15 15:00:29 +01:00
HoneyryderChuck
f9f13abb81 removing internal with_cookies usage 2021-07-15 14:59:44 +01:00
HoneyryderChuck
7e9b6c96f1 evicting existing cookies in the jar when containing same name, domain and path 2021-06-30 11:02:15 +03:00
HoneyryderChuck
2510f5730a making the test duplicate cookie fail, is it should only contain the last value for the a field 2021-06-26 15:15:09 +03:00
HoneyryderChuck
ce23db787e using more predictable uris for cookie jar tests, so they work outside of the docker setup 2021-06-26 14:39:36 +03:00
noraj
fbf8ef2f65 test duplicate cookie 2021-06-25 15:10:46 +02:00
HoneyryderChuck
dbea29cca8 regressions for bugs fixed in 0.14.2 and 0.14.1 2021-06-02 19:00:14 +01:00
HoneyryderChuck
df489676ac adding ntlm auth plugin 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
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
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
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
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
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
HoneyryderChuck
ae1060157a changing the name of the plugin to aws_sdk_authentication, removing depenndency on s3 gem (only aws-sdk-core) 2021-02-02 18:33:24 +00:00
HoneyryderChuck
463dad46cb added the aws signature on top of the aws-sigv4 plugin, with support for using aws-sdk-core ready-made config 2021-02-02 18:33:24 +00:00
HoneyryderChuck
f415d1b66b added tests for aws sigv4 2021-02-02 18:33:24 +00:00
HoneyryderChuck
cbfdfed6c4 socks5 test covering failed authenticationn path 2021-01-14 00:35:22 +00:00
HoneyryderChuck
c5512dbbeb enable push frames in no push test in order to force refusal 2021-01-14 00:34:51 +00:00
HoneyryderChuck
a29961962b allowing multipart requests to be retried (although, to be fair, user has to push a lot of knobs to do so) 2021-01-13 13:40:05 +00:00
HoneyryderChuck
42297cd38d simplifying apis, testing pathnames 2021-01-13 12:27:13 +00:00
HoneyryderChuck
25d5e93248 added additional tests for the future accepted variationns of multipart parameters 2021-01-13 00:00:09 +00:00