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