ProgressHelperTest.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. <?php
  2. namespace Tools\Test\TestCase\View\Helper;
  3. use Cake\View\View;
  4. use Shim\TestSuite\TestCase;
  5. use Tools\I18n\Number;
  6. use Tools\View\Helper\ProgressHelper;
  7. class ProgressHelperTest extends TestCase {
  8. /**
  9. * @var \Cake\View\View
  10. */
  11. protected $View;
  12. /**
  13. * @var \Tools\View\Helper\ProgressHelper
  14. */
  15. protected $progressHelper;
  16. /**
  17. * @var string
  18. */
  19. protected $locale;
  20. /**
  21. * @return void
  22. */
  23. public function setUp(): void {
  24. parent::setUp();
  25. $this->locale = ini_get('intl.default_locale');
  26. ini_set('intl.default_locale', 'en-US');
  27. Number::config('en_EN');
  28. $this->View = new View(null);
  29. $this->progressHelper = new ProgressHelper($this->View);
  30. }
  31. /**
  32. * @return void
  33. */
  34. public function tearDown(): void {
  35. parent::tearDown();
  36. //ini_set('intl.default_locale', $this->locale);
  37. }
  38. /**
  39. * @return void
  40. */
  41. public function testDraw() {
  42. $result = $this->progressHelper->draw(0.00, 3);
  43. $this->assertSame('░░░', $result);
  44. $result = $this->progressHelper->draw(1.00, 3);
  45. $this->assertSame('███', $result);
  46. $result = $this->progressHelper->draw(0.50, 3);
  47. $this->assertSame('██░', $result);
  48. $result = $this->progressHelper->draw(0.30, 5);
  49. $this->assertSame('██░░░', $result);
  50. $result = $this->progressHelper->draw(0.01, 3);
  51. $this->assertSame('█░░', $result);
  52. $result = $this->progressHelper->draw(0.99, 3);
  53. $this->assertSame('██░', $result);
  54. }
  55. /**
  56. * @return void
  57. */
  58. public function testProgressBar() {
  59. $result = $this->progressHelper->progressBar(0.001, 3);
  60. $this->assertSame('<span title="1%">█░░</span>', $result);
  61. $result = $this->progressHelper->progressBar(0.999, 3);
  62. $this->assertSame('<span title="99%">██░</span>', $result);
  63. $result = $this->progressHelper->progressBar(0.000, 3);
  64. $this->assertSame('<span title="0%">░░░</span>', $result);
  65. $result = $this->progressHelper->progressBar(1.000, 3);
  66. $this->assertSame('<span title="100%">███</span>', $result);
  67. }
  68. /**
  69. * @return void
  70. */
  71. public function testCalculatePercentage() {
  72. $result = $this->progressHelper->calculatePercentage(0, 0);
  73. $this->assertSame(0.00, $result);
  74. $result = $this->progressHelper->calculatePercentage(0.0, 0.0);
  75. $this->assertSame(0.00, $result);
  76. $result = $this->progressHelper->calculatePercentage(997, 1);
  77. $this->assertSame(0.01, $result);
  78. $result = $this->progressHelper->calculatePercentage(997, 996);
  79. $this->assertSame(0.99, $result);
  80. $result = $this->progressHelper->calculatePercentage(997, 997);
  81. $this->assertSame(1.00, $result);
  82. }
  83. /**
  84. * @return void
  85. */
  86. public function testRoundPercentage() {
  87. $result = $this->progressHelper->roundPercentage(0.001);
  88. $this->assertSame(0.01, $result);
  89. $result = $this->progressHelper->roundPercentage(0.999);
  90. $this->assertSame(0.99, $result);
  91. }
  92. }