Skip to content

Commit 4400eff

Browse files
committed
MNT Add campaign-admin support back in
1 parent 9051e86 commit 4400eff

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

tests/php/ChangeSetTest.php

+32
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use BadMethodCallException;
66
use PHPUnit\Framework\ExpectationFailedException;
77
use SebastianBergmann\Comparator\ComparisonFailure;
8+
use SilverStripe\CampaignAdmin\AddToCampaignHandler;
89
use SilverStripe\Dev\SapphireTest;
910
use SilverStripe\ORM\DataObject;
1011
use SilverStripe\Versioned\ChangeSet;
@@ -351,6 +352,21 @@ public function testCanPublish()
351352
$this->logInWithPermission('PERM_canPublish');
352353
$this->assertTrue($changeSet->canPublish());
353354

355+
if (class_exists(AddToCampaignHandler::class)) {
356+
// Test user with the necessary minimum permissions can login
357+
$this->logInWithPermission(
358+
[
359+
'CMS_ACCESS_CampaignAdmin',
360+
'PERM_canPublish'
361+
]
362+
);
363+
$this->assertTrue($changeSet->canPublish());
364+
365+
// campaign admin only permission doesn't grant publishing rights
366+
$this->logInWithPermission('CMS_ACCESS_CampaignAdmin');
367+
$this->assertFalse($changeSet->canPublish());
368+
}
369+
354370
// Test that you can still publish a changeset, even if canPublish()
355371
// returns false (e.g. externally rather than internally enforced)
356372
$changeSet->publish();
@@ -435,6 +451,10 @@ public function testCanEdit()
435451
$this->assertFalse($changeSet->canEdit());
436452
$this->logInWithPermission('SomeWrongPermission');
437453
$this->assertFalse($changeSet->canEdit());
454+
if (class_exists(AddToCampaignHandler::class)) {
455+
$this->logInWithPermission('CMS_ACCESS_CampaignAdmin');
456+
$this->assertTrue($changeSet->canEdit());
457+
}
438458
}
439459

440460
public function testCanCreate()
@@ -444,6 +464,10 @@ public function testCanCreate()
444464
$this->assertFalse(ChangeSet::singleton()->canCreate());
445465
$this->logInWithPermission('SomeWrongPermission');
446466
$this->assertFalse(ChangeSet::singleton()->canCreate());
467+
if (class_exists(AddToCampaignHandler::class)) {
468+
$this->logInWithPermission('CMS_ACCESS_CampaignAdmin');
469+
$this->assertTrue(ChangeSet::singleton()->canCreate());
470+
}
447471
}
448472

449473
public function testCanDelete()
@@ -462,6 +486,10 @@ public function testCanDelete()
462486
$this->assertFalse($changeSet->canDelete());
463487
$this->logInWithPermission('SomeWrongPermission');
464488
$this->assertFalse($changeSet->canDelete());
489+
if (class_exists(AddToCampaignHandler::class)) {
490+
$this->logInWithPermission('CMS_ACCESS_CampaignAdmin');
491+
$this->assertTrue($changeSet->canDelete());
492+
}
465493
}
466494

467495
public function testCanView()
@@ -480,6 +508,10 @@ public function testCanView()
480508
$this->assertFalse($changeSet->canView());
481509
$this->logInWithPermission('SomeWrongPermission');
482510
$this->assertFalse($changeSet->canView());
511+
if (class_exists(AddToCampaignHandler::class)) {
512+
$this->logInWithPermission('CMS_ACCESS_CampaignAdmin');
513+
$this->assertTrue($changeSet->canView());
514+
}
483515
}
484516

485517
public function testPublish()

0 commit comments

Comments
 (0)