You are here

class JsonResponseTest in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/symfony/http-foundation/Tests/JsonResponseTest.php \Symfony\Component\HttpFoundation\Tests\JsonResponseTest

Hierarchy

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

Expanded class hierarchy of JsonResponseTest

File

vendor/symfony/http-foundation/Tests/JsonResponseTest.php, line 16

Namespace

Symfony\Component\HttpFoundation\Tests
View source
class JsonResponseTest extends \PHPUnit_Framework_TestCase {
  public function testConstructorEmptyCreatesJsonObject() {
    $response = new JsonResponse();
    $this
      ->assertSame('{}', $response
      ->getContent());
  }
  public function testConstructorWithArrayCreatesJsonArray() {
    $response = new JsonResponse(array(
      0,
      1,
      2,
      3,
    ));
    $this
      ->assertSame('[0,1,2,3]', $response
      ->getContent());
  }
  public function testConstructorWithAssocArrayCreatesJsonObject() {
    $response = new JsonResponse(array(
      'foo' => 'bar',
    ));
    $this
      ->assertSame('{"foo":"bar"}', $response
      ->getContent());
  }
  public function testConstructorWithSimpleTypes() {
    $response = new JsonResponse('foo');
    $this
      ->assertSame('"foo"', $response
      ->getContent());
    $response = new JsonResponse(0);
    $this
      ->assertSame('0', $response
      ->getContent());
    $response = new JsonResponse(0.1);
    $this
      ->assertSame('0.1', $response
      ->getContent());
    $response = new JsonResponse(true);
    $this
      ->assertSame('true', $response
      ->getContent());
  }
  public function testConstructorWithCustomStatus() {
    $response = new JsonResponse(array(), 202);
    $this
      ->assertSame(202, $response
      ->getStatusCode());
  }
  public function testConstructorAddsContentTypeHeader() {
    $response = new JsonResponse();
    $this
      ->assertSame('application/json', $response->headers
      ->get('Content-Type'));
  }
  public function testConstructorWithCustomHeaders() {
    $response = new JsonResponse(array(), 200, array(
      'ETag' => 'foo',
    ));
    $this
      ->assertSame('application/json', $response->headers
      ->get('Content-Type'));
    $this
      ->assertSame('foo', $response->headers
      ->get('ETag'));
  }
  public function testConstructorWithCustomContentType() {
    $headers = array(
      'Content-Type' => 'application/vnd.acme.blog-v1+json',
    );
    $response = new JsonResponse(array(), 200, $headers);
    $this
      ->assertSame('application/vnd.acme.blog-v1+json', $response->headers
      ->get('Content-Type'));
  }
  public function testCreate() {
    $response = JsonResponse::create(array(
      'foo' => 'bar',
    ), 204);
    $this
      ->assertInstanceOf('Symfony\\Component\\HttpFoundation\\JsonResponse', $response);
    $this
      ->assertEquals('{"foo":"bar"}', $response
      ->getContent());
    $this
      ->assertEquals(204, $response
      ->getStatusCode());
  }
  public function testStaticCreateEmptyJsonObject() {
    $response = JsonResponse::create();
    $this
      ->assertInstanceOf('Symfony\\Component\\HttpFoundation\\JsonResponse', $response);
    $this
      ->assertSame('{}', $response
      ->getContent());
  }
  public function testStaticCreateJsonArray() {
    $response = JsonResponse::create(array(
      0,
      1,
      2,
      3,
    ));
    $this
      ->assertInstanceOf('Symfony\\Component\\HttpFoundation\\JsonResponse', $response);
    $this
      ->assertSame('[0,1,2,3]', $response
      ->getContent());
  }
  public function testStaticCreateJsonObject() {
    $response = JsonResponse::create(array(
      'foo' => 'bar',
    ));
    $this
      ->assertInstanceOf('Symfony\\Component\\HttpFoundation\\JsonResponse', $response);
    $this
      ->assertSame('{"foo":"bar"}', $response
      ->getContent());
  }
  public function testStaticCreateWithSimpleTypes() {
    $response = JsonResponse::create('foo');
    $this
      ->assertInstanceOf('Symfony\\Component\\HttpFoundation\\JsonResponse', $response);
    $this
      ->assertSame('"foo"', $response
      ->getContent());
    $response = JsonResponse::create(0);
    $this
      ->assertInstanceOf('Symfony\\Component\\HttpFoundation\\JsonResponse', $response);
    $this
      ->assertSame('0', $response
      ->getContent());
    $response = JsonResponse::create(0.1);
    $this
      ->assertInstanceOf('Symfony\\Component\\HttpFoundation\\JsonResponse', $response);
    $this
      ->assertSame('0.1', $response
      ->getContent());
    $response = JsonResponse::create(true);
    $this
      ->assertInstanceOf('Symfony\\Component\\HttpFoundation\\JsonResponse', $response);
    $this
      ->assertSame('true', $response
      ->getContent());
  }
  public function testStaticCreateWithCustomStatus() {
    $response = JsonResponse::create(array(), 202);
    $this
      ->assertSame(202, $response
      ->getStatusCode());
  }
  public function testStaticCreateAddsContentTypeHeader() {
    $response = JsonResponse::create();
    $this
      ->assertSame('application/json', $response->headers
      ->get('Content-Type'));
  }
  public function testStaticCreateWithCustomHeaders() {
    $response = JsonResponse::create(array(), 200, array(
      'ETag' => 'foo',
    ));
    $this
      ->assertSame('application/json', $response->headers
      ->get('Content-Type'));
    $this
      ->assertSame('foo', $response->headers
      ->get('ETag'));
  }
  public function testStaticCreateWithCustomContentType() {
    $headers = array(
      'Content-Type' => 'application/vnd.acme.blog-v1+json',
    );
    $response = JsonResponse::create(array(), 200, $headers);
    $this
      ->assertSame('application/vnd.acme.blog-v1+json', $response->headers
      ->get('Content-Type'));
  }
  public function testSetCallback() {
    $response = JsonResponse::create(array(
      'foo' => 'bar',
    ))
      ->setCallback('callback');
    $this
      ->assertEquals('/**/callback({"foo":"bar"});', $response
      ->getContent());
    $this
      ->assertEquals('text/javascript', $response->headers
      ->get('Content-Type'));
  }
  public function testJsonEncodeFlags() {
    $response = new JsonResponse('<>\'&"');
    $this
      ->assertEquals('"\\u003C\\u003E\\u0027\\u0026\\u0022"', $response
      ->getContent());
  }
  public function testGetEncodingOptions() {
    $response = new JsonResponse();
    $this
      ->assertEquals(JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_AMP | JSON_HEX_QUOT, $response
      ->getEncodingOptions());
  }
  public function testSetEncodingOptions() {
    $response = new JsonResponse();
    $response
      ->setData(array(
      array(
        1,
        2,
        3,
      ),
    ));
    $this
      ->assertEquals('[[1,2,3]]', $response
      ->getContent());
    $response
      ->setEncodingOptions(JSON_FORCE_OBJECT);
    $this
      ->assertEquals('{"0":{"0":1,"1":2,"2":3}}', $response
      ->getContent());
  }

