Skip to content

Commit 47fb8ef

Browse files
committed
Fix unittest to handle page model
1 parent 3e0afe8 commit 47fb8ef

2 files changed

Lines changed: 10 additions & 8 deletions

File tree

src/Filter/FilterUrlBuilder.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,9 +195,10 @@ public function addFromCurrentRequest(FilterUrl $filterUrl, array $options = nul
195195
$length = $pageModel->urlSuffix ? -\strlen($pageModel->urlSuffix) : null;
196196
$start = ($pageModel->urlPrefix ? \strlen($pageModel->urlPrefix . '/') : 0)
197197
+ \strlen($pageModel->alias . '/');
198-
$fragments = \explode('/', \substr($requestUri, $start, $length));
198+
$slicedUri = \substr($requestUri, $start, $length);
199+
$fragments = '' !== $slicedUri ? \explode('/', $slicedUri) : [];
199200

200-
if (1 === \count($fragments) % 2) {
201+
if (!empty($fragments) && 1 === \count($fragments) % 2) {
201202
\array_unshift($fragments, 'auto_item');
202203
}
203204
\array_unshift($fragments, $pageModel->alias);

tests/Filter/FilterUrlBuilderTest.php

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,10 @@ public static function generateProvider(): array
7272
'parameters' => '/auto/slug/sluggy',
7373
'get-param' => 'get-value',
7474
],
75-
'page' => fn ($test) => $test->mockPage([
76-
'id' => 42,
77-
]),
75+
'page' => fn ($test) => $test->mockPage(
76+
['id' => 42, 'alias' => 'alias', 'urlSuffix' => '.html'],
77+
['id' => 42]
78+
),
7879
'get' => [
7980
'get2' => 'value',
8081
],
@@ -160,7 +161,7 @@ public function testGeneratesNonStandardPorts(): void
160161
new Request(
161162
['get-param' => 'get-value'],
162163
[],
163-
['pageModel' => $this->mockPage(['alias' => 'folder/page', 'id' => 42])],
164+
['pageModel' => $this->mockPage(['alias' => 'folder/page', 'id' => 42, 'urlSuffix' => '.html'])],
164165
[],
165166
[],
166167
[
@@ -191,13 +192,13 @@ private function mockRequestStack(array $requestGet, string $requestUrl, PageMod
191192
return $requestStack;
192193
}
193194

194-
private function mockPage(array $data): PageModel
195+
private function mockPage(array $data, array $rowData = null): PageModel
195196
{
196197
$mock = $this->getMockBuilder(PageModel::class)->disableOriginalConstructor()->getMock();
197198
$mock->method('__get')->willReturnCallback(
198199
fn (string $name) => $data[$name] ?? null
199200
);
200-
$mock->method('row')->willReturn($data);
201+
$mock->method('row')->willReturn($rowData ?? $data);
201202

202203
return $mock;
203204
}

0 commit comments

Comments
 (0)