diff --git a/src/Network/CurlResult.php b/src/Network/CurlResult.php index dc83182a6..04f183538 100644 --- a/src/Network/CurlResult.php +++ b/src/Network/CurlResult.php @@ -119,7 +119,7 @@ class CurlResult $header = ''; $base = $result; - while (preg_match('/^HTTP\/[1-2].+? [1-5][0-9][0-9]/', $base)) { + while (preg_match('/^HTTP\/[1-2].+?[1-5][0-9][0-9]/', $base)) { $chunk = substr($base, 0, strpos($base, "\r\n\r\n") + 4); $header .= $chunk; $base = substr($base, strlen($chunk)); diff --git a/tests/datasets/curl/about.body b/tests/datasets/curl/about.body new file mode 100644 index 000000000..b49bca8d9 --- /dev/null +++ b/tests/datasets/curl/about.body @@ -0,0 +1,189 @@ + + + + + + + + + + + + +mastodonten.de - Mastodonten.de + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+Mastodon +
+
+
+
+
+Mastodon +
+Sign up on another server +
+Ich habe die öffentliche Registrierung geschlossen, nachdem sich etwas über 1000 Nutzer bei mastodonten.de angemeldet hatten. Mastodonten.de ist ein Freizeit-Projekt. Würde es weiter wachsen, wäre es in der Freizeit, ohne Beeinträchtigungen meiner Familie, wegen des höheren Administrations- und Moderationsaufwands nicht mehr zu stemmen. Daher dieser Schritt. Jeder, der Nutzer von mastodonten.de kennt, kann sich aber von diesen einladen lassen. Ansonsten gibt es auch viele andere nette Instanzen. +
+
+ +I closed the public registration after a little over 1000 users had registered at mastodonten.de. Mastodonten.de is a leisure project. If it would grow further, it would be no more to stemmed in the spare time, without impairments of my family, because of the higher administration and moderation expenditure. Hence this step. Everybody who knows users of mastodonten.de can be invited by them. Otherwise there are also many other nice instances. +
+
+or +
+Log in + +
+
+
+
+Mastodonten.de +
+
+
+
+ +

+Mastodonten.de +Mastodon hosted on mastodonten.de +

+
+

mastodonten.de ist eine Mastodon Instanz offen für alle netten Leute (über 16). +Geht gut miteinander um (und lest die Regeln wenn ihr euch nicht sicher seid, was das heißt). Wer möchte, kann auch gerne etwas spenden, um den Betrieb von mastodonten.de zu unterstützen. + +
+
+mastodonten.de is a Mastodon instance open to nice people (over 16). +Be excellent to each other (and read the rules if you're not sure what that means). Who would like, can donate something, in order to support the operation of mastodonten.de. +

+
+
+
+
+
+
+Home to +1,034 +users +
+
+Who authored +82,821 +statuses +
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+

What is Mastodon?

+

Mastodon is a social network based on open web protocols and free, open-source software. It is decentralized like e-mail.

+
+ +
+
+
+
+
Built for real conversation
+With 500 characters at your disposal and support for granular content and media warnings, you can express yourself the way you want to. +
+
+ +
+
+
+
+
You’re a person, not a product
+Mastodon is not a commercial network. No advertising, no data mining, no walled gardens. There is no central authority. +
+
+ +
+
+
+
+
Always within reach
+Multiple apps for iOS, Android, and other platforms thanks to a developer-friendly API ecosystem allow you to keep up with your friends anywhere. +
+
+ +
+
+
+
+
A more humane approach
+Learning from failures of other networks, Mastodon aims to make ethical design choices to combat the misuse of social media. +
+
+ +
+
+
+ + +
+ +
+
+
+
+ + + + diff --git a/tests/datasets/curl/about.head b/tests/datasets/curl/about.head new file mode 100644 index 000000000..c1d4b165d --- /dev/null +++ b/tests/datasets/curl/about.head @@ -0,0 +1,21 @@ +HTTP/2 200 +date: Thu, 11 Oct 2018 18:43:54 GMT +content-type: text/html; charset=utf-8 +vary: Accept-Encoding +server: Mastodon +x-frame-options: DENY +x-content-type-options: nosniff +x-xss-protection: 1; mode=block +vary: Accept-Encoding +etag: W/"706e6c48957e1d46ecf9d7597a7880af" +cache-control: max-age=0, private, must-revalidate +set-cookie: _mastodon_session=v3kcy%2FW3aZYBBvZUohuwksEKwzYIyEUlEuJ1KqTAfWPKvVQq%2F4UuJ39zp621VyfpQNlvY46TL%2FYutzXowSLYQBNFCJcrEiF04aU0TdtHls9zynMiyeHhoVgCijOXWXNt9%2FCmpQ49RkNEujkv9NaJ0cum32MCVZKjE9%2BMKmLM%2F8ZygZeLBGJ7sg%3D%3D--QGIiU0%2FpXc3Aym8F--he2iRRPePOdtEs3z%2BufSXg%3D%3D; path=/; secure; HttpOnly +x-request-id: a0c0b8e7-cd60-4efa-b79b-cf1b0d5a0784 +x-runtime: 0.049566 +strict-transport-security: max-age=31536000; includeSubDomains; preload +x-frame-options: SAMEORIGIN +x-content-type-options: nosniff +referrer-policy: same-origin +content-security-policy: frame-ancestors 'none'; script-src 'self'; object-src 'self'; img-src * data: blob:; media-src 'self' data:; font-src 'self' data: https://fonts.gstatic.com/; connect-src 'self' blob: wss://mastodonten.de +x-xss-protection: 1; mode=block + diff --git a/tests/src/Network/CurlResultTest.php b/tests/src/Network/CurlResultTest.php new file mode 100644 index 000000000..79b950ca1 --- /dev/null +++ b/tests/src/Network/CurlResultTest.php @@ -0,0 +1,30 @@ + 200 ]); + + $this->assertTrue($curlResult->isSuccess()); + $this->assertSame($header, $curlResult->getHeader()); + $this->assertSame($body, $curlResult->getBody()); + } +} \ No newline at end of file