Version 1
[yaffs-website] / vendor / jcalderonzumba / gastonjs / tests / unit / BrowserHeadersTest.php
diff --git a/vendor/jcalderonzumba/gastonjs/tests/unit/BrowserHeadersTest.php b/vendor/jcalderonzumba/gastonjs/tests/unit/BrowserHeadersTest.php
new file mode 100644 (file)
index 0000000..0225cb1
--- /dev/null
@@ -0,0 +1,81 @@
+<?php
+
+namespace Zumba\GastonJS\Tests;
+
+/**
+ * Class BrowserHeadersTest
+ * @package Zumba\GastonJS\Tests
+ */
+class BrowserHeadersTest extends BrowserCommandsTestCase {
+
+  public function testHeadersEmpty() {
+    $this->assertCount(0, $this->browser->getHeaders());
+  }
+
+  public function testHeadersNotEmpty() {
+    $this->visitUrl($this->getTestPageBaseUrl() . "/static/basic.html");
+    $responseHeaders = $this->browser->responseHeaders();
+    $this->assertTrue(is_array($responseHeaders));
+    $this->assertCount(4, $responseHeaders);
+  }
+
+  public function testHeaderAddPermanent() {
+    $this->assertTrue($this->browser->addHeader(array("X-Permanent-Test" => "x_permanent_value"), true));
+    $this->visitUrl($this->getTestPageBaseUrl() . "/check-request-headers/");
+    $requestResponse = json_decode(strip_tags($this->browser->getBody()), true);
+    $this->assertEquals("x_permanent_value", $requestResponse["x-permanent-test"][0]);
+
+    //After reload, the header should still be there
+    $this->visitUrl($this->getTestPageBaseUrl() . "/check-request-headers/");
+    $requestResponse = json_decode(strip_tags($this->browser->getBody()), true);
+    $this->assertEquals("x_permanent_value", $requestResponse["x-permanent-test"][0]);
+  }
+
+  public function testHeaderAddTemp() {
+    $this->assertTrue($this->browser->addHeader(array("X-Permanent-Test" => "x_permanent_value")));
+    $this->visitUrl($this->getTestPageBaseUrl() . "/check-request-headers/");
+    $requestResponse = json_decode(strip_tags($this->browser->getBody()), true);
+    $this->assertEquals("x_permanent_value", $requestResponse["x-permanent-test"][0]);
+
+    //After the visit the header should not be present in the request
+    $this->visitUrl($this->getTestPageBaseUrl() . "/check-request-headers/");
+    $requestResponse = json_decode(strip_tags($this->browser->getBody()), true);
+    $this->assertArrayNotHasKey("x-permanent-test", $requestResponse);
+  }
+
+  public function testAddHeaders() {
+    $customHeaders = array("X-Header-One" => "one", "X-Header-Two" => "two");
+    $this->assertTrue($this->browser->addHeaders($customHeaders));
+    $this->visitUrl($this->getTestPageBaseUrl() . "/check-request-headers/");
+    $requestResponse = json_decode(strip_tags($this->browser->getBody()), true);
+    $this->assertArrayHasKey("x-header-one", $requestResponse);
+    $this->assertArrayHasKey("x-header-two", $requestResponse);
+
+    //now we will issue another header and the previous should be there too
+    $this->assertTrue($this->browser->addHeaders(array("X-Header-Three" => "three")));
+    $this->visitUrl($this->getTestPageBaseUrl() . "/check-request-headers/");
+    $requestResponse = json_decode(strip_tags($this->browser->getBody()), true);
+    $this->assertArrayHasKey("x-header-one", $requestResponse);
+    $this->assertArrayHasKey("x-header-two", $requestResponse);
+    $this->assertArrayHasKey("x-header-three", $requestResponse);
+  }
+
+
+  public function testSetHeaders() {
+    $customHeaders = array("X-Header-One" => "one", "X-Header-Two" => "two");
+    $this->assertTrue($this->browser->setHeaders($customHeaders));
+    $this->visitUrl($this->getTestPageBaseUrl() . "/check-request-headers/");
+    $requestResponse = json_decode(strip_tags($this->browser->getBody()), true);
+    $this->assertArrayHasKey("x-header-one", $requestResponse);
+    $this->assertArrayHasKey("x-header-two", $requestResponse);
+
+    //now we will issue another header and the previous should NOT be here
+    $this->assertTrue($this->browser->setHeaders(array("X-Header-Three" => "three")));
+    $this->visitUrl($this->getTestPageBaseUrl() . "/check-request-headers/");
+    $requestResponse = json_decode(strip_tags($this->browser->getBody()), true);
+    $this->assertArrayHasKey("x-header-three", $requestResponse);
+    $this->assertArrayNotHasKey("x-header-one", $requestResponse);
+    $this->assertArrayNotHasKey("x-header-two", $requestResponse);
+  }
+
+}