MINOR line coverage to 70%

This commit is contained in:
Tom Rix 2010-03-30 22:50:37 +00:00
parent 2792c1780a
commit b83b2b442a
6 changed files with 55 additions and 28 deletions

View File

@ -22,7 +22,7 @@ class ErrorPageSubsite extends DataObjectDecorator {
}
if($subsite) {
$subdomain = $subsite->Domains()->First()->Domain;
$subdomain = $subsite->domain();
$subdomainPart = "-{$subdomain}";
}

View File

@ -43,22 +43,12 @@ class RelatedPageLink extends DataObject {
"MenuTitle"
);
if (isset($_GET['RelatedPageID_SubsiteID'])) {
$pageSelectionField->setSubsiteID($_GET['RelatedPageID_SubsiteID']);
}
if (isset($_GET['RelatedPageID_SubsiteID'])) $pageSelectionField->setSubsiteID($_GET['RelatedPageID_SubsiteID']);
$pageSelectionField->setFilterFunction(create_function('$item', 'return $item->ClassName != "VirtualPage";'));
if($subsites->Count()) {
$fields = new FieldSet(
$subsiteSelectionField,
$pageSelectionField
);
} else {
$fields = new FieldSet(
$pageSelectionField
);
}
if($subsites->Count()) $fields = new FieldSet($subsiteSelectionField, $pageSelectionField);
else $fields = new FieldSet($pageSelectionField);
return $fields;
}

View File

