From 2bd2d5f84450dfe7881958e1ec47409821645189 Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Wed, 29 May 2013 17:26:11 +0200 Subject: [PATCH] More comprehensive UploadField test cases --- _config.php | 1 + code/BasicFieldsTestPage.php | 5 +++-- code/Company.php | 15 ++++++++++++++- code/Employee.php | 12 ++++++++++++ code/FrameworkTestFileExtension.php | 6 ++++++ 5 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 code/FrameworkTestFileExtension.php diff --git a/_config.php b/_config.php index 4d1ae17..10599b5 100644 --- a/_config.php +++ b/_config.php @@ -3,6 +3,7 @@ Member::add_extension('FrameworkTestRole'); Member::add_extension('FileUploadRole'); SiteTree::add_extension('FrameworkTestSiteTreeExtension'); +File::add_extension('FrameworkTestFileExtension'); if(class_exists('SiteTreeCMSWorkflow')) { SiteConfig::add_extension('CMSWorkflowSiteConfigDecorator'); diff --git a/code/BasicFieldsTestPage.php b/code/BasicFieldsTestPage.php index 7e70eea..b881e8e 100644 --- a/code/BasicFieldsTestPage.php +++ b/code/BasicFieldsTestPage.php @@ -155,9 +155,10 @@ class BasicFieldsTestPage extends TestPage { $dateTimeShowCalendar->getTimeField()->setConfig('showdropdown', true); $fields->addFieldsToTab('Root.File', array( - UploadField::create('File','FileUploadField') + $bla = UploadField::create('File','FileUploadField') ->setDescription($description) - ->setConfig('allowedMaxFileNumber', 1), + ->setConfig('allowedMaxFileNumber', 1) + ->setConfig('canPreviewFolder', false), UploadField::create('AttachedFile','UploadField with canUpload=false') ->setDescription($description) ->setConfig('canUpload', false), diff --git a/code/Company.php b/code/Company.php index 42b05b4..0bacebf 100644 --- a/code/Company.php +++ b/code/Company.php @@ -19,7 +19,8 @@ class Company extends DataObject { ); private static $has_many = array( - 'Employees' => 'Employee' + 'Employees' => 'Employee', + 'GroupPhotos' => 'Image' ); private static $many_many = array( @@ -54,6 +55,18 @@ class Company extends DataObject { 'CEO', ); + public function getCMSFields() { + $fields = parent::getCMSFields(); + $fields->addFieldToTab('Root.Main', + $uploadField = UploadField::create('GroupPhotos') + ); + if(method_exists('UploadField', 'setAllowedFileCategories')) { + $uploadField->setAllowedFileCategories('image'); + } + + return $fields; + } + function validate() { if(!$this->Title) { return new ValidationResult(false, 'Title is required'); diff --git a/code/Employee.php b/code/Employee.php index 94f2d32..04d1ee6 100644 --- a/code/Employee.php +++ b/code/Employee.php @@ -32,6 +32,12 @@ class Employee extends DataObject { ); } + // 3.1 only + if(method_exists('UploadField', 'setAllowedFileCategories')) { + $fields->dataFieldByName('ProfileImage')->setAllowedFileCategories('image'); + } + + return $fields; } @@ -49,6 +55,12 @@ class Employee extends DataObject { } DB::alteration_message("Added default records to Employee table","created"); } + + public function validate() { + $result = parent::validate(); + if(!$this->Name) $result->error('"Name" can\'t be blank'); + return $result; + } /** * Contains test data diff --git a/code/FrameworkTestFileExtension.php b/code/FrameworkTestFileExtension.php new file mode 100644 index 0000000..98cf770 --- /dev/null +++ b/code/FrameworkTestFileExtension.php @@ -0,0 +1,6 @@ + 'Company' + ); +} \ No newline at end of file