Completed
Push — master ( 4a6357...521c8c )
by Franco
17s queued 12s
created

ContentReviewReportTest   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 79
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 0
Metric Value
wmc 2
lcom 1
cbo 2
dl 0
loc 79
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
B testPagesDueForReviewReport() 0 37 1
A testPagesWithoutReviewScheduleReport() 0 22 1
1
<?php
2
3
namespace SilverStripe\ContentReview\Tests;
4
5
use SilverStripe\CMS\Controllers\CMSPageEditController;
6
use SilverStripe\CMS\Model\SiteTree;
7
use SilverStripe\ContentReview\Extensions\ContentReviewCMSExtension;
8
use SilverStripe\ContentReview\Extensions\ContentReviewDefaultSettings;
9
use SilverStripe\ContentReview\Extensions\ContentReviewOwner;
10
use SilverStripe\ContentReview\Extensions\SiteTreeContentReview;
11
use SilverStripe\ContentReview\Reports\PagesDueForReviewReport;
12
use SilverStripe\ContentReview\Reports\PagesWithoutReviewScheduleReport;
13
use SilverStripe\Dev\FunctionalTest;
14
use SilverStripe\ORM\FieldType\DBDatetime;
15
use SilverStripe\Security\Group;
16
use SilverStripe\Security\Member;
17
use SilverStripe\SiteConfig\SiteConfig;
18
19
class ContentReviewReportTest extends FunctionalTest
20
{
21
    /**
22
     * @var string
23
     */
24
    protected static $fixture_file = 'ContentReviewTest.yml';
25
26
    /**
27
     * @var array
28
     */
29
    protected static $required_extensions = [
30
        SiteTree::class              => [SiteTreeContentReview::class],
31
        Group::class                 => [ContentReviewOwner::class],
32
        Member::class                => [ContentReviewOwner::class],
33
        CMSPageEditController::class => [ContentReviewCMSExtension::class],
34
        SiteConfig::class            => [ContentReviewDefaultSettings::class],
35
    ];
36
37
    public function testPagesDueForReviewReport()
38
    {
39
        /** @var Member $editor */
40
        $editor = $this->objFromFixture(Member::class, "editor");
41
42
        $this->logInAs($editor);
43
44
        $report = new PagesDueForReviewReport();
45
46
        $report->parameterFields();
47
        $report->columns();
48
        $report->title();
49
50
        $results = $report->sourceRecords(array(
51
            "ReviewDateAfter"  => "2010-01-01",
52
            "ReviewDateBefore" => "2010-12-12",
53
        ));
54
55
        $this->assertEquals(array(
56
            "Contact Us Child",
57
            "Home",
58
            "About Us",
59
            "Staff",
60
            "Contact Us",
61
        ), $results->column("Title"));
62
63
        DBDatetime::set_mock_now("2010-02-13 00:00:00");
64
65
        $results = $report->sourceRecords(array());
66
67
        $this->assertEquals(array(
68
            "Home",
69
            "About Us",
70
        ), $results->column("Title"));
71
72
        DBDatetime::clear_mock_now();
73
    }
74
75
    public function testPagesWithoutReviewScheduleReport()
76
    {
77
        /** @var Member $editor */
78
        $editor = $this->objFromFixture(Member::class, "editor");
79
80
        $this->logInAs($editor);
81
82
        $report = new PagesWithoutReviewScheduleReport();
83
84
        $report->parameterFields();
85
        $report->columns();
86
        $report->title();
87
88
        $results = $report->sourceRecords();
89
90
        $this->assertEquals(array(
91
            "Home",
92
            "About Us",
93
            "Page without review date",
94
            "Page owned by group",
95
        ), $results->column("Title"));
96
    }
97
}
98