mirror of
https://github.com/silverstripe/silverstripe-reports
synced 2024-10-22 11:05:53 +02:00
ENHANCEMENT: implemented further tests for CMSPageHistoryController::getEditForm()
This commit is contained in:
parent
18471e8878
commit
11821f3e43
@ -75,7 +75,7 @@ class CMSPageHistoryController extends CMSMain {
|
|||||||
$form = parent::getEditForm($record, ($record) ? $record->getCMSFields() : null);
|
$form = parent::getEditForm($record, ($record) ? $record->getCMSFields() : null);
|
||||||
|
|
||||||
$form->setActions(new FieldSet(
|
$form->setActions(new FieldSet(
|
||||||
$revert = new FormAction('doRevert', _t('CMSPageHistoryController.REVERTTOTHISVERSION', 'Revert to this version'))
|
$revert = new FormAction('doRollback', _t('CMSPageHistoryController.REVERTTOTHISVERSION', 'Revert to this version'))
|
||||||
));
|
));
|
||||||
|
|
||||||
$fields = $form->Fields();
|
$fields = $form->Fields();
|
||||||
@ -120,7 +120,6 @@ class CMSPageHistoryController extends CMSMain {
|
|||||||
"Title"
|
"Title"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
$form->setFields($fields->makeReadonly());
|
$form->setFields($fields->makeReadonly());
|
||||||
$form->loadDataFrom(array(
|
$form->loadDataFrom(array(
|
||||||
"ID" => $id,
|
"ID" => $id,
|
||||||
@ -160,6 +159,7 @@ class CMSPageHistoryController extends CMSMain {
|
|||||||
|
|
||||||
if($page) {
|
if($page) {
|
||||||
$versions = $page->allVersions();
|
$versions = $page->allVersions();
|
||||||
|
$versionID = (!$versionID) ? $page->Version : $versionID;
|
||||||
|
|
||||||
if($versions) {
|
if($versions) {
|
||||||
foreach($versions as $k => $version) {
|
foreach($versions as $k => $version) {
|
||||||
@ -303,6 +303,7 @@ class CMSPageHistoryController extends CMSMain {
|
|||||||
*/
|
*/
|
||||||
function doRollback($data, $form) {
|
function doRollback($data, $form) {
|
||||||
$this->extend('onBeforeRollback', $data['ID']);
|
$this->extend('onBeforeRollback', $data['ID']);
|
||||||
|
|
||||||
$id = (isset($data['ID'])) ? (int) $data['ID'] : null;
|
$id = (isset($data['ID'])) ? (int) $data['ID'] : null;
|
||||||
$version = (isset($data['Version'])) ? (int) $data['Version'] : null;
|
$version = (isset($data['Version'])) ? (int) $data['Version'] : null;
|
||||||
|
|
||||||
|
@ -41,11 +41,48 @@ class CMSPageHistoryControllerTest extends FunctionalTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function testGetEditForm() {
|
function testGetEditForm() {
|
||||||
|
$controller = new CMSPageHistoryController();
|
||||||
|
|
||||||
|
// should get the latest version which we cannot rollback to
|
||||||
|
$form = $controller->getEditForm($this->page->ID);
|
||||||
|
|
||||||
|
$this->assertTrue($form->Actions()->dataFieldByName('action_doRollback')->isReadonly());
|
||||||
|
|
||||||
|
$this->assertEquals($this->page->ID, $form->dataFieldByName('ID')->Value());
|
||||||
|
$this->assertEquals($this->versionPublishCheck2, $form->dataFieldByName('Version')->Value());
|
||||||
|
|
||||||
|
$this->assertContains(
|
||||||
|
sprintf("Currently viewing version %s.", $this->versionPublishCheck2),
|
||||||
|
$form->Fields()->fieldByName('Root.Main.CurrentlyViewingMessage')->getContent()
|
||||||
|
);
|
||||||
|
|
||||||
|
// edit form with a given version
|
||||||
|
$form = $controller->getEditForm($this->page->ID, null, $this->versionPublishCheck);
|
||||||
|
$this->assertFalse($form->Actions()->dataFieldByName('action_doRollback')->isReadonly());
|
||||||
|
|
||||||
|
$this->assertEquals($this->page->ID, $form->dataFieldByName('ID')->Value());
|
||||||
|
$this->assertEquals($this->versionPublishCheck, $form->dataFieldByName('Version')->Value());
|
||||||
|
$this->assertContains(
|
||||||
|
sprintf("Currently viewing version %s.", $this->versionPublishCheck),
|
||||||
|
$form->Fields()->fieldByName('Root.Main.CurrentlyViewingMessage')->getContent()
|
||||||
|
);
|
||||||
|
|
||||||
|
// check that compare mode updates the message
|
||||||
|
$form = $controller->getEditForm($this->page->ID, null, $this->versionPublishCheck, $this->versionPublishCheck2);
|
||||||
|
$this->assertContains(
|
||||||
|
sprintf("Comparing versions %s", $this->versionPublishCheck),
|
||||||
|
$form->Fields()->fieldByName('Root.Main.CurrentlyViewingMessage')->getContent()
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->assertContains(
|
||||||
|
sprintf("and %s", $this->versionPublishCheck2),
|
||||||
|
$form->Fields()->fieldByName('Root.Main.CurrentlyViewingMessage')->getContent()
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @todo should be less tied to cms theme
|
* @todo should be less tied to cms theme.
|
||||||
|
* @todo check highlighting for comparing pages.
|
||||||
*/
|
*/
|
||||||
function testVersionsForm() {
|
function testVersionsForm() {
|
||||||
$history = $this->get('admin/page/history/show/'. $this->page->ID);
|
$history = $this->get('admin/page/history/show/'. $this->page->ID);
|
||||||
@ -82,21 +119,9 @@ class CMSPageHistoryControllerTest extends FunctionalTest {
|
|||||||
$this->assertContains($expected[$i]['status'], (string) $tr->attributes()->class);
|
$this->assertContains($expected[$i]['status'], (string) $tr->attributes()->class);
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
function testDoForm() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function testCompareForm() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function testRevertForm() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function testIsCompareMode() {
|
|
||||||
|
|
||||||
|
// test highlighting
|
||||||
|
$this->assertContains('active', (string) $rows[0]->attributes()->class);
|
||||||
|
$this->assertThat((string) $rows[1]->attributes()->class, $this->logicalNot($this->stringContains('active')));
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user