Files
curl-impersonate/tests
lwthiker a7cbfd9fed Add libcurl impersonation support in Firefox build
48415a4b00 added impersonation
capabilities to libcurl in the Chrome build. This adds the same
capabilities to the Firefox build as well.

curl-impersonate.patch generated from
b30b245b72
2022-02-28 10:18:04 +02:00
..
2022-02-27 23:21:00 +02:00
2022-02-27 23:21:00 +02:00
2022-02-26 22:50:11 +02:00

The tests verify that curl-impersonate has the same network signature as that of the supported browsers. They do not test curl's functionality itself.

Running the tests

The tests assume that you've built both curl-impersonate-chrome and curl-impersonate-ff docker images before (see Installation).

To run the tests, build with:

docker build -t curl-impersonate-tests tests/

then run with:

docker run --rm curl-impersonate-tests

This simply runs pytest in the container. You can pass additional flags to pytest such as --log-cli-level DEBUG.

How the tests work

For each supported browser, a packet capture is started while curl-impersonate is run with the relevant wrapper script. The Client Hello message is extracted from the capture, and compared against the known signature of the browser.

What's missing

The following tests are still missing:

  • Test that curl-impersonate sends the HTTP headers in the same order as the browser.
  • Test that curl-impersonate sends the HTTP/2 pseudo-headers in the same order as the browser.
  • Test that curl-impersonate sends the same HTTP/2 SETTINGS as the browser.