@ -28,9 +28,7 @@ class SiteTreeSubsites extends SiteTreeDecorator {
function extraStatics() {
if(!method_exists('DataObjectDecorator', 'load_extra_statics')) {
if($this->owner->class != 'SiteTree') return null;
}
if(!method_exists('DataObjectDecorator', 'load_extra_statics') && $this->owner->class != 'SiteTree') return null;
return array(
'has_one' => array(
'Subsite' => 'Subsite', // The subsite that this page belongs to
@ -138,9 +136,7 @@ class SiteTreeSubsites extends SiteTreeDecorator {
}
function updateCMSFields(&$fields) {
if($this->owner->MasterPageID) {
$fields->insertFirst(new HeaderField('This page\'s content is copied from a master page: ' . $this->owner->MasterPage()->Title, 2));
}
if($this->owner->MasterPageID) $fields->insertFirst(new HeaderField('This page\'s content is copied from a master page: ' . $this->owner->MasterPage()->Title, 2));
// replace readonly link prefix
$subsite = $this->owner->Subsite();
@ -316,9 +312,7 @@ class SiteTreeSubsites extends SiteTreeDecorator {
if(is_object($subsiteID)) {
$subsite = $subsiteID;
$subsiteID = $subsite->ID;
} else {
$subsite = DataObject::get_by_id('Subsite', $subsiteID);
}
} else $subsite = DataObject::get_by_id('Subsite', $subsiteID);
$page = $this->owner->duplicate(false);

View File

@ -34,14 +34,17 @@ class SiteTreeSubsitesTest extends SapphireTest {
}
function testBasicSanity() {
$this->assertTrue(singleton('SiteTree')->getSiteConfig() instanceof SiteConfig);
$this->assertTrue(singleton('SiteTree')->getCMSFields() instanceof FieldSet);
$this->assertTrue(singleton('SubsitesVirtualPage')->getCMSFields() instanceof FieldSet);
$this->assertTrue(is_array(singleton('SiteTreeSubsites')->extraStatics()));
$mainpage = $this->objFromFixture('SiteTree', 'home');
$this->objFromFixture('Member', 'admin')->logIn();
$this->assertTrue($mainpage->canEdit());
$this->assertTrue($mainpage->canDelete());
$this->assertTrue($mainpage->canPublish());
$this->assertTrue($mainpage->getExtensionInstance('SiteTreeSubsites')->canEdit());
$this->assertTrue($mainpage->getExtensionInstance('SiteTreeSubsites')->canDelete());
$this->assertTrue($mainpage->getExtensionInstance('SiteTreeSubsites')->canPublish());
$this->assertTrue($mainpage->getExtensionInstance('SiteTreeSubsites')->canAddChildren());
}
function testErrorPageLocations() {
@ -51,7 +54,7 @@ class SiteTreeSubsitesTest extends SapphireTest {
$path = ErrorPage::get_filepath_for_errorcode(500);
$static_path = Object::get_static('ErrorPage', 'static_filepath');
$expected_path = $static_path . '/error-500-'.$subsite1->Domains()->First()->Domain.'.html';
$expected_path = $static_path . '/error-500-'.$subsite1->domain().'.html';
$this->assertEquals($expected_path, $path);
}
@ -70,6 +73,15 @@ class SiteTreeSubsitesTest extends SapphireTest {
$this->assertEquals($importantpage->NormalRelated()->Count(), 1);
$this->assertEquals($contact->ReverseRelated()->Count(), 1);
$this->assertTrue($importantpage->getCMSFields() instanceof FieldSet);
$this->assertTrue($contact->getCMSFields() instanceof FieldSet);
$this->assertEquals($importantpage->canView(), $link->canView());
$this->assertEquals($importantpage->canEdit(), $link->canEdit());
$this->assertEquals($importantpage->canDelete(), $link->canDelete());
$link->AbsoluteLink(true);
$this->assertEquals($link->RelatedPageAdminLink(), '<a href="admin/show/5" class="cmsEditlink">Contact Us</a>');
}
function testPageWithVirtualPagesGetsTable() {

View File

@ -100,6 +100,7 @@ class SubsiteAdminTest extends SapphireTest {
$ids[$subsite->ID] = true;
}
$this->assertTrue($subsite->adminSearchFields() instanceof FieldSet);
$this->assertArrayHasKey(0, $ids, "Main site accessible");
$this->assertArrayHasKey($this->idFromFixture('Subsite_Template','main'), $ids, "Site with no groups inaccesible");
$this->assertArrayHasKey($this->idFromFixture('Subsite_Template','subsite1'), $ids, "Subsite1 Template inaccessible");

View File

@ -35,7 +35,7 @@ class SubsiteTest extends SapphireTest {
$this->assertEquals('something.test.com', $subsite->domain());
// Another test that changeSubsite is working
Subsite::changeSubsite($subsite->ID);
$subsite->activate();
$siteHome = DataObject::get_one('SiteTree', "\"URLSegment\" = 'home'");
$this->assertNotNull($siteHome);
@ -69,6 +69,7 @@ class SubsiteTest extends SapphireTest {
$this->assertEquals(0, Subsite::getSubsiteIDForDomain('other.example.com'));
$this->assertEquals(0, Subsite::getSubsiteIDForDomain('two.example.com'));
}
/**
@ -90,6 +91,10 @@ class SubsiteTest extends SapphireTest {
$_SERVER['HTTP_HOST'] = "mysite.example.org";
$this->assertEquals('three.mysite.example.org',
$this->objFromFixture('Subsite','domaintest3')->domain());
$this->assertEquals($_SERVER['HTTP_HOST'], singleton('Subsite')->PrimaryDomain);
$this->assertEquals('http://'.$_SERVER['HTTP_HOST'].Director::baseURL(), singleton('Subsite')->absoluteBaseURL());
$_SERVER['HTTP_HOST'] = $originalHTTPHost;
@ -120,4 +125,29 @@ class SubsiteTest extends SapphireTest {
), $adminSiteTitles);
}
function testDuplicateSubsite() {
// get subsite1 & create page
$subsite1 = $this->objFromFixture('Subsite','domaintest1');
$subsite1->activate();
$page1 = new Page();
$page1->Title = 'MyAwesomePage';
$page1->write();
$page1->doPublish();
$this->assertEquals($page1->SubsiteID, $subsite1->ID);
// duplicate
$subsite2 = $subsite1->duplicate();
$subsite2->activate();
// change content on dupe
$page2 = DataObject::get_one('Page', "Title = 'MyAwesomePage'");
$page2->Title = 'MyNewAwesomePage';
$page2->write();
$page2->doPublish();
// check change & check change has not affected subiste1
$subsite1->activate();
$this->assertEquals('MyAwesomePage', DataObject::get_by_id('Page', $page1->ID)->Title);
$subsite2->activate();
$this->assertEquals('MyNewAwesomePage', DataObject::get_by_id('Page', $page2->ID)->Title);
}
}