Linux SRV-16 6.18.44-paas #1 SMP PREEMPT_DYNAMIC Thu Aug 13 10:08:12 UTC 2026 x86_64
/
srv
/
data
/
web
/
vhosts
/
www.humitest.fr
/
htdocs
/
vendor
/
facebook
/
webdriver
/
lib
/
/srv/data/web/vhosts/www.humitest.fr/htdocs/vendor/facebook/webdriver/lib/Cookie.php
<?php // Copyright 2004-present Facebook. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. namespace Facebook\WebDriver; use InvalidArgumentException; /** * Set values of an cookie. * * Implements ArrayAccess for backwards compatibility. * * @see https://w3c.github.io/webdriver/webdriver-spec.html#cookies */ class Cookie implements \ArrayAccess { /** @var array */ protected $cookie = [ 'name' => null, 'value' => null, 'path' => null, 'domain' => null, 'expiry' => null, 'secure' => null, 'httpOnly' => null, ]; /** * @param string $name The name of the cookie; may not be null or an empty string. * @param string $value The cookie value; may not be null. */ public function __construct($name, $value) { $this->validateCookieName($name); $this->validateCookieValue($value); $this->cookie['name'] = $name; $this->cookie['value'] = $value; } /** * @param array $cookieArray * @return Cookie */ public static function createFromArray(array $cookieArray) { $cookie = new self($cookieArray['name'], $cookieArray['value']); if (isset($cookieArray['path'])) { $cookie->setPath($cookieArray['path']); } if (isset($cookieArray['domain'])) { $cookie->setDomain($cookieArray['domain']); } if (isset($cookieArray['expiry'])) { $cookie->setExpiry($cookieArray['expiry']); } if (isset($cookieArray['secure'])) { $cookie->setSecure($cookieArray['secure']); } if (isset($cookieArray['httpOnly'])) { $cookie->setHttpOnly($cookieArray['httpOnly']); } return $cookie; } /** * @return string */ public function getName() { return $this->cookie['name']; } /** * @return string */ public function getValue() { return $this->cookie['value']; } /** * The path the cookie is visible to. Defaults to "/" if omitted. * * @param string $path */ public function setPath($path) { $this->cookie['path'] = $path; } /** * @return string|null */ public function getPath() { return $this->cookie['path']; } /** * The domain the cookie is visible to. Defaults to the current browsing context's document's URL domain if omitted. * * @param string $domain */ public function setDomain($domain) { if (mb_strpos($domain, ':') !== false) { throw new InvalidArgumentException(sprintf('Cookie domain "%s" should not contain a port', $domain)); } $this->cookie['domain'] = $domain; } /** * @return string|null */ public function getDomain() { return $this->cookie['domain']; } /** * The cookie's expiration date, specified in seconds since Unix Epoch. * * @param int $expiry */ public function setExpiry($expiry) { $this->cookie['expiry'] = (int) $expiry; } /** * @return int|null */ public function getExpiry() { return $this->cookie['expiry']; } /** * Whether this cookie requires a secure connection (https). Defaults to false if omitted. * * @param bool $secure */ public function setSecure($secure) { $this->cookie['secure'] = $secure; } /** * @return bool|null */ public function isSecure() { return $this->cookie['secure']; } /** * Whether the cookie is an HTTP only cookie. Defaults to false if omitted. * * @param bool $httpOnly */ public function setHttpOnly($httpOnly) { $this->cookie['httpOnly'] = $httpOnly; } /** * @return bool|null */ public function isHttpOnly() { return $this->cookie['httpOnly']; } /** * @return array */ public function toArray() { return $this->cookie; } public function offsetExists($offset) { return isset($this->cookie[$offset]); } public function offsetGet($offset) { return $this->cookie[$offset]; } public function offsetSet($offset, $value) { $this->cookie[$offset] = $value; } public function offsetUnset($offset) { unset($this->cookie[$offset]); } /** * @param string $name */ protected function validateCookieName($name) { if ($name === null || $name === '') { throw new InvalidArgumentException('Cookie name should be non-empty'); } if (mb_strpos($name, ';') !== false) { throw new InvalidArgumentException('Cookie name should not contain a ";"'); } } /** * @param string $value */ protected function validateCookieValue($value) { if ($value === null) { throw new InvalidArgumentException('Cookie value is required when setting a cookie'); } } }