Completed
Push — master ( a201e7...17e0db )
by
unknown
10s
created

FileSubsitesTest::testSubsitesFolderDropdown()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 21
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 21
rs 9.3142
c 0
b 0
f 0
cc 1
eloc 16
nc 1
nop 0
1
<?php
2
3
namespace SilverStripe\Subsites\Tests;
4
5
use SilverStripe\Assets\File;
6
use SilverStripe\Assets\Folder;
7
use SilverStripe\Forms\FieldList;
8
use SilverStripe\Subsites\Extensions\FileSubsites;
9
use SilverStripe\Subsites\Model\Subsite;
10
11
class FileSubsitesTest extends BaseSubsiteTest
12
{
13
    protected static $fixture_file = 'SubsiteTest.yml';
14
15
    public function testTrivialFeatures()
16
    {
17
        $this->assertTrue(is_array(singleton(FileSubsites::class)->extraStatics()));
18
        $file = new File();
19
        $file->Name = 'FileTitle';
20
        $file->Title = 'FileTitle';
21
        $this->assertEquals(' * FileTitle', $file->alternateTreeTitle());
22
        $file->SubsiteID = $this->objFromFixture(Subsite::class, 'domaintest1')->ID;
23
        $this->assertEquals('FileTitle', $file->getTreeTitle());
24
        $this->assertInstanceOf(FieldList::class, singleton(Folder::class)->getCMSFields());
25
        Subsite::changeSubsite(1);
26
        $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

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