OnepageTest.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Checkout\Test\Unit\Block;
  7. class OnepageTest extends \PHPUnit\Framework\TestCase
  8. {
  9. /**
  10. * @var \Magento\Checkout\Block\Onepage
  11. */
  12. protected $model;
  13. /**
  14. * @var \PHPUnit_Framework_MockObject_MockObject
  15. */
  16. protected $configProviderMock;
  17. /**
  18. * @var \PHPUnit_Framework_MockObject_MockObject
  19. */
  20. protected $storeManagerMock;
  21. /**
  22. * @var \PHPUnit_Framework_MockObject_MockObject
  23. */
  24. protected $formKeyMock;
  25. /**
  26. * @var \PHPUnit_Framework_MockObject_MockObject
  27. */
  28. protected $layoutProcessorMock;
  29. /**
  30. * @var \PHPUnit_Framework_MockObject_MockObject
  31. */
  32. private $serializerMock;
  33. protected function setUp()
  34. {
  35. $contextMock = $this->createMock(\Magento\Framework\View\Element\Template\Context::class);
  36. $this->formKeyMock = $this->createMock(\Magento\Framework\Data\Form\FormKey::class);
  37. $this->configProviderMock = $this->createMock(\Magento\Checkout\Model\CompositeConfigProvider::class);
  38. $this->storeManagerMock = $this->createMock(\Magento\Store\Model\StoreManagerInterface::class);
  39. $contextMock->expects($this->once())->method('getStoreManager')->willReturn($this->storeManagerMock);
  40. $this->layoutProcessorMock = $this->createMock(
  41. \Magento\Checkout\Block\Checkout\LayoutProcessorInterface::class
  42. );
  43. $this->serializerMock = $this->createMock(\Magento\Framework\Serialize\Serializer\JsonHexTag::class);
  44. $this->model = new \Magento\Checkout\Block\Onepage(
  45. $contextMock,
  46. $this->formKeyMock,
  47. $this->configProviderMock,
  48. [$this->layoutProcessorMock],
  49. [],
  50. $this->serializerMock,
  51. $this->serializerMock
  52. );
  53. }
  54. public function testGetBaseUrl()
  55. {
  56. $baseUrl = 'http://magento.com';
  57. $storeMock = $this->createMock(\Magento\Store\Model\Store::class);
  58. $storeMock->expects($this->once())->method('getBaseUrl')->willReturn($baseUrl);
  59. $this->storeManagerMock->expects($this->once())->method('getStore')->willReturn($storeMock);
  60. $this->assertEquals($baseUrl, $this->model->getBaseUrl());
  61. }
  62. public function testGetCheckoutConfig()
  63. {
  64. $checkoutConfig = ['checkout', 'config'];
  65. $this->configProviderMock->expects($this->once())->method('getConfig')->willReturn($checkoutConfig);
  66. $this->assertEquals($checkoutConfig, $this->model->getCheckoutConfig());
  67. }
  68. public function testGetFormKey()
  69. {
  70. $formKey = 'form_key';
  71. $this->formKeyMock->expects($this->once())->method('getFormKey')->willReturn($formKey);
  72. $this->assertEquals($formKey, $this->model->getFormKey());
  73. }
  74. public function testGetJsLayout()
  75. {
  76. $processedLayout = ['layout' => ['processed' => true]];
  77. $jsonLayout = '{"layout":{"processed":true}}';
  78. $this->layoutProcessorMock->expects($this->once())->method('process')->with([])->willReturn($processedLayout);
  79. $this->serializerMock->expects($this->once())->method('serialize')->willReturn($jsonLayout);
  80. $this->assertEquals($jsonLayout, $this->model->getJsLayout());
  81. }
  82. public function testGetSerializedCheckoutConfig()
  83. {
  84. $checkoutConfig = ['checkout', 'config'];
  85. $this->configProviderMock->expects($this->once())->method('getConfig')->willReturn($checkoutConfig);
  86. $this->serializerMock->expects($this->once())->method('serialize')->willReturn(json_encode($checkoutConfig));
  87. $this->assertEquals(json_encode($checkoutConfig), $this->model->getSerializedCheckoutConfig());
  88. }
  89. }