testCreateController()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 18
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 12
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 18
rs 9.8666
1
<?php
2
3
namespace SilverStripe\VersionedAdmin\Tests\Controllers;
4
5
use SilverStripe\VersionedAdmin\Tests\Controller\HistoryControllerFactory\HistoryControllerFactoryExtension;
6
use SilverStripe\CMS\Controllers\CMSPageHistoryController;
0 ignored issues
show
Bug introduced by
The type SilverStripe\CMS\Control...MSPageHistoryController was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
7
use SilverStripe\CMS\Model\SiteTree;
8
use SilverStripe\Control\HTTPRequest;
9
use SilverStripe\Core\Injector\Injector;
10
use SilverStripe\Dev\SapphireTest;
11
use SilverStripe\VersionedAdmin\Controllers\CMSPageHistoryViewerController;
12
use SilverStripe\VersionedAdmin\Controllers\HistoryControllerFactory;
13
14
class HistoryControllerFactoryTest extends SapphireTest
15
{
16
    protected static $fixture_file = 'HistoryControllerFactoryTest.yml';
17
18
    protected static $illegal_extensions = [
19
        HistoryControllerFactory::class => '*'
20
    ];
21
22
    protected static $required_extensions = [
23
        HistoryControllerFactory::class => [HistoryControllerFactoryExtension::class]
24
    ];
25
26
    public function testCreateController()
27
    {
28
        $factory = new HistoryControllerFactory();
0 ignored issues
show
Deprecated Code introduced by
The class SilverStripe\VersionedAd...istoryControllerFactory has been deprecated: 1.1.0:2.0.0 ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

28
        $factory = /** @scrutinizer ignore-deprecated */ new HistoryControllerFactory();
Loading history...
29
30
        $controller = $factory->create(null);
31
        $this->assertInstanceOf(CMSPageHistoryViewerController::class, $controller);
32
33
        $this->mockRequest('page_one');
34
        $controller = $factory->create(null);
35
        $this->assertInstanceOf(CMSPageHistoryViewerController::class, $controller);
36
37
        $this->mockRequest('page_two');
38
        $controller = $factory->create(null);
39
        $this->assertInstanceOf(CMSPageHistoryViewerController::class, $controller);
40
41
        $this->mockRequest('page_three');
42
        $controller = $factory->create(null);
43
        $this->assertInstanceOf(CMSPageHistoryViewerController::class, $controller);
44
    }
45
46
    private function mockRequest($identifier)
47
    {
48
        $id = $this->idFromFixture(SiteTree::class, $identifier);
49
50
        $mockRequest = new HTTPRequest('GET', '');
51
        $mockRequest->setRouteParams(['ID' => $id]);
52
        Injector::inst()->registerService($mockRequest);
53
    }
54
}
55