update v 1.0.7.5
This commit is contained in:
189
vendor/davejamesmiller/laravel-breadcrumbs/tests/unit/GeneratorTest.php
vendored
Normal file
189
vendor/davejamesmiller/laravel-breadcrumbs/tests/unit/GeneratorTest.php
vendored
Normal file
@@ -0,0 +1,189 @@
|
||||
<?php
|
||||
|
||||
use DaveJamesMiller\Breadcrumbs\Generator;
|
||||
use Mockery as m;
|
||||
|
||||
class GeneratorTest extends TestCase {
|
||||
|
||||
public function setUp()
|
||||
{
|
||||
parent::setUp();
|
||||
|
||||
$this->generator = new Generator;
|
||||
}
|
||||
|
||||
public function testCallbacks()
|
||||
{
|
||||
$this->generator->generate([
|
||||
'sample' => function($breadcrumbs)
|
||||
{
|
||||
$this->assertSame($this->generator, $breadcrumbs);
|
||||
},
|
||||
], 'sample', []);
|
||||
}
|
||||
|
||||
public function testCallbackParameters()
|
||||
{
|
||||
$this->generator->generate([
|
||||
'sample' => function($breadcrumbs, $num, $text)
|
||||
{
|
||||
$this->assertSame(1, $num);
|
||||
$this->assertSame('blah', $text);
|
||||
},
|
||||
], 'sample', [1, 'blah']);
|
||||
}
|
||||
|
||||
// $breadcrumbs->push($title)
|
||||
// $breadcrumb->title
|
||||
public function testPush_title()
|
||||
{
|
||||
$breadcrumbs = $this->generator->generate([
|
||||
'sample' => function($breadcrumbs)
|
||||
{
|
||||
$breadcrumbs->push('Home');
|
||||
},
|
||||
], 'sample', []);
|
||||
|
||||
$this->assertCount(1, $breadcrumbs);
|
||||
$this->assertSame('Home', $breadcrumbs[0]->title);
|
||||
$this->assertNull($breadcrumbs[0]->url);
|
||||
}
|
||||
|
||||
// $breadcrumbs->push($title, $url)
|
||||
// $breadcrumb->url
|
||||
public function testPush_title_url()
|
||||
{
|
||||
$breadcrumbs = $this->generator->generate([
|
||||
'sample' => function($breadcrumbs)
|
||||
{
|
||||
$breadcrumbs->push('Home', '/');
|
||||
},
|
||||
], 'sample', []);
|
||||
|
||||
$this->assertCount(1, $breadcrumbs);
|
||||
$this->assertSame('Home', $breadcrumbs[0]->title);
|
||||
$this->assertSame('/', $breadcrumbs[0]->url);
|
||||
}
|
||||
|
||||
// $breadcrumbs->push($title, $url, $data)
|
||||
// $breadcrumb->custom_attribute_name
|
||||
public function testPush_title_url_data()
|
||||
{
|
||||
$data = [
|
||||
'foo' => 'bar',
|
||||
'baz' => 'qux',
|
||||
'title' => 'should not be overwritten by custom data',
|
||||
];
|
||||
|
||||
$breadcrumbs = $this->generator->generate([
|
||||
'sample' => function($breadcrumbs)
|
||||
{
|
||||
$breadcrumbs->push('Home', '/', ['foo' => 'bar', 'title' => 'ignored']);
|
||||
},
|
||||
], 'sample', []);
|
||||
|
||||
$this->assertCount(1, $breadcrumbs);
|
||||
$this->assertSame('Home', $breadcrumbs[0]->title);
|
||||
$this->assertSame('/', $breadcrumbs[0]->url);
|
||||
$this->assertSame('bar', $breadcrumbs[0]->foo);
|
||||
}
|
||||
|
||||
public function testPushMultipleTimes()
|
||||
{
|
||||
$breadcrumbs = $this->generator->generate([
|
||||
'sample' => function($breadcrumbs)
|
||||
{
|
||||
$breadcrumbs->push('Level 1', '/1');
|
||||
$breadcrumbs->push('Level 2', '/2');
|
||||
$breadcrumbs->push('Level 3', '/3');
|
||||
},
|
||||
], 'sample', []);
|
||||
|
||||
$this->assertCount(3, $breadcrumbs);
|
||||
$this->assertSame('Level 1', $breadcrumbs[0]->title);
|
||||
$this->assertSame('Level 2', $breadcrumbs[1]->title);
|
||||
$this->assertSame('Level 3', $breadcrumbs[2]->title);
|
||||
$this->assertSame('/1', $breadcrumbs[0]->url);
|
||||
$this->assertSame('/2', $breadcrumbs[1]->url);
|
||||
$this->assertSame('/3', $breadcrumbs[2]->url);
|
||||
}
|
||||
|
||||
// $breadcrumbs->parent($name)
|
||||
public function testParent_name()
|
||||
{
|
||||
$breadcrumbs = $this->generator->generate([
|
||||
'home' => function($breadcrumbs)
|
||||
{
|
||||
$breadcrumbs->push('Home', '/');
|
||||
},
|
||||
'sample' => function($breadcrumbs)
|
||||
{
|
||||
$breadcrumbs->parent('home');
|
||||
$breadcrumbs->push('Page', '/page');
|
||||
},
|
||||
], 'sample', []);
|
||||
|
||||
$this->assertCount(2, $breadcrumbs);
|
||||
$this->assertSame('Home', $breadcrumbs[0]->title);
|
||||
$this->assertSame('/', $breadcrumbs[0]->url);
|
||||
$this->assertSame('Page', $breadcrumbs[1]->title);
|
||||
$this->assertSame('/page', $breadcrumbs[1]->url);
|
||||
}
|
||||
|
||||
// $breadcrumbs->parent($name, $param1, ...)
|
||||
public function testParent_name_params()
|
||||
{
|
||||
$breadcrumbs = $this->generator->generate([
|
||||
'parent' => function($breadcrumbs, $num, $text)
|
||||
{
|
||||
$this->assertSame(1, $num);
|
||||
$this->assertSame('blah', $text);
|
||||
},
|
||||
'sample' => function($breadcrumbs)
|
||||
{
|
||||
$breadcrumbs->parent('parent', 1, 'blah');
|
||||
},
|
||||
], 'sample', []);
|
||||
}
|
||||
|
||||
// $breadcrumbs->parentArray($name, $params)
|
||||
public function testParentArray_name_params()
|
||||
{
|
||||
$breadcrumbs = $this->generator->generate([
|
||||
'parent' => function($breadcrumbs, $num, $text)
|
||||
{
|
||||
$this->assertSame(1, $num);
|
||||
$this->assertSame('blah', $text);
|
||||
},
|
||||
'sample' => function($breadcrumbs)
|
||||
{
|
||||
$breadcrumbs->parentArray('parent', [1, 'blah']);
|
||||
},
|
||||
], 'sample', []);
|
||||
}
|
||||
|
||||
// $breadcrumb->first
|
||||
// $breadcrumb->last
|
||||
public function testFirstLast()
|
||||
{
|
||||
$breadcrumbs = $this->generator->generate([
|
||||
'sample' => function($breadcrumbs)
|
||||
{
|
||||
$breadcrumbs->push('Level 1', '/1');
|
||||
$breadcrumbs->push('Level 2', '/2');
|
||||
$breadcrumbs->push('Level 3', '/3');
|
||||
},
|
||||
], 'sample', []);
|
||||
|
||||
$this->assertCount(3, $breadcrumbs);
|
||||
|
||||
$this->assertTrue($breadcrumbs[0]->first, '$breadcrumbs[0]->first');
|
||||
$this->assertFalse($breadcrumbs[1]->first, '$breadcrumbs[1]->first');
|
||||
$this->assertFalse($breadcrumbs[2]->first, '$breadcrumbs[2]->first');
|
||||
|
||||
$this->assertFalse($breadcrumbs[0]->last, '$breadcrumbs[0]->last');
|
||||
$this->assertFalse($breadcrumbs[1]->last, '$breadcrumbs[1]->last');
|
||||
$this->assertTrue($breadcrumbs[2]->last, '$breadcrumbs[2]->last');
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user