Passed
Push — master ( 8d6223...3134d9 )
by Robbie
07:59
created

HistoryControllerFactoryTest::mockRequest()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 4
nc 1
nop 1
dl 0
loc 7
rs 10
c 0
b 0
f 0
1
<?php
2
namespace SilverStripe\VersionedAdmin\Tests\Controllers;
3
4
use SilverStripe\VersionedAdmin\Tests\Controller\HistoryControllerFactory\HistoryControllerFactoryExtension;
5
use SilverStripe\CMS\Controllers\CMSPageHistoryController;
6
use SilverStripe\CMS\Model\SiteTree;
7
use SilverStripe\Control\HTTPRequest;
8
use SilverStripe\Core\Injector\Injector;
9
use SilverStripe\Dev\SapphireTest;
10
use SilverStripe\VersionedAdmin\Controllers\CMSPageHistoryViewerController;
11
use SilverStripe\VersionedAdmin\Controllers\HistoryControllerFactory;
12
13
class HistoryControllerFactoryTest extends SapphireTest
14
{
15
    protected static $fixture_file = 'HistoryControllerFactoryTest.yml';
16
17
    protected static $illegal_extensions = [
18
        HistoryControllerFactory::class => '*'
19
    ];
20
21
    protected static $required_extensions = [
22
        HistoryControllerFactory::class => [HistoryControllerFactoryExtension::class]
23
    ];
24
25
    public function testCreateController()
26
    {
27
        $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

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