mirror of
https://github.com/silverstripe/silverstripe-comments
synced 2024-10-22 11:05:49 +02:00
Remove deprecated@2.0. Update Migrate task to check table name. Minor tweaks to class names. Use Director::absoluteURL.
This commit is contained in:
parent
6aeab9f823
commit
7a92b0915d
12
.travis.yml
12
.travis.yml
@ -18,7 +18,7 @@ before_install:
|
|||||||
|
|
||||||
env:
|
env:
|
||||||
global:
|
global:
|
||||||
- DB=MYSQL CORE_RELEASE=4
|
- DB=MYSQL CORE_RELEASE=master
|
||||||
- MODULE_PATH=comments
|
- MODULE_PATH=comments
|
||||||
|
|
||||||
# Set to 1 in the matrix to enable code coverage
|
# Set to 1 in the matrix to enable code coverage
|
||||||
@ -28,15 +28,15 @@ matrix:
|
|||||||
include:
|
include:
|
||||||
- php: 5.6
|
- php: 5.6
|
||||||
#CommentsListTest breaks with this env: DB=MYSQL CORE_RELEASE=3.2 COVERAGE=1
|
#CommentsListTest breaks with this env: DB=MYSQL CORE_RELEASE=3.2 COVERAGE=1
|
||||||
env: DB=SQLITE CORE_RELEASE=4 COVERAGE=1
|
env: DB=SQLITE CORE_RELEASE=master COVERAGE=1
|
||||||
- php: 5.6
|
- php: 5.6
|
||||||
env: DB=MYSQL CORE_RELEASE=4
|
env: DB=MYSQL CORE_RELEASE=master
|
||||||
- php: 7.0
|
- php: 7.0
|
||||||
env: DB=MYSQL CORE_RELEASE=4
|
env: DB=MYSQL CORE_RELEASE=master
|
||||||
- php: 7.1
|
- php: 7.1
|
||||||
env: DB=MYSQL CORE_RELEASE=4
|
env: DB=MYSQL CORE_RELEASE=master
|
||||||
- php: 5.6
|
- php: 5.6
|
||||||
env: DB=PGSQL CORE_RELEASE=4
|
env: DB=PGSQL CORE_RELEASE=master
|
||||||
|
|
||||||
before_script:
|
before_script:
|
||||||
- phpenv rehash
|
- phpenv rehash
|
||||||
|
@ -1,9 +1,7 @@
|
|||||||
mappings:
|
mappings:
|
||||||
Commenting: SilverStripe\Comments\Commenting
|
|
||||||
CommentAdmin: SilverStripe\Comments\Admin\CommentAdmin
|
CommentAdmin: SilverStripe\Comments\Admin\CommentAdmin
|
||||||
CommentsGridField: SilverStripe\Comments\Admin\CommentsGridField
|
CommentsGridField: SilverStripe\Comments\Admin\CommentsGridField
|
||||||
CommentsGridFieldAction: SilverStripe\Comments\Admin\CommentsGridFieldAction
|
CommentsGridFieldAction: SilverStripe\Comments\Admin\CommentsGridFieldAction
|
||||||
CommentsGridFieldBulkAction: SilverStripe\Comments\Admin\CommentsGridFieldBulkAction
|
|
||||||
CommentsGridFieldBulkAction_Handlers: SilverStripe\Comments\Admin\CommentsGridFieldBulkAction\Handlers
|
CommentsGridFieldBulkAction_Handlers: SilverStripe\Comments\Admin\CommentsGridFieldBulkAction\Handlers
|
||||||
CommentsGridFieldConfig: SilverStripe\Comments\Admin\CommentsGridFieldConfig
|
CommentsGridFieldConfig: SilverStripe\Comments\Admin\CommentsGridFieldConfig
|
||||||
CommentingController: SilverStripe\Comments\Controllers\CommentingController
|
CommentingController: SilverStripe\Comments\Controllers\CommentingController
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
\SilverStripe\Dev\Deprecation::notification_version('2.0', 'comments');
|
\SilverStripe\Dev\Deprecation::notification_version('3.0', 'comments');
|
||||||
|
|
||||||
define('COMMENTS_DIR', basename(__DIR__));
|
define('COMMENTS_DIR', basename(__DIR__));
|
||||||
define('COMMENTS_THIRDPARTY', COMMENTS_DIR . DIRECTORY_SEPARATOR . 'thirdparty');
|
define('COMMENTS_THIRDPARTY', COMMENTS_DIR . DIRECTORY_SEPARATOR . 'thirdparty');
|
||||||
|
@ -5,7 +5,3 @@ After: framework/routes#coreroutes
|
|||||||
SilverStripe\Control\Director:
|
SilverStripe\Control\Director:
|
||||||
rules:
|
rules:
|
||||||
comments: SilverStripe\Comments\Controllers\CommentingController
|
comments: SilverStripe\Comments\Controllers\CommentingController
|
||||||
# handle old 2.4 style urls
|
|
||||||
CommentingController//$Action/$ID/$OtherID: SilverStripe\Comments\Controllers\CommentingController
|
|
||||||
PageComments/$Action/$ID/$OtherID: SilverStripe\Comments\Controllers\CommentingController
|
|
||||||
PageCommentsController/$Action/$ID/$OtherID: SilverStripe\Comments\Controllers\CommentingController
|
|
||||||
|
@ -1,13 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace SilverStripe\Comments\Admin;
|
|
||||||
|
|
||||||
use Colymba\BulkManager\GridFieldBulkActionHandler;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @package comments
|
|
||||||
*/
|
|
||||||
class CommentsGridFieldBulkAction extends GridFieldBulkActionHandler
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
namespace SilverStripe\Comments\Admin\CommentsGridFieldBulkAction;
|
namespace SilverStripe\Comments\Admin\CommentsGridFieldBulkAction;
|
||||||
|
|
||||||
|
use Colymba\BulkManager\GridFieldBulkActionHandler;
|
||||||
use SilverStripe\Core\Convert;
|
use SilverStripe\Core\Convert;
|
||||||
use SilverStripe\Comments\Admin\CommentsGridFieldBulkAction;
|
|
||||||
use SilverStripe\Control\HTTPRequest;
|
use SilverStripe\Control\HTTPRequest;
|
||||||
use SilverStripe\Control\HTTPResponse;
|
use SilverStripe\Control\HTTPResponse;
|
||||||
|
|
||||||
@ -12,19 +12,13 @@ use SilverStripe\Control\HTTPResponse;
|
|||||||
*
|
*
|
||||||
* @package comments
|
* @package comments
|
||||||
*/
|
*/
|
||||||
class Handlers extends CommentsGridFieldBulkAction
|
class Handler extends GridFieldBulkActionHandler
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
private static $allowed_actions = array(
|
private static $allowed_actions = array(
|
||||||
'spam',
|
'spam',
|
||||||
'approve',
|
'approve',
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
private static $url_handlers = array(
|
private static $url_handlers = array(
|
||||||
'spam' => 'spam',
|
'spam' => 'spam',
|
||||||
'approve' => 'approve',
|
'approve' => 'approve',
|
||||||
|
@ -3,14 +3,11 @@
|
|||||||
namespace SilverStripe\Comments\Admin;
|
namespace SilverStripe\Comments\Admin;
|
||||||
|
|
||||||
use Colymba\BulkManager\GridFieldBulkManager;
|
use Colymba\BulkManager\GridFieldBulkManager;
|
||||||
use SilverStripe\Comments\Admin\CommentsGridFieldBulkAction\Handlers;
|
use SilverStripe\Comments\Admin\CommentsGridFieldBulkAction\Handler;
|
||||||
use SilverStripe\Core\Convert;
|
use SilverStripe\Core\Convert;
|
||||||
use SilverStripe\Forms\GridField\GridFieldConfig_RecordEditor;
|
use SilverStripe\Forms\GridField\GridFieldConfig_RecordEditor;
|
||||||
use SilverStripe\Forms\GridField\GridFieldDataColumns;
|
use SilverStripe\Forms\GridField\GridFieldDataColumns;
|
||||||
|
|
||||||
/**
|
|
||||||
* @package comments
|
|
||||||
*/
|
|
||||||
class CommentsGridFieldConfig extends GridFieldConfig_RecordEditor
|
class CommentsGridFieldConfig extends GridFieldConfig_RecordEditor
|
||||||
{
|
{
|
||||||
public function __construct($itemsPerPage = 25)
|
public function __construct($itemsPerPage = 25)
|
||||||
@ -39,7 +36,7 @@ class CommentsGridFieldConfig extends GridFieldConfig_RecordEditor
|
|||||||
$manager->addBulkAction(
|
$manager->addBulkAction(
|
||||||
'spam',
|
'spam',
|
||||||
_t('CommentsGridFieldConfig.SPAM', 'Spam'),
|
_t('CommentsGridFieldConfig.SPAM', 'Spam'),
|
||||||
Handlers::class,
|
Handler::class,
|
||||||
array(
|
array(
|
||||||
'isAjax' => true,
|
'isAjax' => true,
|
||||||
'icon' => 'cross',
|
'icon' => 'cross',
|
||||||
@ -50,7 +47,7 @@ class CommentsGridFieldConfig extends GridFieldConfig_RecordEditor
|
|||||||
$manager->addBulkAction(
|
$manager->addBulkAction(
|
||||||
'approve',
|
'approve',
|
||||||
_t('CommentsGridFieldConfig.APPROVE', 'Approve'),
|
_t('CommentsGridFieldConfig.APPROVE', 'Approve'),
|
||||||
Handlers::class,
|
Handler::class,
|
||||||
array(
|
array(
|
||||||
'isAjax' => true,
|
'isAjax' => true,
|
||||||
'icon' => 'cross',
|
'icon' => 'cross',
|
||||||
|
@ -1,170 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace SilverStripe\Comments;
|
|
||||||
|
|
||||||
use InvalidArgumentException;
|
|
||||||
use SilverStripe\Comments\Extensions\CommentsExtension;
|
|
||||||
use SilverStripe\Core\Config\Config;
|
|
||||||
use SilverStripe\Dev\Deprecation;
|
|
||||||
use SilverStripe\Security\Member;
|
|
||||||
use SilverStripe\Security\Permission;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Helper Class for storing the configuration options. Retains the mapping between
|
|
||||||
* objects which have comments attached and the related configuration options.
|
|
||||||
*
|
|
||||||
* Also handles adding the Commenting extension to the {@link DataObject} on behalf
|
|
||||||
* of the user.
|
|
||||||
*
|
|
||||||
* For documentation on how to use this class see docs/en/Configuration.md
|
|
||||||
*
|
|
||||||
* @deprecated since version 2.0
|
|
||||||
*
|
|
||||||
* @package comments
|
|
||||||
*/
|
|
||||||
class Commenting
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Adds commenting to a {@link DataObject}
|
|
||||||
*
|
|
||||||
* @deprecated since version 2.0
|
|
||||||
*
|
|
||||||
* @param string classname to add commenting to
|
|
||||||
* @param array $settings Settings. See {@link self::$default_config} for
|
|
||||||
* available settings
|
|
||||||
*
|
|
||||||
* @throws InvalidArgumentException
|
|
||||||
*/
|
|
||||||
public static function add($class, $settings = false)
|
|
||||||
{
|
|
||||||
Deprecation::notice('2.0', 'Using Commenting::add is deprecated. Please use the config API instead');
|
|
||||||
Config::inst()->update($class, 'extensions', array(CommentsExtension::class));
|
|
||||||
|
|
||||||
// Check if settings must be customised
|
|
||||||
if ($settings === false) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!is_array($settings)) {
|
|
||||||
throw new InvalidArgumentException('$settings needs to be an array or null');
|
|
||||||
}
|
|
||||||
Config::inst()->update($class, 'comments', $settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Removes commenting from a {@link DataObject}. Does not remove existing comments
|
|
||||||
* but does remove the extension.
|
|
||||||
*
|
|
||||||
* @deprecated since version 2.0
|
|
||||||
*
|
|
||||||
* @param string $class Class to remove {@link CommentsExtension} from
|
|
||||||
*/
|
|
||||||
public static function remove($class)
|
|
||||||
{
|
|
||||||
Deprecation::notice('2.0', 'Using Commenting::remove is deprecated. Please use the config API instead');
|
|
||||||
$class::remove_extension(CommentsExtension::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns whether a given class name has commenting enabled
|
|
||||||
*
|
|
||||||
* @deprecated since version 2.0
|
|
||||||
*
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public static function has_commenting($class)
|
|
||||||
{
|
|
||||||
Deprecation::notice('2.0', 'Using Commenting::has_commenting is deprecated. Please use the config API instead');
|
|
||||||
return $class::has_extension(CommentsExtension::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets a value for a class of a given config setting. Passing 'all' as the class
|
|
||||||
* sets it for everything
|
|
||||||
*
|
|
||||||
* @deprecated since version 2.0
|
|
||||||
*
|
|
||||||
* @param string $class Class to set the value on. Passing 'all' will set it to all
|
|
||||||
* active mappings
|
|
||||||
* @param string $key setting to change
|
|
||||||
* @param mixed $value value of the setting
|
|
||||||
*/
|
|
||||||
public static function set_config_value($class, $key, $value = false)
|
|
||||||
{
|
|
||||||
Deprecation::notice('2.0', 'Commenting::set_config_value is deprecated. Use the config api instead');
|
|
||||||
if ($class === 'all') {
|
|
||||||
$class = CommentsExtension::class;
|
|
||||||
}
|
|
||||||
Config::inst()->update($class, 'comments', array($key => $value));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a given config value for a commenting class
|
|
||||||
*
|
|
||||||
* @deprecated since version 2.0
|
|
||||||
*
|
|
||||||
* @param string $class
|
|
||||||
* @param string $key config value to return
|
|
||||||
*
|
|
||||||
* @throws Exception
|
|
||||||
* @return mixed
|
|
||||||
*/
|
|
||||||
public static function get_config_value($class, $key)
|
|
||||||
{
|
|
||||||
Deprecation::notice(
|
|
||||||
'2.0',
|
|
||||||
'Using Commenting::get_config_value is deprecated. Please use $parent->getCommentsOption() or '
|
|
||||||
. 'CommentingController::getOption() instead'
|
|
||||||
);
|
|
||||||
|
|
||||||
// Get settings
|
|
||||||
if (!$class) {
|
|
||||||
$class = CommentsExtension::class;
|
|
||||||
} elseif (!$class::has_extension(CommentsExtension::class)) {
|
|
||||||
throw new InvalidArgumentException("$class does not have commenting enabled");
|
|
||||||
}
|
|
||||||
return singleton($class)->getCommentsOption($key);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Determines whether a config value on the commenting extension
|
|
||||||
* matches a given value.
|
|
||||||
*
|
|
||||||
* @deprecated since version 2.0
|
|
||||||
*
|
|
||||||
* @param string $class
|
|
||||||
* @param string $key
|
|
||||||
* @param string $value Expected value
|
|
||||||
* @return boolean
|
|
||||||
*/
|
|
||||||
public static function config_value_equals($class, $key, $value)
|
|
||||||
{
|
|
||||||
$check = self::get_config_value($class, $key);
|
|
||||||
if ($check && ($check == $value)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return whether a user can post on a given commenting instance
|
|
||||||
*
|
|
||||||
* @deprecated since version 2.0
|
|
||||||
*
|
|
||||||
* @param string $class
|
|
||||||
* @return boolean true
|
|
||||||
*/
|
|
||||||
public static function can_member_post($class)
|
|
||||||
{
|
|
||||||
Deprecation::notice('2.0', 'Use $instance->canPostComment() directly instead');
|
|
||||||
$member = Member::currentUser();
|
|
||||||
|
|
||||||
// Check permission
|
|
||||||
$permission = self::get_config_value($class, 'required_permission');
|
|
||||||
if ($permission && !Permission::check($permission)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check login required
|
|
||||||
$requireLogin = self::get_config_value($class, 'require_login');
|
|
||||||
return !$requireLogin || $member;
|
|
||||||
}
|
|
||||||
}
|
|
@ -309,20 +309,6 @@ class CommentsExtension extends DataExtension
|
|||||||
return $list;
|
return $list;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Check if comments are configured for this page even if they are currently disabled.
|
|
||||||
* Do not include the comments on pages which don't have id's such as security pages
|
|
||||||
*
|
|
||||||
* @deprecated since version 2.0
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
*/
|
|
||||||
public function getCommentsConfigured()
|
|
||||||
{
|
|
||||||
Deprecation::notice('2.0', 'getCommentsConfigured is deprecated. Use getCommentsEnabled instead');
|
|
||||||
return true; // by virtue of all classes with this extension being 'configured'
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determine if comments are enabled for this instance
|
* Determine if comments are enabled for this instance
|
||||||
*
|
*
|
||||||
@ -353,15 +339,6 @@ class CommentsExtension extends DataExtension
|
|||||||
return $this->owner->getCommentsOption('comments_holder_id');
|
return $this->owner->getCommentsOption('comments_holder_id');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @deprecated since version 2.0
|
|
||||||
*/
|
|
||||||
public function getPostingRequiresPermission()
|
|
||||||
{
|
|
||||||
Deprecation::notice('2.0', 'Use getPostingRequiredPermission instead');
|
|
||||||
return $this->getPostingRequiredPermission();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Permission codes required in order to post (or empty if none required)
|
* Permission codes required in order to post (or empty if none required)
|
||||||
*
|
*
|
||||||
@ -372,12 +349,6 @@ class CommentsExtension extends DataExtension
|
|||||||
return $this->owner->getCommentsOption('required_permission');
|
return $this->owner->getCommentsOption('required_permission');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function canPost()
|
|
||||||
{
|
|
||||||
Deprecation::notice('2.0', 'Use canPostComment instead');
|
|
||||||
return $this->canPostComment();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determine if a user can post comments on this item
|
* Determine if a user can post comments on this item
|
||||||
*
|
*
|
||||||
@ -431,12 +402,6 @@ class CommentsExtension extends DataExtension
|
|||||||
return $this->owner->canEdit($member);
|
return $this->owner->canEdit($member);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getRssLink()
|
|
||||||
{
|
|
||||||
Deprecation::notice('2.0', 'Use getCommentRSSLink instead');
|
|
||||||
return $this->getCommentRSSLink();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the RSS link to all comments
|
* Gets the RSS link to all comments
|
||||||
*
|
*
|
||||||
@ -444,13 +409,7 @@ class CommentsExtension extends DataExtension
|
|||||||
*/
|
*/
|
||||||
public function getCommentRSSLink()
|
public function getCommentRSSLink()
|
||||||
{
|
{
|
||||||
return Controller::join_links(Director::baseURL(), 'comments/rss');
|
return Director::absoluteURL('comments/rss');
|
||||||
}
|
|
||||||
|
|
||||||
public function getRssLinkPage()
|
|
||||||
{
|
|
||||||
Deprecation::notice('2.0', 'Use getCommentRSSLinkPage instead');
|
|
||||||
return $this->getCommentRSSLinkPage();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -524,16 +483,6 @@ class CommentsExtension extends DataExtension
|
|||||||
return (is_subclass_of($class, SiteTree::class)) || ($class == SiteTree::class);
|
return (is_subclass_of($class, SiteTree::class)) || ($class == SiteTree::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @deprecated 1.0 Please use {@link CommentsExtension->CommentsForm()}
|
|
||||||
*/
|
|
||||||
public function PageComments()
|
|
||||||
{
|
|
||||||
// This method is very commonly used, don't throw a warning just yet
|
|
||||||
Deprecation::notice('1.0', '$PageComments is deprecated. Please use $CommentsForm');
|
|
||||||
return $this->CommentsForm();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the commenting option for this object
|
* Get the commenting option for this object
|
||||||
*
|
*
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace SilverStripe\Comments\Tasks;
|
namespace SilverStripe\Comments\Tasks;
|
||||||
|
|
||||||
|
use SilverStripe\Comments\Model\Comment;
|
||||||
use SilverStripe\Core\Config\Config;
|
use SilverStripe\Core\Config\Config;
|
||||||
use SilverStripe\Dev\BuildTask;
|
use SilverStripe\Dev\BuildTask;
|
||||||
use SilverStripe\ORM\DB;
|
use SilverStripe\ORM\DB;
|
||||||
@ -13,26 +14,24 @@ use SilverStripe\ORM\DB;
|
|||||||
*/
|
*/
|
||||||
class MigrateCommentParentsTask extends BuildTask
|
class MigrateCommentParentsTask extends BuildTask
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
private static $segment = 'MigrateCommentParentsTask';
|
private static $segment = 'MigrateCommentParentsTask';
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
protected $title = 'Migrate Comment Parent classes from 3.x';
|
protected $title = 'Migrate Comment Parent classes from 3.x';
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
protected $description = 'Migrates all 3.x Comment BaseClass fields to the new ParentClass fields in 4.0';
|
protected $description = 'Migrates all 3.x Comment BaseClass fields to the new ParentClass fields in 4.0';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* @param HTTPRequest $request
|
||||||
*/
|
*/
|
||||||
public function run($request)
|
public function run($request)
|
||||||
{
|
{
|
||||||
|
// Check if anything needs to be done
|
||||||
|
$tableName = Comment::getSchema()->tableName(Comment::class);
|
||||||
|
if (!DB::get_schema()->hasField($tableName, 'BaseClass')) {
|
||||||
|
DB::alteration_message('"BaseClass" does not exist on "' . $tableName . '", nothing to upgrade.', 'notice');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Set the class names to fully qualified class names first
|
// Set the class names to fully qualified class names first
|
||||||
$remapping = Config::inst()->get('SilverStripe\\ORM\\DatabaseAdmin', 'classname_value_remapping');
|
$remapping = Config::inst()->get('SilverStripe\\ORM\\DatabaseAdmin', 'classname_value_remapping');
|
||||||
$updateQuery = "UPDATE \"Comment\" SET \"BaseClass\" = ? WHERE \"BaseClass\" = ?";
|
$updateQuery = "UPDATE \"Comment\" SET \"BaseClass\" = ? WHERE \"BaseClass\" = ?";
|
||||||
|
@ -1,200 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace SilverStripe\Comments\Tests;
|
|
||||||
|
|
||||||
use PHPUnit_Framework_Error_Deprecated;
|
|
||||||
use SilverStripe\Comments\Commenting;
|
|
||||||
use SilverStripe\Comments\Extensions\CommentsExtension;
|
|
||||||
use SilverStripe\Comments\Tests\Stubs\CommentableItem;
|
|
||||||
use SilverStripe\Core\Config\Config;
|
|
||||||
use SilverStripe\Dev\SapphireTest;
|
|
||||||
use SilverStripe\Security\Member;
|
|
||||||
|
|
||||||
class CommentingTest extends SapphireTest
|
|
||||||
{
|
|
||||||
public function setUpOnce()
|
|
||||||
{
|
|
||||||
parent::setUpOnce();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testDeprecatedMethods()
|
|
||||||
{
|
|
||||||
$methods = array('add', 'remove', 'has_commenting');
|
|
||||||
foreach ($methods as $methodName) {
|
|
||||||
try {
|
|
||||||
Commenting::$methodName(Member::class);
|
|
||||||
} catch (PHPUnit_Framework_Error_Deprecated $e) {
|
|
||||||
$expected = 'Using Commenting:' . $methodName .' is deprecated.'
|
|
||||||
. ' Please use the config API instead';
|
|
||||||
$this->assertEquals($expected, $e->getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testSetConfigValue()
|
|
||||||
{
|
|
||||||
// public static function set_config_value($class, $key, $value = false) {
|
|
||||||
Commenting::set_config_value(
|
|
||||||
CommentableItem::class,
|
|
||||||
'comments_holder_id',
|
|
||||||
'commentable_item'
|
|
||||||
);
|
|
||||||
|
|
||||||
$config = Config::inst()->get(
|
|
||||||
CommentableItem::class,
|
|
||||||
'comments'
|
|
||||||
);
|
|
||||||
$actual = $config['comments_holder_id'];
|
|
||||||
|
|
||||||
$this->assertEquals(
|
|
||||||
'commentable_item',
|
|
||||||
$actual
|
|
||||||
);
|
|
||||||
Commenting::set_config_value(
|
|
||||||
'all',
|
|
||||||
'comments_holder_id',
|
|
||||||
'all_items_actually_commentsextension'
|
|
||||||
);
|
|
||||||
|
|
||||||
$config = Config::inst()->get(
|
|
||||||
CommentsExtension::class,
|
|
||||||
'comments'
|
|
||||||
);
|
|
||||||
$actual = $config['comments_holder_id'];
|
|
||||||
$this->assertEquals(
|
|
||||||
'all_items_actually_commentsextension',
|
|
||||||
$actual
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testGetConfigValue()
|
|
||||||
{
|
|
||||||
Config::inst()->update(
|
|
||||||
CommentableItem::class,
|
|
||||||
'comments',
|
|
||||||
array(
|
|
||||||
'comments_holder_id' => 'commentable_item'
|
|
||||||
)
|
|
||||||
);
|
|
||||||
$this->assertEquals(
|
|
||||||
'commentable_item',
|
|
||||||
Commenting::get_config_value(CommentableItem::class, 'comments_holder_id')
|
|
||||||
);
|
|
||||||
|
|
||||||
Config::inst()->update(
|
|
||||||
CommentsExtension::class,
|
|
||||||
'comments',
|
|
||||||
array(
|
|
||||||
'comments_holder_id' => 'comments_extension'
|
|
||||||
)
|
|
||||||
);
|
|
||||||
// if class is null, method uses the CommentsExtension property
|
|
||||||
$this->assertEquals(
|
|
||||||
'comments_extension',
|
|
||||||
Commenting::get_config_value(null, 'comments_holder_id')
|
|
||||||
);
|
|
||||||
|
|
||||||
$this->setExpectedException(
|
|
||||||
'InvalidArgumentException',
|
|
||||||
'Member does not have commenting enabled'
|
|
||||||
);
|
|
||||||
Commenting::get_config_value(Member::class, 'comments_holder_id');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testConfigValueEquals()
|
|
||||||
{
|
|
||||||
Config::inst()->update(
|
|
||||||
CommentableItem::class,
|
|
||||||
'comments',
|
|
||||||
array(
|
|
||||||
'comments_holder_id' => 'some_value'
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
$this->assertTrue(
|
|
||||||
Commenting::config_value_equals(
|
|
||||||
CommentableItem::class,
|
|
||||||
'comments_holder_id',
|
|
||||||
'some_value'
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
$this->assertNull(
|
|
||||||
Commenting::config_value_equals(
|
|
||||||
CommentableItem::class,
|
|
||||||
'comments_holder_id',
|
|
||||||
'not_some_value'
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testAdd()
|
|
||||||
{
|
|
||||||
Commenting::add(Member::class, array('comments_holder_id' => 'test_add_value'));
|
|
||||||
|
|
||||||
$config = Config::inst()->get(
|
|
||||||
Member::class,
|
|
||||||
'comments'
|
|
||||||
);
|
|
||||||
$actual = $config['comments_holder_id'];
|
|
||||||
$this->assertEquals(
|
|
||||||
'test_add_value',
|
|
||||||
$actual
|
|
||||||
);
|
|
||||||
|
|
||||||
Commenting::add(Member::class);
|
|
||||||
|
|
||||||
$config = Config::inst()->get(
|
|
||||||
Member::class,
|
|
||||||
'comments'
|
|
||||||
);
|
|
||||||
$actual = $config['comments_holder_id'];
|
|
||||||
// no settings updated
|
|
||||||
$this->assertEquals(
|
|
||||||
'test_add_value',
|
|
||||||
$actual
|
|
||||||
);
|
|
||||||
|
|
||||||
$this->setExpectedException('InvalidArgumentException', "\$settings needs to be an array or null");
|
|
||||||
Commenting::add(Member::class, 'illegal format, not an array');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testCanMemberPost()
|
|
||||||
{
|
|
||||||
// logout
|
|
||||||
if ($member = Member::currentUser()) {
|
|
||||||
$member->logOut();
|
|
||||||
}
|
|
||||||
|
|
||||||
Config::inst()->update(
|
|
||||||
CommentableItem::class,
|
|
||||||
'comments',
|
|
||||||
array(
|
|
||||||
'require_login' => false
|
|
||||||
)
|
|
||||||
);
|
|
||||||
$this->assertTrue(Commenting::can_member_post(CommentableItem::class));
|
|
||||||
|
|
||||||
Config::inst()->update(
|
|
||||||
CommentableItem::class,
|
|
||||||
'comments',
|
|
||||||
array(
|
|
||||||
'require_login' => true
|
|
||||||
)
|
|
||||||
);
|
|
||||||
$this->assertFalse(Commenting::can_member_post(CommentableItem::class));
|
|
||||||
|
|
||||||
$this->logInWithPermission('CMS_ACCESS_CommentAdmin');
|
|
||||||
$this->assertTrue(Commenting::can_member_post(CommentableItem::class));
|
|
||||||
|
|
||||||
Config::inst()->update(
|
|
||||||
CommentableItem::class,
|
|
||||||
'comments',
|
|
||||||
array(
|
|
||||||
'require_login' => false
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
$this->assertTrue(Commenting::can_member_post(CommentableItem::class));
|
|
||||||
}
|
|
||||||
}
|
|
@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
namespace SilverStripe\Comments\Tests;
|
namespace SilverStripe\Comments\Tests;
|
||||||
|
|
||||||
use PHPUnit_Framework_Error_Deprecated;
|
|
||||||
use SilverStripe\Comments\Extensions\CommentsExtension;
|
use SilverStripe\Comments\Extensions\CommentsExtension;
|
||||||
use SilverStripe\Comments\Model\Comment;
|
use SilverStripe\Comments\Model\Comment;
|
||||||
use SilverStripe\Comments\Tests\CommentTestHelper;
|
use SilverStripe\Comments\Tests\CommentTestHelper;
|
||||||
@ -199,18 +198,21 @@ class CommentsExtensionTest extends SapphireTest
|
|||||||
|
|
||||||
public function testGetCommentRSSLink()
|
public function testGetCommentRSSLink()
|
||||||
{
|
{
|
||||||
|
Config::inst()->update('SilverStripe\\Control\\Director', 'alternate_base_url', 'http://unittesting.local');
|
||||||
|
|
||||||
$item = $this->objFromFixture(CommentableItem::class, 'first');
|
$item = $this->objFromFixture(CommentableItem::class, 'first');
|
||||||
$link = $item->getCommentRSSLink();
|
$link = $item->getCommentRSSLink();
|
||||||
$this->assertEquals('/comments/rss', $link);
|
$this->assertEquals('http://unittesting.local/comments/rss', $link);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function testGetCommentRSSLinkPage()
|
public function testGetCommentRSSLinkPage()
|
||||||
{
|
{
|
||||||
|
Config::inst()->update('SilverStripe\\Control\\Director', 'alternate_base_url', 'http://unittesting.local');
|
||||||
|
|
||||||
$item = $this->objFromFixture(CommentableItem::class, 'first');
|
$item = $this->objFromFixture(CommentableItem::class, 'first');
|
||||||
$page = $item->getCommentRSSLinkPage();
|
$page = $item->getCommentRSSLinkPage();
|
||||||
$this->assertEquals(
|
$this->assertEquals(
|
||||||
'/comments/rss/SilverStripe-Comments-Tests-Stubs-CommentableItem/' . $item->ID,
|
'http://unittesting.local/comments/rss/SilverStripe-Comments-Tests-Stubs-CommentableItem/' . $item->ID,
|
||||||
$page
|
$page
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -447,30 +449,4 @@ class CommentsExtensionTest extends SapphireTest
|
|||||||
$fields
|
$fields
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testDeprecatedMethods()
|
|
||||||
{
|
|
||||||
$item = $this->objFromFixture(CommentableItem::class, 'first');
|
|
||||||
$methodNames = array(
|
|
||||||
'getRssLinkPage',
|
|
||||||
'getRssLink',
|
|
||||||
'PageComments',
|
|
||||||
'getPostingRequiresPermission',
|
|
||||||
'canPost',
|
|
||||||
'getCommentsConfigured'
|
|
||||||
);
|
|
||||||
|
|
||||||
foreach ($methodNames as $methodName) {
|
|
||||||
try {
|
|
||||||
$item->$methodName();
|
|
||||||
$this->fail('Method ' . $methodName .' should be depracated');
|
|
||||||
} catch (PHPUnit_Framework_Error_Deprecated $e) {
|
|
||||||
$expected = 'SilverStripe\\Comments\\Extensions\\CommentsExtension->' . $methodName . ' is '
|
|
||||||
. 'deprecated.';
|
|
||||||
$this->assertStringStartsWith($expected, $e->getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ooh, $this->setExpectedException('ExpectedException', 'Expected Message');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -24,14 +24,10 @@ use SilverStripe\Security\Permission;
|
|||||||
*/
|
*/
|
||||||
class CommentsTest extends FunctionalTest
|
class CommentsTest extends FunctionalTest
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public static $fixture_file = 'comments/tests/CommentsTest.yml';
|
public static $fixture_file = 'comments/tests/CommentsTest.yml';
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
protected $extraDataObjects = array(
|
protected $extraDataObjects = array(
|
||||||
CommentableItem::class,
|
CommentableItem::class,
|
||||||
CommentableItemEnabled::class,
|
CommentableItemEnabled::class,
|
||||||
|
Loading…
Reference in New Issue
Block a user