silverstripe-framework/admin/tests/ModelAdminTest.php
Damian Mooyman 59efd280ad Fix issues with CMS permission codes
Standardise template locations
Move CMSSettingsController class to SiteConfig module
Fix CMSMenu behaviour for namespaced admin sections
Split classes into one per file
Manual fixes and cleanup
2016-08-17 11:19:14 +12:00

85 lines
2.0 KiB
PHP

<?php
use SilverStripe\ORM\DataObject;
use SilverStripe\Security\Permission;
use SilverStripe\Admin\ModelAdmin;
class ModelAdminTest extends FunctionalTest {
protected static $fixture_file = 'ModelAdminTest.yml';
protected $extraDataObjects = array(
'ModelAdminTest_Admin',
'ModelAdminTest_Contact',
'ModelAdminTest_Player'
);
public function testModelAdminOpens() {
$this->autoFollowRedirection = false;
$this->logInAs('admin');
$this->assertTrue((bool)Permission::check("ADMIN"));
$this->assertEquals(200, $this->get('ModelAdminTest_Admin')->getStatusCode());
}
public function testExportFieldsDefaultIsSummaryFields() {
$admin = new ModelAdminTest_Admin();
$admin->doInit();
$this->assertEquals(
$admin->getExportFields(),
ModelAdminTest_Contact::singleton()->summaryFields()
);
}
public function testExportFieldsOverloadedMethod() {
$admin = new ModelAdminTest_PlayerAdmin();
$admin->doInit();
$this->assertEquals($admin->getExportFields(), array(
'Name' => 'Name',
'Position' => 'Position'
));
}
}
class ModelAdminTest_Admin extends ModelAdmin implements TestOnly {
private static $url_segment = 'testadmin';
private static $managed_models = array(
'ModelAdminTest_Contact',
);
}
class ModelAdminTest_PlayerAdmin extends ModelAdmin implements TestOnly {
private static $url_segment = 'testadmin';
private static $managed_models = array(
'ModelAdminTest_Player'
);
public function getExportFields() {
return array(
'Name' => 'Name',
'Position' => 'Position'
);
}
}
class ModelAdminTest_Contact extends DataObject implements TestOnly {
private static $db = array(
'Name' => 'Varchar',
'Phone' => 'Varchar',
);
private static $summary_fields = array(
'Name' => 'Name',
'Phone' => 'Phone'
);
}
class ModelAdminTest_Player extends DataObject implements TestOnly {
private static $db = array(
'Name' => 'Varchar',
'Position' => 'Varchar',
);
private static $has_one = array(
'Contact' => 'ModelAdminTest_Contact'
);
}