Fixed breadcrumbs omitting directories named '0'

This commit is contained in:
Chris Kankiewicz
2020-04-13 12:01:53 -07:00
parent bdd90f3867
commit b46aeab614
2 changed files with 14 additions and 14 deletions

View File

@@ -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 !== '.';

View File

@@ -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'));
}
}