handle($request, []); self::assertSame(200, $response->status); self::assertStringContainsString('text/html', $response->headers['Content-Type'] ?? ''); self::assertSame('nosniff', $response->headers['X-Content-Type-Options']); self::assertStringContainsString('default-src', $response->headers['Content-Security-Policy']); self::assertStringContainsString('id="bf-match-header"', $response->body); self::assertStringContainsString('id="bf-end-turn"', $response->body); self::assertStringContainsString('id="bf-grid"', $response->body); self::assertStringContainsString('id="bf-panel"', $response->body); self::assertStringContainsString('id="bf-action-move"', $response->body); self::assertStringContainsString('id="bf-action-attack"', $response->body); self::assertStringContainsString('id="bf-action-ability"', $response->body); self::assertStringContainsString('id="bf-selected-unit"', $response->body); self::assertStringContainsString('id="bf-log"', $response->body); self::assertStringContainsString('id="bf-result"', $response->body); self::assertStringContainsString('id="bf-winner"', $response->body); self::assertStringContainsString('id="bf-return-home"', $response->body); self::assertStringContainsString('src="/js/match.js"', $response->body); self::assertStringContainsString('name="csrf-token"', $response->body); } }