FIX Update tests API implementations, add missing fixture namespaces

This commit is contained in:
Robbie Averill 2017-08-29 17:22:32 +12:00
parent 8d8ee14cc2
commit 7ffaf61aeb
14 changed files with 70 additions and 89 deletions

View File

@ -7,8 +7,7 @@ use SilverStripe\Subsites\Model\Subsite;
class BaseSubsiteTest extends SapphireTest class BaseSubsiteTest extends SapphireTest
{ {
protected function setUp()
public function setUp()
{ {
parent::setUp(); parent::setUp();
@ -18,14 +17,14 @@ class BaseSubsiteTest extends SapphireTest
/** /**
* Avoid subsites filtering on fixture fetching. * Avoid subsites filtering on fixture fetching.
* @param string $class * @param string $className
* @param string $id * @param string $identifier
* @return \SilverStripe\ORM\DataObject * @return \SilverStripe\ORM\DataObject
*/ */
public function objFromFixture($class, $id) protected function objFromFixture($className, $identifier)
{ {
Subsite::disable_subsite_filter(true); Subsite::disable_subsite_filter(true);
$obj = parent::objFromFixture($class, $id); $obj = parent::objFromFixture($className, $identifier);
Subsite::disable_subsite_filter(false); Subsite::disable_subsite_filter(false);
return $obj; return $obj;

View File

@ -11,22 +11,15 @@ use SilverStripe\Subsites\Model\Subsite;
class FileSubsitesTest extends BaseSubsiteTest class FileSubsitesTest extends BaseSubsiteTest
{ {
protected static $fixture_file = 'SubsiteTest.yml';
public static $fixture_file = 'subsites/tests/php/SubsiteTest.yml';
/** /**
* Disable other file extensions * Disable other file extensions
* *
* @var array * @var array
*/ */
protected $illegalExtensions = [ protected static $illegal_extensions = [
'File' => [ SiteTree::class => ['Translatable'], // @todo implement namespace for Translatable
'SecureFileExtension',
'VersionedFileExtension'
],
'SiteTree' => [
'Translatable',
]
]; ];
public function testTrivialFeatures() public function testTrivialFeatures()
@ -45,7 +38,7 @@ class FileSubsitesTest extends BaseSubsiteTest
public function testWritingSubsiteID() public function testWritingSubsiteID()
{ {
$this->objFromFixture(Member::class, 'admin')->logIn(); $this->logInAs('admin');
$subsite = $this->objFromFixture(Subsite::class, 'domaintest1'); $subsite = $this->objFromFixture(Subsite::class, 'domaintest1');
FileSubsites::$default_root_folders_global = true; FileSubsites::$default_root_folders_global = true;
@ -84,7 +77,7 @@ class FileSubsitesTest extends BaseSubsiteTest
public function testSubsitesFolderDropdown() public function testSubsitesFolderDropdown()
{ {
$this->objFromFixture(Member::class, 'admin')->logIn(); $this->logInAs('admin');
$file = new Folder(); $file = new Folder();

View File

@ -9,7 +9,7 @@ use SilverStripe\Subsites\Model\Subsite;
class GroupSubsitesTest extends BaseSubsiteTest class GroupSubsitesTest extends BaseSubsiteTest
{ {
public static $fixture_file = 'subsites/tests/php/SubsiteTest.yml'; protected static $fixture_file = 'SubsiteTest.yml';
protected $requireDefaultRecordsFrom = [GroupSubsites::class]; protected $requireDefaultRecordsFrom = [GroupSubsites::class];

View File

@ -13,18 +13,18 @@ use SilverStripe\Subsites\Model\Subsite;
class LeftAndMainSubsitesTest extends FunctionalTest class LeftAndMainSubsitesTest extends FunctionalTest
{ {
public static $fixture_file = 'subsites/tests/php/SubsiteTest.yml'; protected static $fixture_file = 'SubsiteTest.yml';
/** /**
* Avoid subsites filtering on fixture fetching. * Avoid subsites filtering on fixture fetching.
* @param string $class * @param string $className
* @param string $id * @param string $identifier
* @return \SilverStripe\ORM\DataObject * @return \SilverStripe\ORM\DataObject
*/ */
public function objFromFixture($class, $id) protected function objFromFixture($className, $identifier)
{ {
Subsite::disable_subsite_filter(true); Subsite::disable_subsite_filter(true);
$obj = parent::objFromFixture($class, $id); $obj = parent::objFromFixture($classname, $identifier);
Subsite::disable_subsite_filter(false); Subsite::disable_subsite_filter(false);
return $obj; return $obj;
@ -55,8 +55,7 @@ class LeftAndMainSubsitesTest extends FunctionalTest
public function testAccessChecksDontChangeCurrentSubsite() public function testAccessChecksDontChangeCurrentSubsite()
{ {
$admin = $this->objFromFixture(Member::class, 'admin'); $this->logInAs('admin');
$this->logInAs($admin);
$ids = []; $ids = [];
$subsite1 = $this->objFromFixture(Subsite::class, 'domaintest1'); $subsite1 = $this->objFromFixture(Subsite::class, 'domaintest1');

View File

@ -8,7 +8,7 @@ use SilverStripe\Subsites\Model\Subsite;
class SiteConfigSubsitesTest extends BaseSubsiteTest class SiteConfigSubsitesTest extends BaseSubsiteTest
{ {
public static $fixture_file = 'subsites/tests/php/SubsiteTest.yml'; protected static $fixture_file = 'SubsiteTest.yml';
public function testEachSubsiteHasAUniqueSiteConfig() public function testEachSubsiteHasAUniqueSiteConfig()
{ {

View File

@ -11,7 +11,6 @@ use SilverStripe\Control\Director;
use SilverStripe\Control\Session; use SilverStripe\Control\Session;
use SilverStripe\Core\Config\Config; use SilverStripe\Core\Config\Config;
use SilverStripe\Core\Convert; use SilverStripe\Core\Convert;
use SilverStripe\Dev\TestOnly;
use SilverStripe\Forms\FieldList; use SilverStripe\Forms\FieldList;
use SilverStripe\Security\Member; use SilverStripe\Security\Member;
use SilverStripe\SiteConfig\SiteConfig; use SilverStripe\SiteConfig\SiteConfig;
@ -26,7 +25,7 @@ use SilverStripe\View\SSViewer;
class SiteTreeSubsitesTest extends BaseSubsiteTest class SiteTreeSubsitesTest extends BaseSubsiteTest
{ {
protected static $fixture_file = 'subsites/tests/php/SubsiteTest.yml'; protected static $fixture_file = 'SubsiteTest.yml';
protected static $extra_dataobjects = [ protected static $extra_dataobjects = [
TestClassA::class, TestClassA::class,

View File

@ -12,14 +12,14 @@ use SilverStripe\Subsites\Model\Subsite;
class SubsiteAdminFunctionalTest extends FunctionalTest class SubsiteAdminFunctionalTest extends FunctionalTest
{ {
public static $fixture_file = 'subsites/tests/php/SubsiteTest.yml'; protected static $fixture_file = 'SubsiteTest.yml';
public static $use_draft_site = true; protected static $use_draft_site = true;
protected $autoFollowRedirection = false; protected $autoFollowRedirection = false;
/** /**
* Helper: FunctionalTest is only able to follow redirection once, we want to go all the way. * Helper: FunctionalTest is only able to follow redirection once, we want to go all the way.
* @param $url * @param string $url
* @return \SilverStripe\Control\HTTPResponse * @return \SilverStripe\Control\HTTPResponse
*/ */
public function getAndFollowAll($url) public function getAndFollowAll($url)
@ -58,8 +58,7 @@ class SubsiteAdminFunctionalTest extends FunctionalTest
*/ */
public function testAdminCanAccessAllSubsites() public function testAdminCanAccessAllSubsites()
{ {
$member = $this->objFromFixture(Member::class, 'admin'); $this->logInAs('admin');
Session::set('loggedInAs', $member->ID);
$this->getAndFollowAll('admin/pages/?SubsiteID=0'); $this->getAndFollowAll('admin/pages/?SubsiteID=0');
$this->assertEquals(Subsite::currentSubsiteID(), '0', 'Can access main site.'); $this->assertEquals(Subsite::currentSubsiteID(), '0', 'Can access main site.');
@ -80,8 +79,7 @@ class SubsiteAdminFunctionalTest extends FunctionalTest
public function testAdminIsRedirectedToObjectsSubsite() public function testAdminIsRedirectedToObjectsSubsite()
{ {
$member = $this->objFromFixture(Member::class, 'admin'); $this->logInAs('admin');
Session::set('loggedInAs', $member->ID);
$mainSubsitePage = $this->objFromFixture('Page', 'mainSubsitePage'); $mainSubsitePage = $this->objFromFixture('Page', 'mainSubsitePage');
$subsite1Home = $this->objFromFixture('Page', 'subsite1_home'); $subsite1Home = $this->objFromFixture('Page', 'subsite1_home');
@ -125,8 +123,7 @@ class SubsiteAdminFunctionalTest extends FunctionalTest
*/ */
public function testEditorCanAccessAllSubsites() public function testEditorCanAccessAllSubsites()
{ {
$member = $this->objFromFixture(Member::class, 'editor'); $this->logInAs('editor');
Session::set('loggedInAs', $member->ID);
$this->getAndFollowAll('admin/pages/?SubsiteID=0'); $this->getAndFollowAll('admin/pages/?SubsiteID=0');
$this->assertEquals(Subsite::currentSubsiteID(), '0', 'Can access main site.'); $this->assertEquals(Subsite::currentSubsiteID(), '0', 'Can access main site.');

View File

@ -10,9 +10,9 @@ use SilverStripe\Subsites\Model\Subsite;
class SubsiteAdminTest extends BaseSubsiteTest class SubsiteAdminTest extends BaseSubsiteTest
{ {
public static $fixture_file = 'subsites/tests/php/SubsiteTest.yml'; protected static $fixture_file = 'SubsiteTest.yml';
public function adminLoggedInSession() protected function adminLoggedInSession()
{ {
return new Session([ return new Session([
'loggedInAs' => $this->idFromFixture(Member::class, 'admin') 'loggedInAs' => $this->idFromFixture(Member::class, 'admin')
@ -50,8 +50,7 @@ class SubsiteAdminTest extends BaseSubsiteTest
*/ */
public function testMainsiteAdminCanAccessAllSubsites() public function testMainsiteAdminCanAccessAllSubsites()
{ {
$member = $this->objFromFixture(Member::class, 'admin'); $this->logInAs('admin');
Session::set('loggedInAs', $member->ID);
$cmsMain = new CMSMain(); $cmsMain = new CMSMain();
foreach ($cmsMain->Subsites() as $subsite) { foreach ($cmsMain->Subsites() as $subsite) {

View File

@ -9,7 +9,7 @@ use SilverStripe\View\SSViewer;
class SubsiteFunctionalTest extends FunctionalTest class SubsiteFunctionalTest extends FunctionalTest
{ {
public static $fixture_file = 'subsites/tests/php/SubsiteTest.yml'; protected static $fixture_file = 'SubsiteTest.yml';
/** /**
* @todo: remove test from SiteTreeSubsitesTest when this one works. Seems domain lookup is broken atm * @todo: remove test from SiteTreeSubsitesTest when this one works. Seems domain lookup is broken atm

View File

@ -13,7 +13,7 @@ use SilverStripe\Subsites\Model\SubsiteDomain;
class SubsiteTest extends BaseSubsiteTest class SubsiteTest extends BaseSubsiteTest
{ {
public static $fixture_file = 'subsites/tests/php/SubsiteTest.yml'; protected static $fixture_file = 'SubsiteTest.yml';
/** /**
* Original value of {@see SubSite::$strict_subdomain_matching} * Original value of {@see SubSite::$strict_subdomain_matching}
@ -29,7 +29,7 @@ class SubsiteTest extends BaseSubsiteTest
*/ */
protected $origServer = []; protected $origServer = [];
public function setUp() protected function setUp()
{ {
parent::setUp(); parent::setUp();
@ -39,7 +39,7 @@ class SubsiteTest extends BaseSubsiteTest
Subsite::$strict_subdomain_matching = false; Subsite::$strict_subdomain_matching = false;
} }
public function tearDown() protected function tearDown()
{ {
$_SERVER = $this->origServer; $_SERVER = $this->origServer;
Subsite::$strict_subdomain_matching = $this->origStrictSubdomainMatching; Subsite::$strict_subdomain_matching = $this->origStrictSubdomainMatching;

View File

@ -112,14 +112,14 @@ Page:
SubsiteID: =>SilverStripe\Subsites\Model\Subsite.subsite2 SubsiteID: =>SilverStripe\Subsites\Model\Subsite.subsite2
URLSegment: contact-us URLSegment: contact-us
PermissionRoleCode: SilverStripe\Security\PermissionRoleCode:
roleCode1: roleCode1:
Code: CMS_ACCESS_CMSMain Code: CMS_ACCESS_CMSMain
PermissionRole: SilverStripe\Security\PermissionRole:
role1: role1:
Title: role1 Title: role1
Codes: =>PermissionRoleCode.roleCode1 Codes: =>SilverStripe\Security\PermissionRoleCode.roleCode1
Group: SilverStripe\Security\Group:
admin: admin:
Title: Admin Title: Admin
Code: admin Code: admin
@ -151,71 +151,71 @@ Group:
Title: subsite1_group_via_role Title: subsite1_group_via_role
Code: subsite1_group_via_role Code: subsite1_group_via_role
AccessAllSubsites: 1 AccessAllSubsites: 1
Roles: =>PermissionRole.role1 Roles: =>SilverStripe\Security\PermissionRole.role1
Permission: SilverStripe\Security\Permission:
admin: admin:
Code: ADMIN Code: ADMIN
GroupID: =>Group.admin GroupID: =>SilverStripe\Security\Group.admin
editor1: editor1:
Code: CMS_ACCESS_CMSMain Code: CMS_ACCESS_CMSMain
GroupID: =>Group.editor GroupID: =>SilverStripe\Security\Group.editor
editor2: editor2:
Code: SITETREE_VIEW_ALL Code: SITETREE_VIEW_ALL
GroupID: =>Group.editor GroupID: =>SilverStripe\Security\Group.editor
editor3: editor3:
Code: VIEW_DRAFT_CONTENT Code: VIEW_DRAFT_CONTENT
GroupID: =>Group.editor GroupID: =>SilverStripe\Security\Group.editor
accesscmsmain1: accesscmsmain1:
Code: CMS_ACCESS_CMSMain Code: CMS_ACCESS_CMSMain
GroupID: =>Group.subsite1_group GroupID: =>SilverStripe\Security\Group.subsite1_group
accesscmsmain2: accesscmsmain2:
Code: CMS_ACCESS_CMSMain Code: CMS_ACCESS_CMSMain
GroupID: =>Group.subsite2_group GroupID: =>SilverStripe\Security\Group.subsite2_group
accesscmsmain3: accesscmsmain3:
Code: CMS_ACCESS_CMSMain Code: CMS_ACCESS_CMSMain
GroupID: =>Group.subsite1admins GroupID: =>SilverStripe\Security\Group.subsite1admins
accesscmsmain4: accesscmsmain4:
Code: CMS_ACCESS_CMSMain Code: CMS_ACCESS_CMSMain
GroupID: =>Group.allsubsitesauthors GroupID: =>SilverStripe\Security\Group.allsubsitesauthors
securityaccess1: securityaccess1:
Code: CMS_ACCESS_SecurityAdmin Code: CMS_ACCESS_SecurityAdmin
GroupID: =>Group.subsite1_group GroupID: =>SilverStripe\Security\Group.subsite1_group
securityaccess2: securityaccess2:
Code: CMS_ACCESS_SecurityAdmin Code: CMS_ACCESS_SecurityAdmin
GroupID: =>Group.subsite2_group GroupID: =>SilverStripe\Security\Group.subsite2_group
adminsubsite1: adminsubsite1:
Code: ADMIN Code: ADMIN
GroupID: =>Group.subsite1admins GroupID: =>SilverStripe\Security\Group.subsite1admins
Member: SilverStripe\Security\Member:
admin: admin:
FirstName: Admin FirstName: Admin
Surname: User Surname: User
Email: admin@test.com Email: admin@test.com
Password: rangi Password: rangi
Groups: =>Group.admin Groups: =>SilverStripe\Security\Group.admin
editor: editor:
FirstName: Editor FirstName: Editor
Surname: User Surname: User
Email: editor@test.com Email: editor@test.com
Password: rangi Password: rangi
Groups: =>Group.editor Groups: =>SilverStripe\Security\Group.editor
subsite1member: subsite1member:
Email: subsite1member@test.com Email: subsite1member@test.com
Groups: =>Group.subsite1_group Groups: =>SilverStripe\Security\Group.subsite1_group
subsite2member: subsite2member:
Email: subsite2member@test.com Email: subsite2member@test.com
Groups: =>Group.subsite2_group Groups: =>SilverStripe\Security\Group.subsite2_group
subsite1admin: subsite1admin:
Email: subsite1admin@test.com Email: subsite1admin@test.com
Groups: =>Group.subsite1admins Groups: =>SilverStripe\Security\Group.subsite1admins
allsubsitesauthor: allsubsitesauthor:
Email: allsubsitesauthor@test.com Email: allsubsitesauthor@test.com
Groups: =>Group.allsubsitesauthors Groups: =>SilverStripe\Security\Group.allsubsitesauthors
subsite1member2: subsite1member2:
Email: subsite1member2@test.com Email: subsite1member2@test.com
Groups: =>Group.subsite1_group_via_role Groups: =>SilverStripe\Security\Group.subsite1_group_via_role
SiteConfig: SilverStripe\SiteConfig\SiteConfig:
config: config:
CanCreateTopLevelType: LoggedInUsers CanCreateTopLevelType: LoggedInUsers

View File

@ -5,12 +5,6 @@ namespace SilverStripe\Subsites\Tests;
use SilverStripe\Control\Session; use SilverStripe\Control\Session;
use SilverStripe\Dev\FunctionalTest; use SilverStripe\Dev\FunctionalTest;
/**
* Created by PhpStorm.
* User: dmooyman
* Date: 27/05/16
* Time: 3:10 PM
*/
class SubsiteXHRControllerTest extends FunctionalTest class SubsiteXHRControllerTest extends FunctionalTest
{ {
protected static $fixture_file = 'SubsiteTest.yml'; protected static $fixture_file = 'SubsiteTest.yml';
@ -18,7 +12,8 @@ class SubsiteXHRControllerTest extends FunctionalTest
public function testCanView() public function testCanView()
{ {
// Test unauthenticated access // Test unauthenticated access
Session::clear('MemberID'); $this->logOut();
$result = $this->get('SubsiteXHRController', null, [ $result = $this->get('SubsiteXHRController', null, [
'X-Pjax' => 'SubsiteList', 'X-Pjax' => 'SubsiteList',
'X-Requested-With' => 'XMLHttpRequest' 'X-Requested-With' => 'XMLHttpRequest'

View File

@ -16,16 +16,16 @@ use SilverStripe\Versioned\Versioned;
class SubsitesVirtualPageTest extends BaseSubsiteTest class SubsitesVirtualPageTest extends BaseSubsiteTest
{ {
public static $fixture_file = [ protected static $fixture_file = [
'subsites/tests/php/SubsiteTest.yml', 'SubsiteTest.yml',
'subsites/tests/php/SubsitesVirtualPageTest.yml', 'SubsitesVirtualPageTest.yml',
]; ];
protected $illegalExtensions = [ protected static $illegal_extensions = [
'SiteTree' => ['Translatable'] SiteTree::class => ['Translatable'] // @todo implement Translatable namespace
]; ];
public function setUp() protected function setUp()
{ {
parent::setUp(); parent::setUp();
@ -61,7 +61,7 @@ class SubsitesVirtualPageTest extends BaseSubsiteTest
Subsite::changeSubsite($subsite->ID); Subsite::changeSubsite($subsite->ID);
Subsite::$disable_subsite_filter = false; Subsite::$disable_subsite_filter = false;
$linky = $this->objFromFixture('Page', 'linky'); $linky = $this->objFromFixture(Page::class, 'linky');
$svp = new SubsitesVirtualPage(); $svp = new SubsitesVirtualPage();
$svp->CopyContentFromID = $linky->ID; $svp->CopyContentFromID = $linky->ID;
@ -303,7 +303,7 @@ class SubsitesVirtualPageTest extends BaseSubsiteTest
); );
} }
public function fixVersionNumberCache($page) protected function fixVersionNumberCache($page)
{ {
$pages = func_get_args(); $pages = func_get_args();
foreach ($pages as $p) { foreach ($pages as $p) {

View File

@ -1,11 +1,11 @@
# These need to come first so that SiteTree has the link meta-data written. # These need to come first so that SiteTree has the link meta-data written.
File: SilverStripe\Assets\File:
file1: file1:
FileFilename: testscript-test-file.pdf FileFilename: testscript-test-file.pdf
FileHash: 464dedb70af0dc7f8f3360e7f3ae43cbbf1cdf4e FileHash: 464dedb70af0dc7f8f3360e7f3ae43cbbf1cdf4e
Name: testscript-test-file.pdf Name: testscript-test-file.pdf
SiteTree: SilverStripe\CMS\Model\SiteTree:
page1: page1:
Title: page1 Title: page1
URLSegment: page1 URLSegment: page1