Skip to content

Commit b0c72f3

Browse files
Merge pull request #8255 from magento-gl/mainline-integration-tests
Mainline integration tests
2 parents adc4105 + c065e16 commit b0c72f3

File tree

7 files changed

+379
-6
lines changed

7 files changed

+379
-6
lines changed

app/code/Magento/Customer/Test/Mftf/Section/StorefrontCustomerSignInFormSection/StorefrontCustomerSignInPopupFormSection.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@
1313
<element name="password" type="input" selector="#pass"/>
1414
<element name="signIn" type="button" selector="(//button[@id='send2'][contains(@class, 'login')])[1]" timeout="30"/>
1515
<element name="forgotYourPassword" type="button" selector="//a[@class='action']//span[contains(text(),'Forgot Your Password?')]" timeout="30"/>
16-
<element name="createAnAccount" type="button" selector="//div[contains(@class,'actions-toolbar')]//a[contains(.,'Create an Account')]" timeout="30"/>
16+
<element name="createAnAccount" type="button" selector="(//div[contains(@class,'actions-toolbar')]//a[contains(.,'Create an Account')])[last()]" timeout="30"/>
1717
</section>
1818
</sections>

app/code/Magento/Marketplace/view/adminhtml/templates/index.phtml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@
3232
<h2 class="page-sub-title"><?= $block->escapeHtml(__('Partner search')) ?></h2>
3333
<p>
3434
<?= $block->escapeHtml(__(
35-
'Magento has a thriving ecosystem of technology partners to help merchants and brands deliver ' .
36-
'the best possible customer experiences. They are recognized as experts in eCommerce, ' .
35+
'Magento has a thriving ecosystem of technology partners to help merchants and brands deliver '
36+
. 'the best possible customer experiences. They are recognized as experts in eCommerce, ' .
3737
'search, email marketing, payments, tax, fraud, optimization and analytics, fulfillment, ' .
3838
'and more. Visit the Magento Partner Directory to see all of our trusted partners.'
3939
)); ?>
@@ -61,7 +61,7 @@
6161
)); ?>
6262
</p>
6363
<a class="action-secondary" target="_blank"
64-
href="https://marketplace.magento.com/">
64+
href="https://commercemarketplace.adobe.com/">
6565
<?= $block->escapeHtml(__('Visit Magento Marketplaces')) ?>
6666
</a>
6767
</div>

app/code/Magento/Multishipping/Test/Mftf/Test/StoreFrontGuestCheckingWithMultishipmentTest.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
</actionGroup>
4545
<actionGroup ref="StorefrontOpenCartFromMinicartActionGroup" stepKey="openCart"/>
4646
<click selector="{{MultishippingSection.checkoutWithMultipleAddresses}}" stepKey="proceedMultishipping"/>
47+
<waitForElementClickable selector="{{StorefrontCustomerSignInPopupFormSection.createAnAccount}}" stepKey="waitForCreateAccount"/>
4748
<click selector="{{StorefrontCustomerSignInPopupFormSection.createAnAccount}}" stepKey="clickCreateAccount"/>
4849
<seeElement selector="{{CheckoutShippingSection.region}}" stepKey="seeRegionSelector"/>
4950
</test>

app/code/Magento/UrlRewrite/Test/Mftf/Data/UrlRewriteData.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
</entity>
2929
<entity name="customPermanentUrlRewrite" type="urlRewrite">
3030
<data key="request_path" unique="prefix">wishlist</data>
31-
<data key="target_path">https://marketplace.magento.com/</data>
31+
<data key="target_path">https://commercemarketplace.adobe.com/</data>
3232
<data key="redirect_type">301</data>
3333
<data key="redirect_type_label">Permanent (301)</data>
3434
<data key="store_id">1</data>
@@ -37,7 +37,7 @@
3737
</entity>
3838
<entity name="customTemporaryUrlRewrite" type="urlRewrite">
3939
<data key="request_path" unique="prefix">wishlist</data>
40-
<data key="target_path">https://marketplace.magento.com/</data>
40+
<data key="target_path">https://commercemarketplace.adobe.com/</data>
4141
<data key="redirect_type">302</data>
4242
<data key="redirect_type_label">Temporary (302)</data>
4343
<data key="store_id">1</data>

dev/tests/integration/testsuite/Magento/Newsletter/Model/Plugin/PluginTest.php

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,11 @@
66
namespace Magento\Newsletter\Model\Plugin;
77

88
use Magento\TestFramework\Helper\Bootstrap;
9+
use Magento\TestFramework\Mail\Template\TransportBuilderMock;
910

1011
/**
12+
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
13+
* phpcs:disable Magento2.Security.Superglobal
1114
* @magentoAppIsolation enabled
1215
*/
1316
class PluginTest extends \PHPUnit\Framework\TestCase
@@ -24,6 +27,11 @@ class PluginTest extends \PHPUnit\Framework\TestCase
2427
*/
2528
protected $customerRepository;
2629

