class AcceptHeaderTest

Hierarchy

  • class \Symfony\Component\HttpFoundation\Tests\AcceptHeaderTest extends \Symfony\Component\HttpFoundation\Tests\PHPUnit_Framework_TestCase

Expanded class hierarchy of AcceptHeaderTest

File

drupal/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/AcceptHeaderTest.php, line 17

Namespace

Symfony\Component\HttpFoundation\Tests
View source
class AcceptHeaderTest extends \PHPUnit_Framework_TestCase {
  public function testFirst() {
    $header = AcceptHeader::fromString('text/plain; q=0.5, text/html, text/x-dvi; q=0.8, text/x-c');
    $this
      ->assertSame('text/html', $header
      ->first()
      ->getValue());
  }

  /**
   * @dataProvider provideFromStringData
   */
  public function testFromString($string, array $items) {
    $header = AcceptHeader::fromString($string);
    $parsed = array_values($header
      ->all());

    // reset index since the fixtures don't have them set
    foreach ($parsed as $item) {
      $item
        ->setIndex(0);
    }
    $this
      ->assertEquals($items, $parsed);
  }
  public function provideFromStringData() {
    return array(
      array(
        '',
        array(),
      ),
      array(
        'gzip',
        array(
          new AcceptHeaderItem('gzip'),
        ),
      ),
      array(
        'gzip,deflate,sdch',
        array(
          new AcceptHeaderItem('gzip'),
          new AcceptHeaderItem('deflate'),
          new AcceptHeaderItem('sdch'),
        ),
      ),
      array(
        "gzip, deflate\t,sdch",
        array(
          new AcceptHeaderItem('gzip'),
          new AcceptHeaderItem('deflate'),
          new AcceptHeaderItem('sdch'),
        ),
      ),
      array(
        '"this;should,not=matter"',
        array(
          new AcceptHeaderItem('this;should,not=matter'),
        ),
      ),
    );
  }

  /**
   * @dataProvider provideToStringData
   */
  public function testToString(array $items, $string) {
    $header = new AcceptHeader($items);
    $this
      ->assertEquals($string, (string) $header);
  }
  public function provideToStringData() {
    return array(
      array(
        array(),
        '',
      ),
      array(
        array(
          new AcceptHeaderItem('gzip'),
        ),
        'gzip',
      ),
      array(
        array(
          new AcceptHeaderItem('gzip'),
          new AcceptHeaderItem('deflate'),
          new AcceptHeaderItem('sdch'),
        ),
        'gzip,deflate,sdch',
      ),
      array(
        array(
          new AcceptHeaderItem('this;should,not=matter'),
        ),
        'this;should,not=matter',
      ),
    );
  }

  /**
   * @dataProvider provideFilterData
   */
  public function testFilter($string, $filter, array $values) {
    $header = AcceptHeader::fromString($string)
      ->filter($filter);
    $this
      ->assertEquals($values, array_keys($header
      ->all()));
  }
  public function provideFilterData() {
    return array(
      array(
        'fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4',
        '/fr.*/',
        array(
          'fr-FR',
          'fr',
        ),
      ),
    );
  }

  /**
   * @dataProvider provideSortingData
   */
  public function testSorting($string, array $values) {
    $header = AcceptHeader::fromString($string);
    $this
      ->assertEquals($values, array_keys($header
      ->all()));
  }
  public function provideSortingData() {
    return array(
      'quality has priority' => array(
        '*;q=0.3,ISO-8859-1,utf-8;q=0.7',
        array(
          'ISO-8859-1',
          'utf-8',
          '*',
        ),
      ),
      'order matters when q is equal' => array(
        '*;q=0.3,ISO-8859-1;q=0.7,utf-8;q=0.7',
        array(
          'ISO-8859-1',
          'utf-8',
          '*',
        ),
      ),
      'order matters when q is equal2' => array(
        '*;q=0.3,utf-8;q=0.7,ISO-8859-1;q=0.7',
        array(
          'utf-8',
          'ISO-8859-1',
          '*',
        ),
      ),
    );
  }

}

Members

Namesort descending Modifiers Type Description Overrides
AcceptHeaderTest::provideFilterData public function
AcceptHeaderTest::provideFromStringData public function
AcceptHeaderTest::provideSortingData public function
AcceptHeaderTest::provideToStringData public function
AcceptHeaderTest::testFilter public function @dataProvider provideFilterData
AcceptHeaderTest::testFirst public function
AcceptHeaderTest::testFromString public function @dataProvider provideFromStringData
AcceptHeaderTest::testSorting public function @dataProvider provideSortingData
AcceptHeaderTest::testToString public function @dataProvider provideToStringData