69 lines
2.0 KiB
PHP
69 lines
2.0 KiB
PHP
<?php
|
|
|
|
namespace Tests;
|
|
|
|
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
|
use Illuminate\Support\Facades\Event;
|
|
use Symfony\Component\DomCrawler\Crawler;
|
|
|
|
class HeadComposerTest extends TestCase
|
|
{
|
|
use DatabaseTransactions;
|
|
|
|
public function testAddFavicon()
|
|
{
|
|
$this->get('/')->assertSee(config('options.favicon_url'));
|
|
|
|
option(['favicon_url' => '/a']);
|
|
$this->get('/')->assertSee(url('/a'));
|
|
|
|
option(['favicon_url' => 'http://example.com/icon']);
|
|
$this->get('/')->assertSee('http://example.com/icon');
|
|
}
|
|
|
|
public function testApplyThemeColor()
|
|
{
|
|
$crawler = new Crawler($this->get('/')->getContent());
|
|
$this->assertCount(1, $crawler->filter('meta[name="theme-color"]'));
|
|
}
|
|
|
|
public function testSeo()
|
|
{
|
|
option([
|
|
'meta_keywords' => 'kw',
|
|
'meta_description' => 'desc',
|
|
'meta_extras' => '<meta name=fake><div id=disallowed></div>',
|
|
]);
|
|
$crawler = new Crawler($this->get('/')->getContent());
|
|
$this->assertEquals(
|
|
'kw',
|
|
$crawler->filter('meta[name=keywords]')->attr('content')
|
|
);
|
|
$this->assertEquals(
|
|
'desc',
|
|
$crawler->filter('meta[name=description]')->attr('content')
|
|
);
|
|
$this->assertCount(1, $crawler->filter('meta[name=fake]'));
|
|
$this->assertCount(0, $crawler->filter('div#disallowed'));
|
|
}
|
|
|
|
public function testInjectStyles()
|
|
{
|
|
option(['custom_css' => 'div {} <style><div id=disallowed></div></style>']);
|
|
|
|
$this->get('/')->assertSee('div {}');
|
|
|
|
$crawler = new Crawler($this->get('/')->getContent());
|
|
$this->assertCount(0, $crawler->filter('div#disallowed'));
|
|
}
|
|
|
|
public function testAddExtra()
|
|
{
|
|
Event::listen(\App\Events\RenderingHeader::class, function ($event) {
|
|
$event->contents[] = '<meta name=appended>';
|
|
});
|
|
|
|
$this->get('/')->assertSee('<meta name=appended>', false);
|
|
}
|
|
}
|