You are here

BytesTest.php in Drupal 8

Same filename and directory in other branches
  1. 9 core/tests/Drupal/Tests/Component/Utility/BytesTest.php

File

core/tests/Drupal/Tests/Component/Utility/BytesTest.php
View source
<?php

namespace Drupal\Tests\Component\Utility;

use Drupal\Component\Utility\Bytes;
use PHPUnit\Framework\TestCase;

/**
 * Tests bytes size parsing helper methods.
 *
 * @group Utility
 *
 * @coversDefaultClass \Drupal\Component\Utility\Bytes
 */
class BytesTest extends TestCase {

  /**
   * Tests \Drupal\Component\Utility\Bytes::toInt().
   *
   * @param int $size
   *   The value for the size argument for
   *   \Drupal\Component\Utility\Bytes::toInt().
   * @param int $expected_int
   *   The expected return value from
   *   \Drupal\Component\Utility\Bytes::toInt().
   *
   * @dataProvider providerTestToInt
   * @covers ::toInt
   */
  public function testToInt($size, $expected_int) {
    $this
      ->assertEquals($expected_int, Bytes::toInt($size));
  }

  /**
   * Provides data for testToInt.
   *
   * @return array
   *   An array of arrays, each containing the argument for
   *   \Drupal\Component\Utility\Bytes::toInt(): size, and the expected return
   *   value.
   */
  public function providerTestToInt() {
    return [
      [
        '1',
        1,
      ],
      [
        '1 byte',
        1,
      ],
      [
        '1 KB',
        Bytes::KILOBYTE,
      ],
      [
        '1 MB',
        pow(Bytes::KILOBYTE, 2),
      ],
      [
        '1 GB',
        pow(Bytes::KILOBYTE, 3),
      ],
      [
        '1 TB',
        pow(Bytes::KILOBYTE, 4),
      ],
      [
        '1 PB',
        pow(Bytes::KILOBYTE, 5),
      ],
      [
        '1 EB',
        pow(Bytes::KILOBYTE, 6),
      ],
      [
        '1 ZB',
        pow(Bytes::KILOBYTE, 7),
      ],
      [
        '1 YB',
        pow(Bytes::KILOBYTE, 8),
      ],
      [
        '23476892 bytes',
        23476892,
      ],
      // 76 MB.
      [
        '76MRandomStringThatShouldBeIgnoredByParseSize.',
        79691776,
      ],
      // 76.24 GB (with typo).
      [
        '76.24 Giggabyte',
        81862076662,
      ],
      [
        '1.5',
        2,
      ],
      [
        '2.4',
        2,
      ],
      [
        '',
        0,
      ],
    ];
  }

}

Classes

Namesort descending Description
BytesTest Tests bytes size parsing helper methods.