2015-05-19 02:35:35 +02:00
|
|
|
<?php
|
|
|
|
|
2017-01-26 09:28:42 +01:00
|
|
|
namespace SilverStripe\Blog\Tests;
|
|
|
|
|
|
|
|
use SilverStripe\Blog\Model\Blog;
|
|
|
|
use SilverStripe\Blog\Widgets\BlogTagsCloudWidget;
|
2016-12-15 04:41:49 +01:00
|
|
|
use SilverStripe\Dev\SapphireTest;
|
|
|
|
use SilverStripe\Control\Controller;
|
|
|
|
use SilverStripe\Control\Director;
|
2018-04-06 00:22:58 +02:00
|
|
|
use SilverStripe\Widgets\Model\Widget;
|
2015-05-19 02:35:35 +02:00
|
|
|
|
2016-12-15 04:41:49 +01:00
|
|
|
class BlogTagsCloudWidgetTest extends SapphireTest
|
|
|
|
{
|
2015-05-19 02:35:35 +02:00
|
|
|
/**
|
|
|
|
* @var string
|
|
|
|
*/
|
2017-01-26 09:28:42 +01:00
|
|
|
protected static $fixture_file = 'blog.yml';
|
2015-05-19 02:35:35 +02:00
|
|
|
|
2016-12-15 04:41:49 +01:00
|
|
|
public function testGetCMSFields()
|
|
|
|
{
|
2018-04-06 00:22:58 +02:00
|
|
|
if (!class_exists(Widget::class)) {
|
2015-05-19 02:35:35 +02:00
|
|
|
$this->markTestSkipped('Widgets module not installed');
|
|
|
|
}
|
|
|
|
|
|
|
|
$widget = new BlogTagsCloudWidget();
|
|
|
|
$fields = $widget->getCMSFields();
|
2017-09-14 00:59:01 +02:00
|
|
|
$names = [];
|
2015-05-19 02:35:35 +02:00
|
|
|
foreach ($fields as $field) {
|
|
|
|
array_push($names, $field->getName());
|
|
|
|
}
|
|
|
|
|
2017-09-14 00:59:01 +02:00
|
|
|
$expected = ['Title', 'Enabled', 'BlogID'];
|
2015-05-19 02:35:35 +02:00
|
|
|
$this->assertEquals($expected, $names);
|
|
|
|
}
|
|
|
|
|
2016-12-15 04:41:49 +01:00
|
|
|
public function testGetTags()
|
|
|
|
{
|
2018-04-06 00:22:58 +02:00
|
|
|
if (!class_exists(Widget::class)) {
|
2015-05-19 02:35:35 +02:00
|
|
|
$this->markTestSkipped('Widgets module not installed');
|
|
|
|
}
|
|
|
|
$widget = new BlogTagsCloudWidget();
|
2017-07-04 19:01:39 +02:00
|
|
|
$blog = $this->objFromFixture(Blog::class, 'FourthBlog');
|
2015-05-19 02:35:35 +02:00
|
|
|
$widget->BlogID = $blog->ID;
|
|
|
|
$widget->write();
|
|
|
|
$tags = $widget->getTags()->toArray();
|
|
|
|
|
|
|
|
$tag = $tags[0];
|
|
|
|
$this->assertEquals('Cat', $tag->TagName);
|
2016-05-20 03:18:59 +02:00
|
|
|
$this->assertEquals(Controller::join_links(Director::baseURL(), 'fourth-blog/tag/cat'), $tag->Link);
|
2015-05-19 02:35:35 +02:00
|
|
|
$this->assertEquals(2, $tag->TagCount);
|
|
|
|
$this->assertEquals(5, $tag->NormalizedTag);
|
|
|
|
|
|
|
|
$tag = $tags[1];
|
|
|
|
$this->assertEquals('Cool', $tag->TagName);
|
2016-05-20 03:18:59 +02:00
|
|
|
$this->assertEquals(Controller::join_links(Director::baseURL(), 'fourth-blog/tag/cool'), $tag->Link);
|
2015-05-19 02:35:35 +02:00
|
|
|
$this->assertEquals(3, $tag->TagCount);
|
|
|
|
$this->assertEquals(8, $tag->NormalizedTag);
|
|
|
|
|
|
|
|
$tag = $tags[2];
|
|
|
|
$this->assertEquals('Kiwi', $tag->TagName);
|
2016-05-20 03:18:59 +02:00
|
|
|
$this->assertEquals(Controller::join_links(Director::baseURL(), 'fourth-blog/tag/kiwi'), $tag->Link);
|
2015-05-19 02:35:35 +02:00
|
|
|
$this->assertEquals(1, $tag->TagCount);
|
|
|
|
$this->assertEquals(3, $tag->NormalizedTag);
|
|
|
|
|
|
|
|
$tag = $tags[3];
|
|
|
|
$this->assertEquals('Popular', $tag->TagName);
|
2016-05-20 03:18:59 +02:00
|
|
|
$this->assertEquals(Controller::join_links(Director::baseURL(), 'fourth-blog/tag/popular'), $tag->Link);
|
2015-05-19 02:35:35 +02:00
|
|
|
$this->assertEquals(4, $tag->TagCount);
|
|
|
|
$this->assertEquals(10, $tag->NormalizedTag);
|
|
|
|
}
|
|
|
|
}
|