LinkTest.php 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  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\Cart;
  7. class LinkTest extends \PHPUnit\Framework\TestCase
  8. {
  9. /**
  10. * @var \Magento\Framework\TestFramework\Unit\Helper\ObjectManager
  11. */
  12. protected $_objectManagerHelper;
  13. protected function setUp()
  14. {
  15. $this->_objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
  16. }
  17. public function testGetUrl()
  18. {
  19. $path = 'checkout/cart';
  20. $url = 'http://example.com/';
  21. $urlBuilder = $this->getMockForAbstractClass(\Magento\Framework\UrlInterface::class);
  22. $urlBuilder->expects($this->once())->method('getUrl')->with($path)->will($this->returnValue($url . $path));
  23. $context = $this->_objectManagerHelper->getObject(
  24. \Magento\Framework\View\Element\Template\Context::class,
  25. ['urlBuilder' => $urlBuilder]
  26. );
  27. $link = $this->_objectManagerHelper->getObject(
  28. \Magento\Checkout\Block\Cart\Link::class,
  29. ['context' => $context]
  30. );
  31. $this->assertSame($url . $path, $link->getHref());
  32. }
  33. public function testToHtml()
  34. {
  35. $moduleManager = $this->getMockBuilder(
  36. \Magento\Framework\Module\Manager::class
  37. )->disableOriginalConstructor()->setMethods(
  38. ['isOutputEnabled']
  39. )->getMock();
  40. $helper = $this->getMockBuilder(\Magento\Checkout\Helper\Cart::class)->disableOriginalConstructor()->getMock();
  41. /** @var \Magento\Checkout\Block\Cart\Link $block */
  42. $block = $this->_objectManagerHelper->getObject(
  43. \Magento\Checkout\Block\Cart\Link::class,
  44. ['cartHelper' => $helper, 'moduleManager' => $moduleManager]
  45. );
  46. $moduleManager->expects(
  47. $this->any()
  48. )->method(
  49. 'isOutputEnabled'
  50. )->with(
  51. 'Magento_Checkout'
  52. )->will(
  53. $this->returnValue(false)
  54. );
  55. $this->assertSame('', $block->toHtml());
  56. }
  57. /**
  58. * @dataProvider getLabelDataProvider
  59. */
  60. public function testGetLabel($productCount, $label)
  61. {
  62. $helper = $this->getMockBuilder(
  63. \Magento\Checkout\Helper\Cart::class
  64. )->disableOriginalConstructor()->setMethods(
  65. ['getSummaryCount']
  66. )->getMock();
  67. /** @var \Magento\Checkout\Block\Cart\Link $block */
  68. $block = $this->_objectManagerHelper->getObject(
  69. \Magento\Checkout\Block\Cart\Link::class,
  70. ['cartHelper' => $helper]
  71. );
  72. $helper->expects($this->any())->method('getSummaryCount')->will($this->returnValue($productCount));
  73. $this->assertSame($label, (string)$block->getLabel());
  74. }
  75. /**
  76. * @return array
  77. */
  78. public function getLabelDataProvider()
  79. {
  80. return [[1, 'My Cart (1 item)'], [2, 'My Cart (2 items)'], [0, 'My Cart']];
  81. }
  82. }