From b46aeab614368c68c7d5158f96db8018a5a25f14 Mon Sep 17 00:00:00 2001 From: Chris Kankiewicz Date: Mon, 13 Apr 2020 12:01:53 -0700 Subject: [PATCH] Fixed breadcrumbs omitting directories named '0' --- app/src/ViewFunctions/Breadcrumbs.php | 4 +++- tests/ViewFunctions/BreadcrumbsTest.php | 24 +++++++++++------------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/app/src/ViewFunctions/Breadcrumbs.php b/app/src/ViewFunctions/Breadcrumbs.php index 3b4e138..e25eb15 100644 --- a/app/src/ViewFunctions/Breadcrumbs.php +++ b/app/src/ViewFunctions/Breadcrumbs.php @@ -41,7 +41,9 @@ class Breadcrumbs extends ViewFunction { $breadcrumbs = Str::explode($path, $this->directorySeparator)->diff( explode($this->directorySeparator, $this->container->get('base_path')) - )->filter(); + )->filter(function ($value): bool { + return $value !== null; + }); return $breadcrumbs->filter(function (string $crumb) { return $crumb !== '.'; diff --git a/tests/ViewFunctions/BreadcrumbsTest.php b/tests/ViewFunctions/BreadcrumbsTest.php index 3a13601..e84c2d1 100644 --- a/tests/ViewFunctions/BreadcrumbsTest.php +++ b/tests/ViewFunctions/BreadcrumbsTest.php @@ -46,19 +46,6 @@ class BreadcrumbsTest extends TestCase ]), $breadcrumbs('foo/bar&baz')); } - public function test_it_can_parse_breadcrumbs_from_a_subdirectory(): void - { - $_SERVER['SCRIPT_NAME'] = '/some/dir/index.php'; - - $breadcrumbs = new Breadcrumbs($this->container); - - $this->assertEquals(Collection::make([ - 'foo' => '?dir=foo', - 'bar' => '?dir=foo/bar', - 'baz' => '?dir=foo/bar/baz', - ]), $breadcrumbs('foo/bar/baz')); - } - public function test_it_can_parse_breadcrumbs_from_the_path_with_back_slashes(): void { $breadcrumbs = new Breadcrumbs($this->container, '\\'); @@ -69,4 +56,15 @@ class BreadcrumbsTest extends TestCase 'baz' => '?dir=foo\bar\baz', ]), $breadcrumbs('foo\bar\baz')); } + + public function test_it_can_parse_breadcrumbs_from_the_path_with_zeros(): void + { + $breadcrumbs = new Breadcrumbs($this->container, '\\'); + + $this->assertEquals(Collection::make([ + 'foo' => '?dir=foo', + '0' => '?dir=foo\0', + 'bar' => '?dir=foo\0\bar', + ]), $breadcrumbs('foo\0\bar')); + } }