30+
/**
31+
* @var TransportBuilderMock
32+
*/
33+
protected $transportBuilderMock;
34+
2735
protected function setUp(): void
2836
{
2937
$this->accountManagement = Bootstrap::getObjectManager()->get(
@@ -32,6 +40,9 @@ protected function setUp(): void
3240
$this->customerRepository = Bootstrap::getObjectManager()->get(
3341
\Magento\Customer\Api\CustomerRepositoryInterface::class
3442
);
43+
$this->transportBuilderMock = Bootstrap::getObjectManager()->get(
44+
TransportBuilderMock::class
45+
);
3546
}
3647

3748
protected function tearDown(): void
@@ -223,4 +234,67 @@ public function testCustomerWithTwoNewsLetterSubscriptions()
223234
$extensionAttributes = $customer->getExtensionAttributes();
224235
$this->assertTrue($extensionAttributes->getIsSubscribed());
225236
}
237+
238+
/**
239+
* @magentoAppArea adminhtml
240+
* @magentoDbIsolation enabled
241+
* @magentoConfigFixture current_store newsletter/general/active 1
242+
* @magentoDataFixture Magento/Customer/_files/customer_welcome_email_template.php
243+
*
244+
* @return void
245+
* @throws \Magento\Framework\Exception\LocalizedException
246+
*/
247+
public function testCreateAccountWithNewsLetterSubscription(): void
248+
{
249+
$objectManager = Bootstrap::getObjectManager();
250+
/** @var \Magento\Customer\Api\Data\CustomerInterfaceFactory $customerFactory */
251+
$customerFactory = $objectManager->get(\Magento\Customer\Api\Data\CustomerInterfaceFactory::class);
252+
$customerDataObject = $customerFactory->create()
253+
->setFirstname('John')
254+
->setLastname('Doe')
255+
->setEmail('customer@example.com');
256+
$extensionAttributes = $customerDataObject->getExtensionAttributes();
257+
$extensionAttributes->setIsSubscribed(true);
258+
$customerDataObject->setExtensionAttributes($extensionAttributes);
259+
$this->accountManagement->createAccount($customerDataObject, '123123qW');
260+
$message = $this->transportBuilderMock->getSentMessage();
261+
262+
$this->assertNotNull($message);
263+
$this->assertEquals('Welcome to Main Website Store', $message->getSubject());
264+
$this->assertStringContainsString(
265+
'John',
266+
$message->getBody()->getParts()[0]->getRawContent()
267+
);
268+
$this->assertStringContainsString(
269+
'customer@example.com',
270+
$message->getBody()->getParts()[0]->getRawContent()
271+
);
272+
273+
/** @var \Magento\Newsletter\Model\Subscriber $subscriber */
274+
$subscriber = $objectManager->create(\Magento\Newsletter\Model\Subscriber::class);
275+
$subscriber->loadByEmail('customer@example.com');
276+
$this->assertTrue($subscriber->isSubscribed());
277+
278+
$this->transportBuilderMock->setTemplateIdentifier(
279+
'newsletter_subscription_confirm_email_template'
280+
)->setTemplateVars([
281+
'subscriber_data' => [
282+
'confirmation_link' => $subscriber->getConfirmationLink(),
283+
],
284+
])->setTemplateOptions([
285+
'area' => \Magento\Framework\App\Area::AREA_FRONTEND,
286+
'store' => \Magento\Store\Model\Store::DEFAULT_STORE_ID
287+
])
288+
->addTo('customer@example.com')
289+
->getTransport();
290+
291+
$message = $this->transportBuilderMock->getSentMessage();
292+
293+
$this->assertNotNull($message);
294+
$this->assertStringContainsString(
295+
$subscriber->getConfirmationLink(),
296+
$message->getBody()->getParts()[0]->getRawContent()
297+
);
298+
$this->assertEquals('Newsletter subscription confirmation', $message->getSubject());
299+
}
226300
}
Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
namespace Magento\Store\Model;
9+
10+
use Magento\Customer\Test\Fixture\Customer;
11+
use Magento\Framework\App\Area;
12+
use Magento\Framework\Exception\LocalizedException;
13+
use Magento\Framework\ObjectManagerInterface;
14+
use Magento\Newsletter\Model\Subscriber;
15+
use Magento\Store\Test\Fixture\Group as StoreGroupFixture;
16+
use Magento\Store\Test\Fixture\Store as StoreFixture;
17+
use Magento\Store\Test\Fixture\Website as WebsiteFixture;
18+
use Magento\TestFramework\Fixture\Config as ConfigFixture;
19+
use Magento\TestFramework\Fixture\DataFixture;
20+
use Magento\TestFramework\Fixture\DataFixtureStorage;
21+
use Magento\TestFramework\Fixture\DataFixtureStorageManager;
22+
use Magento\TestFramework\Fixture\DbIsolation;
23+
use Magento\TestFramework\Helper\Bootstrap;
24+
use Magento\TestFramework\Mail\Template\TransportBuilderMock;
25+
26+
/**
27+
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
28+
* phpcs:disable Magento2.Security.Superglobal
29+
*/
30+
class MultiStoreTest extends \PHPUnit\Framework\TestCase
31+
{
32+
/**
33+
* @var ObjectManagerInterface
34+
*/
35+
private $objectManager;
36+
37+
/**
38+
* @var DataFixtureStorage
39+
*/
40+
private $fixtures;
41+
42+
/**
43+
* @inheridoc
44+
* @throws LocalizedException
45+
*/
46+
protected function setUp(): void
47+
{
48+
parent::setUp();
49+
50+
$this->objectManager = Bootstrap::getObjectManager();
51+
$this->fixtures = $this->objectManager->get(DataFixtureStorageManager::class)->getStorage();
52+
}
53+
54+
/**
55+
* @return void
56+
* @throws LocalizedException
57+
* @throws \Magento\Framework\Exception\MailException
58+
*/
59+
#[
60+
DbIsolation(false),
61+
ConfigFixture('system/smtp/transport', 'smtp', 'store'),
62+
DataFixture(WebsiteFixture::class, as: 'website2'),
63+
DataFixture(StoreGroupFixture::class, ['website_id' => '$website2.id$'], 'store_group2'),
64+
DataFixture(StoreFixture::class, ['store_group_id' => '$store_group2.id$'], 'store2'),
65+
DataFixture(
66+
Customer::class,
67+
[
68+
'store_id' => '$store2.id$',
69+
'website_id' => '$website2.id$',
70+
'addresses' => [[]]
71+
],
72+
as: 'customer1'
73+
),
74+
DataFixture(WebsiteFixture::class, as: 'website3'),
75+
DataFixture(StoreGroupFixture::class, ['website_id' => '$website3.id$'], 'store_group3'),
76+
DataFixture(StoreFixture::class, ['store_group_id' => '$store_group3.id$'], 'store3'),
77+
DataFixture(
78+
Customer::class,
79+
[
80+
'store_id' => '$store3.id$',
81+
'website_id' => '$website3.id$',
82+
'addresses' => [[]]
83+
],
84+
as: 'customer2'
85+
),
86+
]
87+
public function testStoreSpecificEmailInFromHeader() :void
88+
{
89+
$customerOne = $this->fixtures->get('customer1');
90+
$storeOne = $this->fixtures->get('store2');
91+
$customerOneData = [
92+
'email' => $customerOne->getDataByKey('email'),
93+
'storeId' => $storeOne->getData('store_id'),
94+
'storeEmail' => 'store_one@example.com'
95+
];
96+
97+
$this->subscribeNewsLetterAndAssertFromHeader($customerOneData);
98+
99+
$customerTwo = $this->fixtures->get('customer2');
100+
$storeTwo = $this->fixtures->get('store3');
101+
$customerTwoData = [
102+
'email' => $customerTwo->getDataByKey('email'),
103+
'storeId' => $storeTwo->getData('store_id'),
104+
'storeEmail' => 'store_two@example.com'
105+
];
106+
107+
$this->subscribeNewsLetterAndAssertFromHeader($customerTwoData);
108+
}
109+
110+
/**
111+
* @param $customerData
112+
* @return void
113+
* @throws LocalizedException
114+
* @throws \Magento\Framework\Exception\MailException
115+
*/
116+
private function subscribeNewsLetterAndAssertFromHeader(
117+
$customerData
118+
) :void {
119+
/** @var Subscriber $subscriber */
120+
$subscriber = $this->objectManager->create(Subscriber::class);
121+
$subscriber->subscribe($customerData['email']);
122+
123+
/** @var TransportBuilderMock $transportBuilderMock */
124+
$transportBuilderMock = $this->objectManager->get(TransportBuilderMock::class);
125+
$transportBuilderMock->setTemplateIdentifier(
126+
'customer_password_reset_password_template'
127+
)->setTemplateVars([
128+
'subscriber_data' => [
129+
'confirmation_link' => $subscriber->getConfirmationLink(),
130+
],
131+
])->setTemplateOptions([
132+
'area' => Area::AREA_FRONTEND,
133+
'store' => (int) $customerData['storeId']
134+
])
135+
->setFromByScope(
136+
[
137+
'email' => $customerData['storeEmail'],
138+
'name' => 'Store Email Name'
139+
],
140+
(int) $customerData['storeId']
141+
)
142+
->addTo($customerData['email'])
143+
->getTransport();
144+
145+
$headers = $transportBuilderMock->getSentMessage()->getHeaders();
146+
147+
$this->assertNotNull($transportBuilderMock->getSentMessage());
148+
$this->assertStringContainsString($customerData['storeEmail'], $headers['From']);
149+
}
150+
}

0 commit comments

Comments
 (0)