Willkommen

Leistungen

' . '

Seit 1987 in Köln.

' . 'TeamMehr'; public function testSummarizesHtml(): void { $summary = RenderSummary::fromHtml(self::HTML); self::assertSame([['level' => 1, 'text' => 'Willkommen'], ['level' => 3, 'text' => 'Leistungen']], $summary['headings']); self::assertSame(['Seit 1987 in Köln.', 'Beratung'], $summary['texts']); self::assertSame(['text' => 'in Köln', 'href' => '/kontakt'], $summary['links'][0]); self::assertSame( [['src' => 'https://k.test/a.jpg', 'alt' => 'Team'], ['src' => 'https://k.test/b.jpg', 'alt' => null]], $summary['images'] ); self::assertSame( [ 'Sprung in der Überschriftenhierarchie: h1 → h3 ("Leistungen").', 'Bild ohne Alt-Text: https://k.test/b.jpg', 'Link ohne Ziel: "Mehr".', ], $summary['warnings'] ); self::assertSame([], RenderSummary::fromHtml('')['headings']); self::assertCount(2, RenderSummary::fromHtml(str_repeat('

x

', 5), 2)['texts']); } public function testRendersTheEntryAndAddsNotes(): void { $post = new WP_Post(['ID' => 7, 'post_type' => 'page', 'post_password' => 'geheim']); Functions\when('get_post')->justReturn($post); Functions\when('current_user_can')->justReturn(true); Functions\when('get_permalink')->justReturn('https://k.test/start/'); $schema = Mockery::mock(ContentSchema::class); $schema->allows('isManaged')->andReturn(true); $renderer = Mockery::mock(PageRenderer::class); $renderer->expects('render')->with($post)->andReturn(self::HTML); $ability = new PageRenderSummaryAbility($schema, $renderer); self::assertTrue($ability->permission(['post_id' => 7])); $result = $ability->execute(['post_id' => 7]); self::assertSame(7, $result['post_id']); self::assertSame('https://k.test/start/', $result['url']); self::assertCount(2, $result['headings']); self::assertCount(2, $result['notes']); self::assertTrue($ability->isDirect()); self::assertTrue($ability->annotations()['readonly']); } }