  /**
   * @expectedException \InvalidArgumentException
   */
  public function testSetCallbackInvalidIdentifier() {
    $response = new JsonResponse('foo');
    $response
      ->setCallback('+invalid');
  }

  /**
   * @expectedException \InvalidArgumentException
   */
  public function testSetContent() {
    JsonResponse::create("");
  }

  /**
   * @expectedException \Exception
   * @expectedExceptionMessage This error is expected
   */
  public function testSetContentJsonSerializeError() {
    if (!interface_exists('JsonSerializable')) {
      $this
        ->markTestSkipped('Interface JsonSerializable is available in PHP 5.4+');
    }
    $serializable = new JsonSerializableObject();
    JsonResponse::create($serializable);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
JsonResponseTest::testConstructorAddsContentTypeHeader public function
JsonResponseTest::testConstructorEmptyCreatesJsonObject public function
JsonResponseTest::testConstructorWithArrayCreatesJsonArray public function
JsonResponseTest::testConstructorWithAssocArrayCreatesJsonObject public function
JsonResponseTest::testConstructorWithCustomContentType public function
JsonResponseTest::testConstructorWithCustomHeaders public function
JsonResponseTest::testConstructorWithCustomStatus public function
JsonResponseTest::testConstructorWithSimpleTypes public function
JsonResponseTest::testCreate public function
JsonResponseTest::testGetEncodingOptions public function
JsonResponseTest::testJsonEncodeFlags public function
JsonResponseTest::testSetCallback public function
JsonResponseTest::testSetCallbackInvalidIdentifier public function @expectedException \InvalidArgumentException
JsonResponseTest::testSetContent public function @expectedException \InvalidArgumentException
JsonResponseTest::testSetContentJsonSerializeError public function @expectedException \Exception @expectedExceptionMessage This error is expected
JsonResponseTest::testSetEncodingOptions public function
JsonResponseTest::testStaticCreateAddsContentTypeHeader public function
JsonResponseTest::testStaticCreateEmptyJsonObject public function
JsonResponseTest::testStaticCreateJsonArray public function
JsonResponseTest::testStaticCreateJsonObject public function
JsonResponseTest::testStaticCreateWithCustomContentType public function
JsonResponseTest::testStaticCreateWithCustomHeaders public function
JsonResponseTest::testStaticCreateWithCustomStatus public function
JsonResponseTest::testStaticCreateWithSimpleTypes public function