silverstripe-subsites/tests/SubsiteAdminTest.php

57 lines
2.1 KiB
PHP
Raw Normal View History

2009-05-04 07:03:44 +02:00
<?php
2016-09-22 16:38:29 +02:00
use SilverStripe\Control\Session;
use SilverStripe\Control\Director;
use SilverStripe\CMS\Controllers\CMSMain;
2017-05-24 15:25:34 +02:00
use SilverStripe\Subsites\Model\Subsite;
2016-09-22 16:38:29 +02:00
class SubsiteAdminTest extends BaseSubsiteTest {
static $fixture_file = 'subsites/tests/SubsiteTest.yml';
2007-08-21 03:38:20 +02:00
function adminLoggedInSession() {
return new Session(array(
2016-09-22 16:38:29 +02:00
'loggedInAs' => $this->idFromFixture('SilverStripe\\Security\\Member', 'admin')
2007-08-21 03:38:20 +02:00
));
}
2007-08-21 03:38:20 +02:00
/**
* Test generation of the view
*/
function testBasicView() {
2010-03-01 03:58:13 +01:00
Subsite::$write_hostmap = false;
2017-05-24 15:25:34 +02:00
$subsite1ID = $this->objFromFixture(Subsite::class,'domaintest1')->ID;
2007-08-21 03:38:20 +02:00
// Open the admin area logged in as admin
$response1 = Director::test('admin/subsites/', null, $this->adminLoggedInSession());
// Confirm that this URL gets you the entire page, with the edit form loaded
$response2 = Director::test("admin/subsites/Subsite/EditForm/field/Subsite/item/$subsite1ID/edit", null, $this->adminLoggedInSession());
$this->assertTrue(strpos($response2->getBody(), 'id="Form_ItemEditForm_ID"') !== false, "Testing Form_ItemEditForm_ID exists");
$this->assertTrue(strpos($response2->getBody(), '<head') !== false, "Testing <head> exists");
2007-08-21 03:38:20 +02:00
}
/**
* Test that the main-site user with ADMIN permissions can access all subsites, regardless
* of whether he is in a subsite-specific group or not.
*/
function testMainsiteAdminCanAccessAllSubsites() {
2016-09-22 16:38:29 +02:00
$member = $this->objFromFixture('SilverStripe\\Security\\Member', 'admin');
2009-05-04 07:03:44 +02:00
Session::set("loggedInAs", $member->ID);
$cmsMain = new CMSMain();
foreach($cmsMain->Subsites() as $subsite) {
$ids[$subsite->ID] = true;
}
$this->assertArrayHasKey(0, $ids, "Main site accessible");
2017-05-24 15:25:34 +02:00
$this->assertArrayHasKey($this->idFromFixture(Subsite::class,'main'), $ids, "Site with no groups inaccesible");
$this->assertArrayHasKey($this->idFromFixture(Subsite::class,'subsite1'), $ids, "Subsite1 Template inaccessible");
$this->assertArrayHasKey($this->idFromFixture(Subsite::class,'subsite2'), $ids, "Subsite2 Template inaccessible");
}
2007-08-17 07:50:23 +02:00
}