From 09a78e2fc28c58489cb0d39544ce7b5c4c90a73a Mon Sep 17 00:00:00 2001 From: Chris Kankiewicz Date: Wed, 22 Sep 2021 16:57:32 -0700 Subject: [PATCH] Fixed breadcrumbs not returning crubs for directories with names that exist in the application base_path --- app/src/ViewFunctions/Breadcrumbs.php | 2 +- tests/ViewFunctions/BreadcrumbsTest.php | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/ViewFunctions/Breadcrumbs.php b/app/src/ViewFunctions/Breadcrumbs.php index 1077b9a..d4f123c 100644 --- a/app/src/ViewFunctions/Breadcrumbs.php +++ b/app/src/ViewFunctions/Breadcrumbs.php @@ -29,7 +29,7 @@ class Breadcrumbs extends ViewFunction /** Build a collection of breadcrumbs for a given path. */ public function __invoke(string $path): Collection { - return Str::explode($path, $this->directorySeparator)->diff( + return Str::explode($path, $this->directorySeparator)->diffAssoc( explode($this->directorySeparator, $this->config->get('base_path')) )->filter(static function (string $crumb): bool { return ! in_array($crumb, [null, '.']); diff --git a/tests/ViewFunctions/BreadcrumbsTest.php b/tests/ViewFunctions/BreadcrumbsTest.php index 7f0b169..ed2d35b 100644 --- a/tests/ViewFunctions/BreadcrumbsTest.php +++ b/tests/ViewFunctions/BreadcrumbsTest.php @@ -17,7 +17,8 @@ class BreadcrumbsTest extends TestCase 'foo' => '?dir=foo', 'bar' => '?dir=foo/bar', 'baz' => '?dir=foo/bar/baz', - ]), $breadcrumbs('foo/bar/baz')); + 'tests' => '?dir=foo/bar/baz/tests', + ]), $breadcrumbs('foo/bar/baz/tests')); } public function test_it_can_parse_breadcrumbs_for_dot_path(): void