Skip to content

Commit

Permalink
Add tests for duplicating a page, elemental area and elements under them
Browse files Browse the repository at this point in the history
  • Loading branch information
robbieaverill committed Apr 12, 2018
1 parent ea03f12 commit 2e7dc6c
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 4 deletions.
15 changes: 15 additions & 0 deletions tests/ElementalAreaTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -58,4 +58,19 @@ public function testCanBePublished()
$element = $this->objFromFixture(TestElement::class, 'element1');
$this->assertTrue($element->canPublish($member));
}

public function testDuplicate()
{
/** @var ElementalArea $area */
$area = $this->objFromFixture(ElementalArea::class, 'area1');
$areaIds = $area->Elements()->column('ID');
$this->assertCount(2, $areaIds);

$duplicatedArea = $area->duplicate(true);
$duplicatedAreaIds = $duplicatedArea->Elements()->column('ID');
$this->assertCount(2, $duplicatedAreaIds);
print_r($areaIds);
print_r($duplicatedAreaIds);
$this->assertNotEquals($areaIds, $duplicatedAreaIds);
}
}
18 changes: 18 additions & 0 deletions tests/ElementalPageExtensionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -79,4 +79,22 @@ public function testGetElementalTypes()

$this->assertEquals('A test element', $types[TestElement::class], 'Types should use their "type"');
}

public function testDuplicatingPageDuplicatesElements()
{
/** @var TestPage $page */
$page = $this->objFromFixture(TestPage::class, 'page_with_elements');
$this->assertCount(2, $page->ElementalArea()->Elements());

/** @var TestPage $newPage */
$newPage = $page->duplicate();
$this->assertNotEquals($page->ElementalArea->ID, $newPage->ElementalArea->ID, 'Area is duplicated');
$this->assertCount(2, $newPage->ElementalArea()->Elements());

$this->assertNotEquals(
$page->ElementalArea()->Elements()->column('ID'),
$newPage->ElementalArea()->Elements()->column('ID'),
'Duplicated page has duplicated area and duplicated elements, i.e. not shared'
);
}
}
20 changes: 16 additions & 4 deletions tests/ElementalPageExtensionTest.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,23 @@
DNADesign\Elemental\Models\ElementalArea:
area51:
Title: Area 51

DNADesign\Elemental\Models\ElementContent:
content1:
Title: Test Content
ParentID: =>DNADesign\Elemental\Models\ElementalArea.area51
content2:
Title: More content
ParentID: =>DNADesign\Elemental\Models\ElementalArea.area51

DNADesign\Elemental\Tests\Src\TestPage:
elementaldemo:
Title: Test Elemental
ElementalAreaID: =>DNADesign\Elemental\Models\ElementalArea.area51
page_with_elements:
Title: Page with elements
ElementalAreaID: =>DNADesign\Elemental\Models\ElementalArea.area51

SilverStripe\CMS\Model\RedirectorPage:
elementredirectpage:
Title: Redirector Page

DNADesign\Elemental\Models\ElementContent:
content1:
Title: Test Content

0 comments on commit 2e7dc6c

Please sign in to comment.