silverstripe-contentreview/tests/php/ContentReviewReportTest.php

102 lines
3.0 KiB
PHP
Raw Normal View History

2014-02-24 01:38:16 +01:00
<?php
namespace SilverStripe\ContentReview\Tests;
use SilverStripe\CMS\Controllers\CMSPageEditController;
use SilverStripe\CMS\Model\SiteTree;
use SilverStripe\ContentReview\Extensions\ContentReviewCMSExtension;
use SilverStripe\ContentReview\Extensions\ContentReviewDefaultSettings;
use SilverStripe\ContentReview\Extensions\ContentReviewOwner;
use SilverStripe\ContentReview\Extensions\SiteTreeContentReview;
use SilverStripe\ContentReview\Reports\PagesDueForReviewReport;
use SilverStripe\ContentReview\Reports\PagesWithoutReviewScheduleReport;
use SilverStripe\Dev\FunctionalTest;
use SilverStripe\ORM\FieldType\DBDatetime;
use SilverStripe\Security\Group;
use SilverStripe\Security\Member;
use SilverStripe\SiteConfig\SiteConfig;
2015-11-02 00:27:42 +01:00
class ContentReviewReportTest extends FunctionalTest
{
/**
* @var string
*/
protected static $fixture_file = 'ContentReviewTest.yml';
2015-11-02 00:27:42 +01:00
/**
* @var array
*/
protected static $required_extensions = [
SiteTree::class => [SiteTreeContentReview::class],
Group::class => [ContentReviewOwner::class],
Member::class => [ContentReviewOwner::class],
CMSPageEditController::class => [ContentReviewCMSExtension::class],
SiteConfig::class => [ContentReviewDefaultSettings::class],
];
2015-11-02 00:27:42 +01:00
public function testPagesDueForReviewReport()
{
/** @var Member $editor */
$editor = $this->objFromFixture(Member::class, "editor");
2015-11-02 00:27:42 +01:00
$this->logInAs($editor);
$report = new PagesDueForReviewReport();
$report->parameterFields();
$report->columns();
$report->title();
$results = $report->sourceRecords([
"ReviewDateAfter" => "2010-01-01",
"ReviewDateBefore" => "2010-12-12",
]);
2015-11-02 00:27:42 +01:00
$this->assertListContains([
['Title' => 'Contact Us Child'],
['Title' => 'Home'],
['Title' => 'About Us'],
['Title' => 'Staff'],
['Title' => 'Contact Us'],
], $results);
$this->assertListNotContains([
['Title' => 'Page without review date'],
['Title' => 'Page owned by group'],
], $results);
2015-11-02 00:27:42 +01:00
DBDatetime::set_mock_now("2010-02-13 00:00:00");
2014-02-24 01:38:16 +01:00
$results = $report->sourceRecords([]);
2015-11-02 00:27:42 +01:00
$this->assertEquals([
2015-11-02 00:27:42 +01:00
"Home",
"About Us",
], $results->column("Title"));
2015-11-02 00:27:42 +01:00
DBDatetime::clear_mock_now();
2015-11-02 00:27:42 +01:00
}
public function testPagesWithoutReviewScheduleReport()
{
/** @var Member $editor */
$editor = $this->objFromFixture(Member::class, "editor");
2015-11-02 00:27:42 +01:00
$this->logInAs($editor);
$report = new PagesWithoutReviewScheduleReport();
$report->parameterFields();
$report->columns();
$report->title();
$results = $report->sourceRecords();
$this->assertEquals([
2015-11-02 00:27:42 +01:00
"Home",
"About Us",
"Page without review date",
"Page owned by group",
], $results->column("Title"));
2015-11-02 00:27:42 +01:00
}
}