FileSubsitesTest   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 55
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 39
c 1
b 0
f 0
dl 0
loc 55
rs 10
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A testWritingSubsiteID() 0 37 1
A testTrivialFeatures() 0 12 1
1
<?php
2
3
namespace SilverStripe\Subsites\Tests;
4
5
use SilverStripe\Assets\File;
6
use SilverStripe\Assets\Folder;
7
use SilverStripe\Core\Config\Config;
8
use SilverStripe\Forms\FieldList;
9
use SilverStripe\Subsites\Extensions\FileSubsites;
10
use SilverStripe\Subsites\Model\Subsite;
11
12
class FileSubsitesTest extends BaseSubsiteTest
13
{
14
    protected static $fixture_file = 'SubsiteTest.yml';
15
16
    public function testTrivialFeatures()
17
    {
18
        $this->assertTrue(is_array(singleton(FileSubsites::class)->extraStatics()));
19
        $file = new File();
20
        $file->Name = 'FileTitle';
21
        $file->Title = 'FileTitle';
22
        $this->assertEquals(' * FileTitle', $file->alternateTreeTitle());
23
        $file->SubsiteID = $this->objFromFixture(Subsite::class, 'domaintest1')->ID;
24
        $this->assertEquals('FileTitle', $file->getTreeTitle());
25
        $this->assertInstanceOf(FieldList::class, singleton(Folder::class)->getCMSFields());
26
        Subsite::changeSubsite(1);
27
        $this->assertEquals('subsite-1', $file->getExtensionInstance(FileSubsites::class)->cacheKeyComponent());
0 ignored issues
show
Bug introduced by
The method cacheKeyComponent() does not exist on SilverStripe\Core\Extension. It seems like you code against a sub-type of SilverStripe\Core\Extension such as SilverStripe\Subsites\Extensions\FileSubsites or SilverStripe\Subsites\Ex...ions\SiteConfigSubsites or SilverStripe\Subsites\Extensions\SiteTreeSubsites or SilverStripe\Versioned\Versioned. ( Ignorable by Annotation )

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

27
        $this->assertEquals('subsite-1', $file->getExtensionInstance(FileSubsites::class)->/** @scrutinizer ignore-call */ cacheKeyComponent());
Loading history...
28
    }
29
30
    public function testWritingSubsiteID()
31
    {
32
        $this->logInAs('admin');
33
34
        $subsite = $this->objFromFixture(Subsite::class, 'domaintest1');
35
        Config::modify()->set(FileSubsites::class, 'default_root_folders_global', true);
36
37
        Subsite::changeSubsite(0);
38
        $file = new File();
39
        $file->write();
40
        $file->onAfterUpload();
41
        $this->assertEquals((int)$file->SubsiteID, 0);
42
43
        Subsite::changeSubsite($subsite->ID);
44
        $this->assertTrue($file->canEdit());
45
46
        $file = new File();
47
        $file->write();
48
        $this->assertEquals((int)$file->SubsiteID, 0);
49
        $this->assertTrue($file->canEdit());
50
51
        Config::modify()->set(FileSubsites::class, 'default_root_folders_global', false);
52
53
        Subsite::changeSubsite($subsite->ID);
54
        $file = new File();
55
        $file->write();
56
        $this->assertEquals($file->SubsiteID, $subsite->ID);
57
58
        // Test inheriting from parent folder
59
        $folder = new Folder();
60
        $folder->write();
61
        $this->assertEquals($folder->SubsiteID, $subsite->ID);
62
        Config::modify()->set(FileSubsites::class, 'default_root_folders_global', true);
63
        $file = new File();
64
        $file->ParentID = $folder->ID;
65
        $file->onAfterUpload();
66
        $this->assertEquals($folder->SubsiteID, $file->SubsiteID);
67
    }
68
}
69