NewsletterQueueTest.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Newsletter\Controller\Adminhtml;
  7. use Magento\Framework\App\Request\Http as HttpRequest;
  8. /**
  9. * @magentoAppArea adminhtml
  10. */
  11. class NewsletterQueueTest extends \Magento\TestFramework\TestCase\AbstractBackendController
  12. {
  13. /**
  14. * @var \Magento\Newsletter\Model\Template
  15. */
  16. protected $_model;
  17. /**
  18. * @inheritDoc
  19. */
  20. protected function setUp()
  21. {
  22. parent::setUp();
  23. $this->_model = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
  24. \Magento\Newsletter\Model\Template::class
  25. );
  26. }
  27. /**
  28. * @inheritDoc
  29. */
  30. protected function tearDown()
  31. {
  32. /**
  33. * Unset messages
  34. */
  35. \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
  36. \Magento\Backend\Model\Session::class
  37. )->getMessages(
  38. true
  39. );
  40. $this->_model = null;
  41. }
  42. /**
  43. * @magentoDataFixture Magento/Newsletter/_files/newsletter_sample.php
  44. */
  45. public function testSaveActionQueueTemplateAndVerifySuccessMessage()
  46. {
  47. $postForQueue = [
  48. 'sender_email' => 'johndoe_gieee@unknown-domain.com',
  49. 'sender_name' => 'john doe',
  50. 'subject' => 'test subject',
  51. 'text' => 'newsletter text',
  52. ];
  53. $this->getRequest()->setMethod(HttpRequest::METHOD_POST);
  54. $this->getRequest()->setPostValue($postForQueue);
  55. // Loading by code, since ID will vary. template_code is not actually used to load anywhere else.
  56. $this->_model->load('some_unique_code', 'template_code');
  57. // Ensure that template is actually loaded so as to prevent a false positive on saving a *new* template
  58. // instead of existing one.
  59. $this->assertEquals('some_unique_code', $this->_model->getTemplateCode());
  60. $this->getRequest()->setParam('template_id', $this->_model->getId());
  61. $this->dispatch('backend/newsletter/queue/save');
  62. /**
  63. * Check that errors was generated and set to session
  64. */
  65. $this->assertSessionMessages($this->isEmpty(), \Magento\Framework\Message\MessageInterface::TYPE_ERROR);
  66. /**
  67. * Check that success message is set
  68. */
  69. $this->assertSessionMessages(
  70. $this->equalTo(['You saved the newsletter queue.']),
  71. \Magento\Framework\Message\MessageInterface::TYPE_SUCCESS
  72. );
  73. }
  74. }