From 7ffaf61aeb2a581771ecd22f387988da23d34160 Mon Sep 17 00:00:00 2001 From: Robbie Averill Date: Tue, 29 Aug 2017 17:22:32 +1200 Subject: [PATCH] FIX Update tests API implementations, add missing fixture namespaces --- tests/php/BaseSubsiteTest.php | 11 +++-- tests/php/FileSubsitesTest.php | 17 +++----- tests/php/GroupSubsitesTest.php | 2 +- tests/php/LeftAndMainSubsitesTest.php | 13 +++--- tests/php/SiteConfigSubsitesTest.php | 2 +- tests/php/SiteTreeSubsitesTest.php | 3 +- tests/php/SubsiteAdminFunctionalTest.php | 15 +++---- tests/php/SubsiteAdminTest.php | 7 ++-- tests/php/SubsiteFunctionalTest.php | 2 +- tests/php/SubsiteTest.php | 6 +-- tests/php/SubsiteTest.yml | 52 ++++++++++++------------ tests/php/SubsiteXHRControllerTest.php | 9 +--- tests/php/SubsitesVirtualPageTest.php | 16 ++++---- tests/php/SubsitesVirtualPageTest.yml | 4 +- 14 files changed, 70 insertions(+), 89 deletions(-) diff --git a/tests/php/BaseSubsiteTest.php b/tests/php/BaseSubsiteTest.php index 3739a4b..b6a6729 100644 --- a/tests/php/BaseSubsiteTest.php +++ b/tests/php/BaseSubsiteTest.php @@ -7,8 +7,7 @@ use SilverStripe\Subsites\Model\Subsite; class BaseSubsiteTest extends SapphireTest { - - public function setUp() + protected function setUp() { parent::setUp(); @@ -18,14 +17,14 @@ class BaseSubsiteTest extends SapphireTest /** * Avoid subsites filtering on fixture fetching. - * @param string $class - * @param string $id + * @param string $className + * @param string $identifier * @return \SilverStripe\ORM\DataObject */ - public function objFromFixture($class, $id) + protected function objFromFixture($className, $identifier) { Subsite::disable_subsite_filter(true); - $obj = parent::objFromFixture($class, $id); + $obj = parent::objFromFixture($className, $identifier); Subsite::disable_subsite_filter(false); return $obj; diff --git a/tests/php/FileSubsitesTest.php b/tests/php/FileSubsitesTest.php index b18e909..9e691e6 100644 --- a/tests/php/FileSubsitesTest.php +++ b/tests/php/FileSubsitesTest.php @@ -11,22 +11,15 @@ use SilverStripe\Subsites\Model\Subsite; class FileSubsitesTest extends BaseSubsiteTest { - - public static $fixture_file = 'subsites/tests/php/SubsiteTest.yml'; + protected static $fixture_file = 'SubsiteTest.yml'; /** * Disable other file extensions * * @var array */ - protected $illegalExtensions = [ - 'File' => [ - 'SecureFileExtension', - 'VersionedFileExtension' - ], - 'SiteTree' => [ - 'Translatable', - ] + protected static $illegal_extensions = [ + SiteTree::class => ['Translatable'], // @todo implement namespace for Translatable ]; public function testTrivialFeatures() @@ -45,7 +38,7 @@ class FileSubsitesTest extends BaseSubsiteTest public function testWritingSubsiteID() { - $this->objFromFixture(Member::class, 'admin')->logIn(); + $this->logInAs('admin'); $subsite = $this->objFromFixture(Subsite::class, 'domaintest1'); FileSubsites::$default_root_folders_global = true; @@ -84,7 +77,7 @@ class FileSubsitesTest extends BaseSubsiteTest public function testSubsitesFolderDropdown() { - $this->objFromFixture(Member::class, 'admin')->logIn(); + $this->logInAs('admin'); $file = new Folder(); diff --git a/tests/php/GroupSubsitesTest.php b/tests/php/GroupSubsitesTest.php index d59d605..ed35292 100644 --- a/tests/php/GroupSubsitesTest.php +++ b/tests/php/GroupSubsitesTest.php @@ -9,7 +9,7 @@ use SilverStripe\Subsites\Model\Subsite; class GroupSubsitesTest extends BaseSubsiteTest { - public static $fixture_file = 'subsites/tests/php/SubsiteTest.yml'; + protected static $fixture_file = 'SubsiteTest.yml'; protected $requireDefaultRecordsFrom = [GroupSubsites::class]; diff --git a/tests/php/LeftAndMainSubsitesTest.php b/tests/php/LeftAndMainSubsitesTest.php index 85565e9..001a6e5 100644 --- a/tests/php/LeftAndMainSubsitesTest.php +++ b/tests/php/LeftAndMainSubsitesTest.php @@ -13,18 +13,18 @@ use SilverStripe\Subsites\Model\Subsite; 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. - * @param string $class - * @param string $id + * @param string $className + * @param string $identifier * @return \SilverStripe\ORM\DataObject */ - public function objFromFixture($class, $id) + protected function objFromFixture($className, $identifier) { Subsite::disable_subsite_filter(true); - $obj = parent::objFromFixture($class, $id); + $obj = parent::objFromFixture($classname, $identifier); Subsite::disable_subsite_filter(false); return $obj; @@ -55,8 +55,7 @@ class LeftAndMainSubsitesTest extends FunctionalTest public function testAccessChecksDontChangeCurrentSubsite() { - $admin = $this->objFromFixture(Member::class, 'admin'); - $this->logInAs($admin); + $this->logInAs('admin'); $ids = []; $subsite1 = $this->objFromFixture(Subsite::class, 'domaintest1'); diff --git a/tests/php/SiteConfigSubsitesTest.php b/tests/php/SiteConfigSubsitesTest.php index c479786..5bf62b3 100644 --- a/tests/php/SiteConfigSubsitesTest.php +++ b/tests/php/SiteConfigSubsitesTest.php @@ -8,7 +8,7 @@ use SilverStripe\Subsites\Model\Subsite; class SiteConfigSubsitesTest extends BaseSubsiteTest { - public static $fixture_file = 'subsites/tests/php/SubsiteTest.yml'; + protected static $fixture_file = 'SubsiteTest.yml'; public function testEachSubsiteHasAUniqueSiteConfig() { diff --git a/tests/php/SiteTreeSubsitesTest.php b/tests/php/SiteTreeSubsitesTest.php index c6155a8..4269edf 100644 --- a/tests/php/SiteTreeSubsitesTest.php +++ b/tests/php/SiteTreeSubsitesTest.php @@ -11,7 +11,6 @@ use SilverStripe\Control\Director; use SilverStripe\Control\Session; use SilverStripe\Core\Config\Config; use SilverStripe\Core\Convert; -use SilverStripe\Dev\TestOnly; use SilverStripe\Forms\FieldList; use SilverStripe\Security\Member; use SilverStripe\SiteConfig\SiteConfig; @@ -26,7 +25,7 @@ use SilverStripe\View\SSViewer; class SiteTreeSubsitesTest extends BaseSubsiteTest { - protected static $fixture_file = 'subsites/tests/php/SubsiteTest.yml'; + protected static $fixture_file = 'SubsiteTest.yml'; protected static $extra_dataobjects = [ TestClassA::class, diff --git a/tests/php/SubsiteAdminFunctionalTest.php b/tests/php/SubsiteAdminFunctionalTest.php index a0f7cc0..63819ce 100644 --- a/tests/php/SubsiteAdminFunctionalTest.php +++ b/tests/php/SubsiteAdminFunctionalTest.php @@ -12,14 +12,14 @@ use SilverStripe\Subsites\Model\Subsite; class SubsiteAdminFunctionalTest extends FunctionalTest { - public static $fixture_file = 'subsites/tests/php/SubsiteTest.yml'; - public static $use_draft_site = true; + protected static $fixture_file = 'SubsiteTest.yml'; + protected static $use_draft_site = true; protected $autoFollowRedirection = false; /** * 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 */ public function getAndFollowAll($url) @@ -58,8 +58,7 @@ class SubsiteAdminFunctionalTest extends FunctionalTest */ public function testAdminCanAccessAllSubsites() { - $member = $this->objFromFixture(Member::class, 'admin'); - Session::set('loggedInAs', $member->ID); + $this->logInAs('admin'); $this->getAndFollowAll('admin/pages/?SubsiteID=0'); $this->assertEquals(Subsite::currentSubsiteID(), '0', 'Can access main site.'); @@ -80,8 +79,7 @@ class SubsiteAdminFunctionalTest extends FunctionalTest public function testAdminIsRedirectedToObjectsSubsite() { - $member = $this->objFromFixture(Member::class, 'admin'); - Session::set('loggedInAs', $member->ID); + $this->logInAs('admin'); $mainSubsitePage = $this->objFromFixture('Page', 'mainSubsitePage'); $subsite1Home = $this->objFromFixture('Page', 'subsite1_home'); @@ -125,8 +123,7 @@ class SubsiteAdminFunctionalTest extends FunctionalTest */ public function testEditorCanAccessAllSubsites() { - $member = $this->objFromFixture(Member::class, 'editor'); - Session::set('loggedInAs', $member->ID); + $this->logInAs('editor'); $this->getAndFollowAll('admin/pages/?SubsiteID=0'); $this->assertEquals(Subsite::currentSubsiteID(), '0', 'Can access main site.'); diff --git a/tests/php/SubsiteAdminTest.php b/tests/php/SubsiteAdminTest.php index 2b33db0..d3d84e4 100644 --- a/tests/php/SubsiteAdminTest.php +++ b/tests/php/SubsiteAdminTest.php @@ -10,9 +10,9 @@ use SilverStripe\Subsites\Model\Subsite; 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([ 'loggedInAs' => $this->idFromFixture(Member::class, 'admin') @@ -50,8 +50,7 @@ class SubsiteAdminTest extends BaseSubsiteTest */ public function testMainsiteAdminCanAccessAllSubsites() { - $member = $this->objFromFixture(Member::class, 'admin'); - Session::set('loggedInAs', $member->ID); + $this->logInAs('admin'); $cmsMain = new CMSMain(); foreach ($cmsMain->Subsites() as $subsite) { diff --git a/tests/php/SubsiteFunctionalTest.php b/tests/php/SubsiteFunctionalTest.php index 4b8322b..6d25bcf 100644 --- a/tests/php/SubsiteFunctionalTest.php +++ b/tests/php/SubsiteFunctionalTest.php @@ -9,7 +9,7 @@ use SilverStripe\View\SSViewer; 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 diff --git a/tests/php/SubsiteTest.php b/tests/php/SubsiteTest.php index 695ecf9..04fa4a8 100644 --- a/tests/php/SubsiteTest.php +++ b/tests/php/SubsiteTest.php @@ -13,7 +13,7 @@ use SilverStripe\Subsites\Model\SubsiteDomain; 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} @@ -29,7 +29,7 @@ class SubsiteTest extends BaseSubsiteTest */ protected $origServer = []; - public function setUp() + protected function setUp() { parent::setUp(); @@ -39,7 +39,7 @@ class SubsiteTest extends BaseSubsiteTest Subsite::$strict_subdomain_matching = false; } - public function tearDown() + protected function tearDown() { $_SERVER = $this->origServer; Subsite::$strict_subdomain_matching = $this->origStrictSubdomainMatching; diff --git a/tests/php/SubsiteTest.yml b/tests/php/SubsiteTest.yml index 0f7945b..62c3526 100644 --- a/tests/php/SubsiteTest.yml +++ b/tests/php/SubsiteTest.yml @@ -112,14 +112,14 @@ Page: SubsiteID: =>SilverStripe\Subsites\Model\Subsite.subsite2 URLSegment: contact-us -PermissionRoleCode: +SilverStripe\Security\PermissionRoleCode: roleCode1: Code: CMS_ACCESS_CMSMain -PermissionRole: +SilverStripe\Security\PermissionRole: role1: Title: role1 - Codes: =>PermissionRoleCode.roleCode1 -Group: + Codes: =>SilverStripe\Security\PermissionRoleCode.roleCode1 +SilverStripe\Security\Group: admin: Title: Admin Code: admin @@ -151,71 +151,71 @@ Group: Title: subsite1_group_via_role Code: subsite1_group_via_role AccessAllSubsites: 1 - Roles: =>PermissionRole.role1 -Permission: + Roles: =>SilverStripe\Security\PermissionRole.role1 +SilverStripe\Security\Permission: admin: Code: ADMIN - GroupID: =>Group.admin + GroupID: =>SilverStripe\Security\Group.admin editor1: Code: CMS_ACCESS_CMSMain - GroupID: =>Group.editor + GroupID: =>SilverStripe\Security\Group.editor editor2: Code: SITETREE_VIEW_ALL - GroupID: =>Group.editor + GroupID: =>SilverStripe\Security\Group.editor editor3: Code: VIEW_DRAFT_CONTENT - GroupID: =>Group.editor + GroupID: =>SilverStripe\Security\Group.editor accesscmsmain1: Code: CMS_ACCESS_CMSMain - GroupID: =>Group.subsite1_group + GroupID: =>SilverStripe\Security\Group.subsite1_group accesscmsmain2: Code: CMS_ACCESS_CMSMain - GroupID: =>Group.subsite2_group + GroupID: =>SilverStripe\Security\Group.subsite2_group accesscmsmain3: Code: CMS_ACCESS_CMSMain - GroupID: =>Group.subsite1admins + GroupID: =>SilverStripe\Security\Group.subsite1admins accesscmsmain4: Code: CMS_ACCESS_CMSMain - GroupID: =>Group.allsubsitesauthors + GroupID: =>SilverStripe\Security\Group.allsubsitesauthors securityaccess1: Code: CMS_ACCESS_SecurityAdmin - GroupID: =>Group.subsite1_group + GroupID: =>SilverStripe\Security\Group.subsite1_group securityaccess2: Code: CMS_ACCESS_SecurityAdmin - GroupID: =>Group.subsite2_group + GroupID: =>SilverStripe\Security\Group.subsite2_group adminsubsite1: Code: ADMIN - GroupID: =>Group.subsite1admins + GroupID: =>SilverStripe\Security\Group.subsite1admins -Member: +SilverStripe\Security\Member: admin: FirstName: Admin Surname: User Email: admin@test.com Password: rangi - Groups: =>Group.admin + Groups: =>SilverStripe\Security\Group.admin editor: FirstName: Editor Surname: User Email: editor@test.com Password: rangi - Groups: =>Group.editor + Groups: =>SilverStripe\Security\Group.editor subsite1member: Email: subsite1member@test.com - Groups: =>Group.subsite1_group + Groups: =>SilverStripe\Security\Group.subsite1_group subsite2member: Email: subsite2member@test.com - Groups: =>Group.subsite2_group + Groups: =>SilverStripe\Security\Group.subsite2_group subsite1admin: Email: subsite1admin@test.com - Groups: =>Group.subsite1admins + Groups: =>SilverStripe\Security\Group.subsite1admins allsubsitesauthor: Email: allsubsitesauthor@test.com - Groups: =>Group.allsubsitesauthors + Groups: =>SilverStripe\Security\Group.allsubsitesauthors subsite1member2: Email: subsite1member2@test.com - Groups: =>Group.subsite1_group_via_role + Groups: =>SilverStripe\Security\Group.subsite1_group_via_role -SiteConfig: +SilverStripe\SiteConfig\SiteConfig: config: CanCreateTopLevelType: LoggedInUsers diff --git a/tests/php/SubsiteXHRControllerTest.php b/tests/php/SubsiteXHRControllerTest.php index ab06196..f1c1800 100644 --- a/tests/php/SubsiteXHRControllerTest.php +++ b/tests/php/SubsiteXHRControllerTest.php @@ -5,12 +5,6 @@ namespace SilverStripe\Subsites\Tests; use SilverStripe\Control\Session; use SilverStripe\Dev\FunctionalTest; -/** - * Created by PhpStorm. - * User: dmooyman - * Date: 27/05/16 - * Time: 3:10 PM - */ class SubsiteXHRControllerTest extends FunctionalTest { protected static $fixture_file = 'SubsiteTest.yml'; @@ -18,7 +12,8 @@ class SubsiteXHRControllerTest extends FunctionalTest public function testCanView() { // Test unauthenticated access - Session::clear('MemberID'); + $this->logOut(); + $result = $this->get('SubsiteXHRController', null, [ 'X-Pjax' => 'SubsiteList', 'X-Requested-With' => 'XMLHttpRequest' diff --git a/tests/php/SubsitesVirtualPageTest.php b/tests/php/SubsitesVirtualPageTest.php index 94f1058..5e1004c 100644 --- a/tests/php/SubsitesVirtualPageTest.php +++ b/tests/php/SubsitesVirtualPageTest.php @@ -16,16 +16,16 @@ use SilverStripe\Versioned\Versioned; class SubsitesVirtualPageTest extends BaseSubsiteTest { - public static $fixture_file = [ - 'subsites/tests/php/SubsiteTest.yml', - 'subsites/tests/php/SubsitesVirtualPageTest.yml', + protected static $fixture_file = [ + 'SubsiteTest.yml', + 'SubsitesVirtualPageTest.yml', ]; - protected $illegalExtensions = [ - 'SiteTree' => ['Translatable'] + protected static $illegal_extensions = [ + SiteTree::class => ['Translatable'] // @todo implement Translatable namespace ]; - public function setUp() + protected function setUp() { parent::setUp(); @@ -61,7 +61,7 @@ class SubsitesVirtualPageTest extends BaseSubsiteTest Subsite::changeSubsite($subsite->ID); Subsite::$disable_subsite_filter = false; - $linky = $this->objFromFixture('Page', 'linky'); + $linky = $this->objFromFixture(Page::class, 'linky'); $svp = new SubsitesVirtualPage(); $svp->CopyContentFromID = $linky->ID; @@ -303,7 +303,7 @@ class SubsitesVirtualPageTest extends BaseSubsiteTest ); } - public function fixVersionNumberCache($page) + protected function fixVersionNumberCache($page) { $pages = func_get_args(); foreach ($pages as $p) { diff --git a/tests/php/SubsitesVirtualPageTest.yml b/tests/php/SubsitesVirtualPageTest.yml index 501d547..7e17e63 100644 --- a/tests/php/SubsitesVirtualPageTest.yml +++ b/tests/php/SubsitesVirtualPageTest.yml @@ -1,11 +1,11 @@ # These need to come first so that SiteTree has the link meta-data written. -File: +SilverStripe\Assets\File: file1: FileFilename: testscript-test-file.pdf FileHash: 464dedb70af0dc7f8f3360e7f3ae43cbbf1cdf4e Name: testscript-test-file.pdf -SiteTree: +SilverStripe\CMS\Model\SiteTree: page1: Title: page1 URLSegment: page1