mirror of
https://github.com/silverstripe/silverstripe-subsites
synced 2024-10-22 11:05:55 +02:00
Added tests and fixed associated bugs in the subsite admin section
This commit is contained in:
parent
13aa9894b8
commit
dd4045b2bb
@ -220,8 +220,8 @@ SQL;
|
|||||||
$SQLa_perm = Convert::raw2sql($permissionCodes);
|
$SQLa_perm = Convert::raw2sql($permissionCodes);
|
||||||
$SQL_perms = join("','", $SQLa_perm);
|
$SQL_perms = join("','", $SQLa_perm);
|
||||||
$memberID = (int)$member->ID;
|
$memberID = (int)$member->ID;
|
||||||
|
// `SubsiteID` = 0 AND
|
||||||
return DB::query("SELECT COUNT(`Permission`.`ID`) FROM `Permission` LEFT JOIN `Group` ON `Group`.`ID` = `Permission`.`GroupID` LEFT JOIN `Group_Members` USING(`GroupID`) WHERE `Permission`.`Code` IN ('$SQL_perms') AND `SubsiteID` = 0 AND `MemberID` = {$memberID}")->value();
|
return DB::query("SELECT COUNT(`Permission`.`ID`) FROM `Permission` LEFT JOIN `Group` ON `Group`.`ID` = `Permission`.`GroupID` LEFT JOIN `Group_Members` USING(`GroupID`) WHERE `Permission`.`Code` IN ('$SQL_perms') AND `MemberID` = {$memberID}")->value();
|
||||||
}
|
}
|
||||||
|
|
||||||
function createInitialRecords() {
|
function createInitialRecords() {
|
||||||
|
@ -14,14 +14,16 @@ class SubsiteAdmin extends GenericDataAdmin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getLink() {
|
function getLink() {
|
||||||
return 'admin/intranets/';
|
return 'admin/subsites/';
|
||||||
}
|
}
|
||||||
|
|
||||||
function Link() {
|
function Link() {
|
||||||
return $this->getLink();
|
return $this->getLink();
|
||||||
}
|
}
|
||||||
|
|
||||||
function Results($data, $form) {
|
function Results($data = null) {
|
||||||
|
if(!$data) $data = $this->requestParams;
|
||||||
|
|
||||||
$where = '';
|
$where = '';
|
||||||
if(isset($data['Name']) && $data['Name']) {
|
if(isset($data['Name']) && $data['Name']) {
|
||||||
$SQL_name = Convert::raw2sql($data['Name']);
|
$SQL_name = Convert::raw2sql($data['Name']);
|
||||||
@ -38,7 +40,7 @@ class SubsiteAdmin extends GenericDataAdmin {
|
|||||||
foreach($intranets as $intranet) {
|
foreach($intranets as $intranet) {
|
||||||
$numIntranets++;
|
$numIntranets++;
|
||||||
$evenOdd = ($numIntranets % 2) ? 'odd':'even';
|
$evenOdd = ($numIntranets % 2) ? 'odd':'even';
|
||||||
$html .= "<tr class=\"$evenOdd\"><td><a href=\"admin/intranets/show/{$intranet->ID}\">{$intranet->Title}</a></td><td>{$intranet->Subdomain}.{$intranet->Domain}</td></tr>";
|
$html .= "<tr class=\"$evenOdd\"><td><a class=\"show\" href=\"admin/subsites/show/{$intranet->ID}\">{$intranet->Title}</a></td><td>{$intranet->Subdomain}.{$intranet->Domain}</td></tr>";
|
||||||
}
|
}
|
||||||
$html .= "</tbody></table>";
|
$html .= "</tbody></table>";
|
||||||
return $html;
|
return $html;
|
||||||
@ -108,7 +110,7 @@ class SubsiteAdmin extends GenericDataAdmin {
|
|||||||
|
|
||||||
$member->Groups()->add($groupObjects['Administrators']);
|
$member->Groups()->add($groupObjects['Administrators']);
|
||||||
|
|
||||||
Director::redirect('admin/intranets/show/' . $intranet->ID);
|
Director::redirect('admin/subsites/show/' . $intranet->ID);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
@ -2,6 +2,27 @@
|
|||||||
|
|
||||||
class SubsiteAdminTest extends SapphireTest {
|
class SubsiteAdminTest extends SapphireTest {
|
||||||
static $fixture_file = 'subsites/tests/SubsiteTest.yml';
|
static $fixture_file = 'subsites/tests/SubsiteTest.yml';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test generation of the view
|
||||||
|
*/
|
||||||
|
function testBasicView() {
|
||||||
|
// Open the admin area logged in as admin
|
||||||
|
$response1 = Director::test('admin/subsites/');
|
||||||
|
|
||||||
|
|
||||||
|
// Confirm that this URL gets you the entire page, with the edit form loaded
|
||||||
|
$response2 = Director::test('admin/subsites/show/1');
|
||||||
|
$this->assertTrue(strpos($response2->getBody(), 'id="Root_Configuration"') !== false);
|
||||||
|
$this->assertTrue(strpos($response2->getBody(), '<head') !== false);
|
||||||
|
|
||||||
|
// Confirm that this URL gets you just the form content, with the edit form loaded
|
||||||
|
$response3 = Director::test('admin/subsites/show/1', array('ajax' => 1));
|
||||||
|
|
||||||
|
$this->assertTrue(strpos($response3->getBody(), 'id="Root_Configuration"') !== false);
|
||||||
|
$this->assertTrue(strpos($response3->getBody(), '<form') === false);
|
||||||
|
$this->assertTrue(strpos($response3->getBody(), '<head') === false);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test that the template list is properly generated.
|
* Test that the template list is properly generated.
|
||||||
@ -31,20 +52,16 @@ class SubsiteAdminTest extends SapphireTest {
|
|||||||
|
|
||||||
$searches = array(
|
$searches = array(
|
||||||
array('Name' => 'Other'),
|
array('Name' => 'Other'),
|
||||||
array('Name' => ''),
|
|
||||||
);
|
);
|
||||||
|
|
||||||
foreach($searches as $search) {
|
foreach($searches as $search) {
|
||||||
$response = $form->testAjaxSubmission('getResults', $search);
|
$response = $form->testAjaxSubmission('getResults', $search);
|
||||||
|
$links = $response->getLinks();
|
||||||
echo $response->getBody();
|
foreach($links as $link) {
|
||||||
|
$this->assertTrue(preg_match('/^admin\/subsites\/show\/[0-9]+$/', $link['href']) == 1, "Search result links bad.");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
$this->assertHasLink($response->getBody(), 'admin/intranets/show/' . $this->idFromFixture('Subsite', 'other'));
|
|
||||||
$this->assertHasntLink($response->getBody(), 'admin/intranets/show/' . $this->idFromFixture('Subsite', 'other'));
|
|
||||||
*/
|
|
||||||
$cont->popCurrent();
|
$cont->popCurrent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
class SubsiteTest extends SapphireTest {
|
class SubsiteTest extends SapphireTest {
|
||||||
static $fixture_file = 'subsites/tests/SubsiteTest.yml';
|
static $fixture_file = 'subsites/tests/SubsiteTest.yml';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new subsite from the template and verify that all the template's pages are copied
|
* Create a new subsite from the template and verify that all the template's pages are copied
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user