From b979027137d279cd1a500d51b5d8558fdc5d93b6 Mon Sep 17 00:00:00 2001 From: Jason McCreary Date: Tue, 11 Oct 2022 15:16:49 -0400 Subject: [PATCH] Handle missing URL scheme --- src/Models/Request.php | 2 +- tests/Feature/Console/Commands/CurlCommandTest.php | 1 + tests/fixtures/missing-url-scheme.in | 1 + tests/fixtures/missing-url-scheme.out | 4 ++++ 4 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 tests/fixtures/missing-url-scheme.in create mode 100644 tests/fixtures/missing-url-scheme.out diff --git a/src/Models/Request.php b/src/Models/Request.php index 8390396..d30a89a 100644 --- a/src/Models/Request.php +++ b/src/Models/Request.php @@ -173,7 +173,7 @@ private static function parseData(array $data): array private static function buildUrl(array $url): string { - $output = $url['scheme'] . '://' . $url['host']; + $output = ($url['scheme'] ?? 'https') . '://' . ($url['host'] ?? ''); if (isset($url['port'])) { $output .= ':' . $url['port']; diff --git a/tests/Feature/Console/Commands/CurlCommandTest.php b/tests/Feature/Console/Commands/CurlCommandTest.php index 1b6e05e..36334a5 100644 --- a/tests/Feature/Console/Commands/CurlCommandTest.php +++ b/tests/Feature/Console/Commands/CurlCommandTest.php @@ -41,6 +41,7 @@ public function curlCommandFixtures() 'Initial connection timeout' => ['connect-timeout'], 'Entire transaction timeout' => ['max-timeout'], 'Ignore location flag' => ['ignore-location-flag'], + 'Missing URL scheme' => ['missing-url-scheme'], ]; } diff --git a/tests/fixtures/missing-url-scheme.in b/tests/fixtures/missing-url-scheme.in new file mode 100644 index 0000000..b56c1ce --- /dev/null +++ b/tests/fixtures/missing-url-scheme.in @@ -0,0 +1 @@ +curl -X POST -d 'foo=bar' example.com diff --git a/tests/fixtures/missing-url-scheme.out b/tests/fixtures/missing-url-scheme.out new file mode 100644 index 0000000..9ba9762 --- /dev/null +++ b/tests/fixtures/missing-url-scheme.out @@ -0,0 +1,4 @@ +Http::asForm() + ->post('https://example.com', [ + 'foo' => 'bar', + ]);