Files
faveo/vendor/davejamesmiller/laravel-breadcrumbs/tests/integration/IntegrationTest.php
2016-06-13 20:41:55 +05:30

62 lines
1.6 KiB
PHP

<?php
class IntegrationTest extends TestCase {
public function setUp()
{
parent::setUp();
Breadcrumbs::register('home', function($breadcrumbs) {
$breadcrumbs->push('Home', '/');
});
Breadcrumbs::register('category', function($breadcrumbs, $category) {
$breadcrumbs->parent('home');
$breadcrumbs->push($category->title, '/category/' . $category->id);
});
Breadcrumbs::register('post', function($breadcrumbs, $post) {
$breadcrumbs->parent('category', $post->category);
$breadcrumbs->push($post->title, '/blog/' . $post->id);
});
$this->post = (object) [
'id' => 123,
'title' => 'Sample Post',
'category' => (object) [
'id' => 456,
'title' => 'Sample Category',
],
];
}
public function testGenerate()
{
$breadcrumbs = Breadcrumbs::generate('post', $this->post);
$this->assertCount(3, $breadcrumbs);
$this->assertSame('Home', $breadcrumbs[0]->title);
$this->assertSame('/', $breadcrumbs[0]->url);
$this->assertTrue($breadcrumbs[0]->first);
$this->assertFalse($breadcrumbs[0]->last);
$this->assertSame('Sample Category', $breadcrumbs[1]->title);
$this->assertSame('/category/456', $breadcrumbs[1]->url);
$this->assertFalse($breadcrumbs[1]->first);
$this->assertFalse($breadcrumbs[1]->last);
$this->assertSame('Sample Post', $breadcrumbs[2]->title);
$this->assertSame('/blog/123', $breadcrumbs[2]->url);
$this->assertFalse($breadcrumbs[2]->first);
$this->assertTrue($breadcrumbs[2]->last);
}
public function testRender()
{
$html = Breadcrumbs::render('post', $this->post);
$this->assertXmlStringEqualsXmlFile(__DIR__ . '/../fixtures/integration.html', $html);
}
}