Refactor creating/deleting WordPress users in integration tests
[MAILPOET-3077]
This commit is contained in:
committed by
Pavel Dohnal
parent
51e1ce9b7c
commit
95af49e43f
@ -1,5 +1,6 @@
|
||||
<?php
|
||||
|
||||
require_once(ABSPATH . 'wp-admin/includes/user.php');
|
||||
|
||||
/**
|
||||
* Inherited Methods
|
||||
@ -20,6 +21,27 @@
|
||||
class IntegrationTester extends \Codeception\Actor {
|
||||
use _generated\IntegrationTesterActions;
|
||||
|
||||
public function createWordPressUser(string $email, string $role) {
|
||||
wp_insert_user([
|
||||
'user_login' => explode('@', $email)[0],
|
||||
'user_email' => $email,
|
||||
'role' => $role,
|
||||
'user_pass' => '12123154',
|
||||
]);
|
||||
}
|
||||
|
||||
public function deleteWordPressUser(string $email) {
|
||||
$user = get_user_by('email', $email);
|
||||
if (!$user) {
|
||||
return;
|
||||
}
|
||||
if (is_multisite()) {
|
||||
wpmu_delete_user($user->ID);
|
||||
} else {
|
||||
wp_delete_user($user->ID);
|
||||
}
|
||||
}
|
||||
|
||||
// generate random users
|
||||
public function generateSubscribers($count, $data = []) {
|
||||
for ($i = 0; $i < $count; $i++) {
|
||||
|
@ -47,8 +47,6 @@ use MailPoet\WP\Functions;
|
||||
use MailPoetVendor\Carbon\Carbon;
|
||||
use MailPoetVendor\Idiorm\ORM;
|
||||
|
||||
require_once(ABSPATH . 'wp-admin/includes/user.php');
|
||||
|
||||
class SubscribersTest extends \MailPoetTest {
|
||||
|
||||
/** @var FormEntity */
|
||||
@ -326,22 +324,14 @@ class SubscribersTest extends \MailPoetTest {
|
||||
->create();
|
||||
$dynamicSegment->save();
|
||||
$wpUserEmail = 'wpuserEditor@example.com';
|
||||
wp_insert_user([
|
||||
'user_login' => 'user-role-test1',
|
||||
'user_email' => $wpUserEmail,
|
||||
'role' => 'editor',
|
||||
'user_pass' => '12123154',
|
||||
]);
|
||||
$this->tester->createWordPressUser($wpUserEmail, 'editor');
|
||||
$response = $this->endpoint->listing([
|
||||
'filter' => [
|
||||
'segment' => $dynamicSegment->id,
|
||||
],
|
||||
]);
|
||||
expect($response->meta['filters']['segment'])->contains(['value' => $dynamicSegment->id, 'label' => 'Dynamic (1)']);
|
||||
$user = get_user_by('email', $wpUserEmail);
|
||||
if ($user) {
|
||||
wp_delete_user($user->ID);
|
||||
}
|
||||
$this->tester->deleteWordPressUser($wpUserEmail);
|
||||
}
|
||||
|
||||
public function testItCanSearchListing() {
|
||||
|
@ -7,24 +7,9 @@ use MailPoet\Models\Subscriber;
|
||||
class UserRoleTest extends \MailPoetTest {
|
||||
public function _before() {
|
||||
$this->cleanData();
|
||||
wp_insert_user([
|
||||
'user_login' => 'user-role-test1',
|
||||
'user_email' => 'user-role-test1@example.com',
|
||||
'role' => 'editor',
|
||||
'user_pass' => '12123154',
|
||||
]);
|
||||
wp_insert_user([
|
||||
'user_login' => 'user-role-test2',
|
||||
'user_email' => 'user-role-test2@example.com',
|
||||
'role' => 'administrator',
|
||||
'user_pass' => '12123154',
|
||||
]);
|
||||
wp_insert_user([
|
||||
'user_login' => 'user-role-test3',
|
||||
'user_email' => 'user-role-test3@example.com',
|
||||
'role' => 'editor',
|
||||
'user_pass' => '12123154',
|
||||
]);
|
||||
$this->tester->createWordPressUser('user-role-test1@example.com', 'editor');
|
||||
$this->tester->createWordPressUser('user-role-test2@example.com', 'administrator');
|
||||
$this->tester->createWordPressUser('user-role-test3@example.com', 'editor');
|
||||
}
|
||||
|
||||
public function testItConstructsQuery() {
|
||||
@ -46,10 +31,7 @@ class UserRoleTest extends \MailPoetTest {
|
||||
private function cleanData() {
|
||||
$emails = ['user-role-test1@example.com', 'user-role-test2@example.com', 'user-role-test3@example.com'];
|
||||
foreach ($emails as $email) {
|
||||
$user = get_user_by('email', $email);
|
||||
if ($user) {
|
||||
wp_delete_user($user->ID);
|
||||
}
|
||||
$this->tester->deleteWordPressUser($email);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2,8 +2,6 @@
|
||||
|
||||
namespace MailPoet\DynamicSegments\Persistence\Loading;
|
||||
|
||||
require_once(ABSPATH . 'wp-admin/includes/user.php');
|
||||
|
||||
use MailPoet\DynamicSegments\Filters\UserRole;
|
||||
use MailPoet\DynamicSegments\RequirementsChecker;
|
||||
use MailPoet\Models\DynamicSegment;
|
||||
@ -17,24 +15,9 @@ class SubscribersCountTest extends \MailPoetTest {
|
||||
|
||||
public function _before() {
|
||||
$this->cleanData();
|
||||
wp_insert_user([
|
||||
'user_login' => 'user-role-test1',
|
||||
'user_email' => 'user-role-test1@example.com',
|
||||
'role' => 'editor',
|
||||
'user_pass' => '12123154',
|
||||
]);
|
||||
wp_insert_user([
|
||||
'user_login' => 'user-role-test2',
|
||||
'user_email' => 'user-role-test2@example.com',
|
||||
'role' => 'administrator',
|
||||
'user_pass' => '12123154',
|
||||
]);
|
||||
wp_insert_user([
|
||||
'user_login' => 'user-role-test3',
|
||||
'user_email' => 'user-role-test3@example.com',
|
||||
'role' => 'editor',
|
||||
'user_pass' => '12123154',
|
||||
]);
|
||||
$this->tester->createWordPressUser('user-role-test1@example.com', 'editor');
|
||||
$this->tester->createWordPressUser('user-role-test2@example.com', 'administrator');
|
||||
$this->tester->createWordPressUser('user-role-test3@example.com', 'editor');
|
||||
$this->requirementChecker = $this
|
||||
->getMockBuilder(RequirementsChecker::class)
|
||||
->setMethods(['shouldSkipSegment'])
|
||||
@ -82,16 +65,7 @@ class SubscribersCountTest extends \MailPoetTest {
|
||||
private function cleanData() {
|
||||
$emails = ['user-role-test1@example.com', 'user-role-test2@example.com', 'user-role-test3@example.com'];
|
||||
foreach ($emails as $email) {
|
||||
$user = get_user_by('email', $email);
|
||||
if (!$user) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (is_multisite()) {
|
||||
wpmu_delete_user($user->ID);
|
||||
} else {
|
||||
wp_delete_user($user->ID);
|
||||
}
|
||||
$this->tester->deleteWordPressUser($email);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2,8 +2,6 @@
|
||||
|
||||
namespace MailPoet\Models;
|
||||
|
||||
require_once(ABSPATH . 'wp-admin/includes/user.php');
|
||||
|
||||
use MailPoet\DynamicSegments\Filters\UserRole;
|
||||
use MailPoetVendor\Idiorm\ORM;
|
||||
|
||||
@ -21,24 +19,9 @@ class SubscribersInDynamicSegmentTest extends \MailPoetTest {
|
||||
$dataFilter->segmentId = $this->dynamicSegment->id;
|
||||
$dataFilter->filterData = $filter->toArray();
|
||||
$dataFilter->save();
|
||||
wp_insert_user([
|
||||
'user_login' => 'user-role-test1',
|
||||
'user_email' => 'user-role-test1@example.com',
|
||||
'role' => 'editor',
|
||||
'user_pass' => '12123154',
|
||||
]);
|
||||
wp_insert_user([
|
||||
'user_login' => 'user-role-test2',
|
||||
'user_email' => 'user-role-test2@example.com',
|
||||
'role' => 'administrator',
|
||||
'user_pass' => '12123154',
|
||||
]);
|
||||
wp_insert_user([
|
||||
'user_login' => 'user-role-test3',
|
||||
'user_email' => 'user-role-test3@example.com',
|
||||
'role' => 'editor',
|
||||
'user_pass' => '12123154',
|
||||
]);
|
||||
$this->tester->createWordPressUser('user-role-test1@example.com', 'editor');
|
||||
$this->tester->createWordPressUser('user-role-test2@example.com', 'administrator');
|
||||
$this->tester->createWordPressUser('user-role-test3@example.com', 'editor');
|
||||
}
|
||||
|
||||
public function testListingQuery() {
|
||||
@ -75,16 +58,7 @@ class SubscribersInDynamicSegmentTest extends \MailPoetTest {
|
||||
ORM::raw_execute('TRUNCATE ' . DynamicSegmentFilter::$_table);
|
||||
$emails = ['user-role-test1@example.com', 'user-role-test2@example.com', 'user-role-test3@example.com'];
|
||||
foreach ($emails as $email) {
|
||||
$user = get_user_by('email', $email);
|
||||
if (!$user) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (is_multisite()) {
|
||||
wpmu_delete_user($user->ID);
|
||||
} else {
|
||||
wp_delete_user($user->ID);
|
||||
}
|
||||
$this->tester->deleteWordPressUser($email);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -6,8 +6,6 @@ use MailPoet\Entities\DynamicSegmentFilterEntity;
|
||||
use MailPoet\Entities\SegmentEntity;
|
||||
use MailPoet\Entities\SubscriberEntity;
|
||||
|
||||
require_once(ABSPATH . 'wp-admin/includes/user.php');
|
||||
|
||||
class UserRoleTest extends \MailPoetTest {
|
||||
|
||||
private $userRole;
|
||||
@ -16,24 +14,9 @@ class UserRoleTest extends \MailPoetTest {
|
||||
$this->userRole = $this->diContainer->get(UserRole::class);
|
||||
$this->cleanWpUsers();
|
||||
// Insert WP users and subscribers are created automatically
|
||||
wp_insert_user([
|
||||
'user_login' => 'user-role-test1',
|
||||
'user_email' => 'user-role-test1@example.com',
|
||||
'role' => 'editor',
|
||||
'user_pass' => '12123154',
|
||||
]);
|
||||
wp_insert_user([
|
||||
'user_login' => 'user-role-test2',
|
||||
'user_email' => 'user-role-test2@example.com',
|
||||
'role' => 'administrator',
|
||||
'user_pass' => '12123154',
|
||||
]);
|
||||
wp_insert_user([
|
||||
'user_login' => 'user-role-test3',
|
||||
'user_email' => 'user-role-test3@example.com',
|
||||
'role' => 'editor',
|
||||
'user_pass' => '12123154',
|
||||
]);
|
||||
$this->tester->createWordPressUser('user-role-test1@example.com', 'editor');
|
||||
$this->tester->createWordPressUser('user-role-test2@example.com', 'administrator');
|
||||
$this->tester->createWordPressUser('user-role-test3@example.com', 'editor');
|
||||
}
|
||||
|
||||
public function testItAppliesFilter() {
|
||||
@ -83,10 +66,7 @@ class UserRoleTest extends \MailPoetTest {
|
||||
private function cleanWpUsers() {
|
||||
$emails = ['user-role-test1@example.com', 'user-role-test2@example.com', 'user-role-test3@example.com'];
|
||||
foreach ($emails as $email) {
|
||||
$user = get_user_by('email', $email);
|
||||
if ($user) {
|
||||
wp_delete_user($user->ID);
|
||||
}
|
||||
$this->tester->deleteWordPressUser($email);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -8,8 +8,6 @@ use MailPoet\Entities\SubscriberEntity;
|
||||
use MailPoet\Entities\SubscriberSegmentEntity;
|
||||
use MailPoet\Subscribers\Source;
|
||||
|
||||
require_once(ABSPATH . 'wp-admin/includes/user.php');
|
||||
|
||||
class SegmentSubscribersRepositoryTest extends \MailPoetTest {
|
||||
|
||||
/** @var SegmentSubscribersRepository */
|
||||
@ -61,13 +59,8 @@ class SegmentSubscribersRepositoryTest extends \MailPoetTest {
|
||||
$segment = $this->createDynamicSegmentEntity();
|
||||
|
||||
$wpUserEmail = 'user-role-test1@example.com';
|
||||
$this->cleanupWpUser($wpUserEmail);
|
||||
wp_insert_user([
|
||||
'user_login' => 'user-role-test1',
|
||||
'user_email' => $wpUserEmail,
|
||||
'role' => 'editor',
|
||||
'user_pass' => '12123154',
|
||||
]);
|
||||
$this->tester->deleteWordPressUser($wpUserEmail);
|
||||
$this->tester->createWordPressUser($wpUserEmail, 'editor');
|
||||
$wpUserSubscriber = $this->entityManager
|
||||
->getRepository(SubscriberEntity::class)
|
||||
->findOneBy(['email' => $wpUserEmail]);
|
||||
@ -90,7 +83,7 @@ class SegmentSubscribersRepositoryTest extends \MailPoetTest {
|
||||
$filteredIds = $this->repository->findSubscribersIdsInSegment((int)$segment->getId(), [$subscriberNoList->getId()]);
|
||||
expect($filteredIds)->equals([]);
|
||||
|
||||
$this->cleanupWpUser($wpUserEmail);
|
||||
$this->tester->deleteWordPressUser($wpUserEmail);
|
||||
}
|
||||
|
||||
public function _after() {
|
||||
@ -134,13 +127,6 @@ class SegmentSubscribersRepositoryTest extends \MailPoetTest {
|
||||
return $segment;
|
||||
}
|
||||
|
||||
private function cleanupWpUser(string $email) {
|
||||
$user = get_user_by('email', $email);
|
||||
if ($user) {
|
||||
wp_delete_user($user->ID);
|
||||
}
|
||||
}
|
||||
|
||||
private function cleanup() {
|
||||
$this->truncateEntity(SegmentEntity::class);
|
||||
$this->truncateEntity(SubscriberEntity::class);
|
||||
|
@ -10,8 +10,6 @@ use MailPoet\Listing\ListingDefinition;
|
||||
use MailPoet\Segments\DynamicSegments\FilterHandler;
|
||||
use MailPoet\Segments\SegmentSubscribersRepository;
|
||||
|
||||
require_once(ABSPATH . 'wp-admin/includes/user.php');
|
||||
|
||||
class SubscriberListingRepositoryTest extends \MailPoetTest {
|
||||
|
||||
/** @var SubscriberListingRepository */
|
||||
@ -178,14 +176,8 @@ class SubscriberListingRepositoryTest extends \MailPoetTest {
|
||||
|
||||
public function testLoadSubscribersInDynamicSegment() {
|
||||
$wpUserEmail = 'user-role-test1@example.com';
|
||||
$this->cleanupWpUser($wpUserEmail);
|
||||
wp_insert_user([
|
||||
'user_login' => 'user-role-test1',
|
||||
'user_email' => $wpUserEmail,
|
||||
'role' => 'editor',
|
||||
'user_pass' => '12123154',
|
||||
]);
|
||||
|
||||
$this->tester->deleteWordPressUser($wpUserEmail);
|
||||
$this->tester->createWordPressUser($wpUserEmail, 'editor');
|
||||
$list = $this->createDynamicSegmentEntity();
|
||||
|
||||
$this->createSubscriberEntity(); // subscriber without a list
|
||||
@ -195,7 +187,7 @@ class SubscriberListingRepositoryTest extends \MailPoetTest {
|
||||
$data = $this->repository->getData($this->getListingDefinition());
|
||||
expect(count($data))->equals(1);
|
||||
expect($data[0]->getEmail())->equals($wpUserEmail);
|
||||
$this->cleanupWpUser($wpUserEmail);
|
||||
$this->tester->deleteWordPressUser($wpUserEmail);
|
||||
}
|
||||
|
||||
private function createSubscriberEntity(): SubscriberEntity {
|
||||
@ -234,13 +226,6 @@ class SubscriberListingRepositoryTest extends \MailPoetTest {
|
||||
return $subscriberSegment;
|
||||
}
|
||||
|
||||
private function cleanupWpUser(string $email) {
|
||||
$user = get_user_by('email', $email);
|
||||
if ($user) {
|
||||
wp_delete_user($user->ID);
|
||||
}
|
||||
}
|
||||
|
||||
private function cleanup() {
|
||||
$this->truncateEntity(SegmentEntity::class);
|
||||
$this->truncateEntity(SubscriberEntity::class);
|
||||
|
@ -104,8 +104,10 @@ if (isset($GLOBALS['GLOBALS']['_wp_registered_theme_features']['post-formats']['
|
||||
unset($GLOBALS['GLOBALS']['_wp_registered_theme_features']['post-formats']['show_in_rest']);
|
||||
}
|
||||
|
||||
// phpcs:ignore PSR1.Classes.ClassDeclaration, Squiz.Classes.ClassFileName
|
||||
abstract class MailPoetTest extends \Codeception\TestCase\Test {
|
||||
/**
|
||||
* @property IntegrationTester $tester
|
||||
*/
|
||||
abstract class MailPoetTest extends \Codeception\TestCase\Test { // phpcs:ignore
|
||||
protected $backupGlobals = true;
|
||||
protected $backupGlobalsBlacklist = [
|
||||
'app',
|
||||
|
Reference in New Issue
Block a user