silverstripe-blog/tests/BlogTagTest.php

116 lines
4.1 KiB
PHP
Raw Normal View History

2013-10-10 00:09:28 +02:00
<?php
class BlogTagTest extends FunctionalTest {
2013-10-10 00:09:28 +02:00
static $fixture_file = "blog.yml";
public function setUp() {
SS_Datetime::set_mock_now("2013-10-10 20:00:00");
parent::setUp();
}
2015-02-08 08:03:55 +01:00
public function tearDown() {
SS_Datetime::clear_mock_now();
parent::tearDown();
}
2014-03-23 15:40:53 +01:00
/**
* Tests that any blog posts returned from $tag->BlogPosts() many_many are published,
* both by normal 'save & publish' functionality and by publish date.
**/
2013-10-10 00:09:28 +02:00
public function testBlogPosts() {
2014-03-23 15:40:53 +01:00
// Ensure the user is not logged in as admin (or anybody)
2013-10-10 00:09:28 +02:00
$member = Member::currentUser();
if($member) $member->logout();
$post = $this->objFromFixture("BlogPost", "blogpost1");
$tag = $this->objFromFixture("BlogTag", "firsttag");
2014-03-23 15:40:53 +01:00
$this->assertEquals(1, $tag->BlogPosts()->count(), "Tag blog post count");
2013-10-10 00:09:28 +02:00
}
public function testCanView() {
$this->useDraftSite();
$admin = $this->objFromFixture("Member", "admin");
$editor = $this->objFromFixture('Member', 'editor');
// The first blog can bew viewed by anybody
$tag = $this->objFromFixture("BlogTag", "firsttag");
$this->assertTrue($tag->canView($admin), "Admin should be able to view tag.");
$this->assertTrue($tag->canView($editor), "Editor should be able to view tag.");
$tag = $this->objFromFixture("BlogTag", "secondtag");
$this->assertTrue($tag->canView($admin), "Admin should be able to view tag.");
$this->assertFalse($tag->canView($editor), "Editor should not be able to view tag.");
}
public function testCanEdit() {
$this->useDraftSite();
$admin = $this->objFromFixture("Member", "admin");
$editor = $this->objFromFixture('Member', 'editor');
// The first blog can bew viewed by anybody
$tag = $this->objFromFixture("BlogTag", "firsttag");
$this->assertTrue($tag->canEdit($admin), "Admin should be able to edit tag.");
$this->assertTrue($tag->canEdit($editor), "Editor should be able to edit tag.");
$tag = $this->objFromFixture("BlogTag", "secondtag");
$this->assertTrue($tag->canEdit($admin), "Admin should be able to edit tag.");
$this->assertFalse($tag->canEdit($editor), "Editor should not be able to edit tag.");
$tag = $this->objFromFixture("BlogTag", "thirdtag");
$this->assertTrue($tag->canEdit($admin), "Admin should always be able to edit tags.");
$this->assertTrue($tag->canEdit($editor), "Editor should be able to edit tag.");
}
public function testCanCreate() {
$this->useDraftSite();
$admin = $this->objFromFixture("Member", "admin");
$editor = $this->objFromFixture('Member', 'editor');
// The first blog can bew viewed by anybody
$tag = $this->objFromFixture("BlogTag", "firsttag");
$this->assertTrue($tag->canCreate($admin), "Admin should be able to create tag.");
$this->assertTrue($tag->canCreate($editor), "Editor should be able to create tag.");
$tag = $this->objFromFixture("BlogTag", "secondtag");
$this->assertTrue($tag->canCreate($admin), "Admin should be able to create tag.");
$this->assertFalse($tag->canCreate($editor), "Editor should not be able to create tag.");
$tag = $this->objFromFixture("BlogTag", "thirdtag");
$this->assertTrue($tag->canCreate($admin), "Admin should always be able to create tags.");
$this->assertTrue($tag->canCreate($editor), "Editor should be able to create tag.");
}
public function testCanDelete() {
$this->useDraftSite();
$admin = $this->objFromFixture("Member", "admin");
$editor = $this->objFromFixture('Member', 'editor');
// The first blog can bew viewed by anybody
$tag = $this->objFromFixture("BlogTag", "firsttag");
$this->assertTrue($tag->canDelete($admin), "Admin should be able to delete tag.");
$this->assertTrue($tag->canDelete($editor), "Editor should be able to delete tag.");
$tag = $this->objFromFixture("BlogTag", "secondtag");
$this->assertTrue($tag->canDelete($admin), "Admin should be able to delete tag.");
$this->assertFalse($tag->canDelete($editor), "Editor should not be able to delete tag.");
$tag = $this->objFromFixture("BlogTag", "thirdtag");
$this->assertTrue($tag->canDelete($admin), "Admin should always be able to delete tags.");
$this->assertTrue($tag->canDelete($editor), "Editor should be able to delete tag.");
}
2013-10-10 00:09:28 +02:00
}