public function _before(\Codeception\TestCase $test) { if (!$this->client) { if (!strpos($this->config['url'], '://')) { // not valid url foreach ($this->getModules() as $module) { if ($module instanceof \Codeception\Util\Framework) { $this->client = $module->client; $this->is_functional = true; break; } } } else { if (!$this->hasModule('PhpBrowser')) { throw new ModuleConfigException(__CLASS__, "For XMLRPC testing via HTTP please enable PhpBrowser module"); } $this->client = $this->getModule('PhpBrowser')->session->getDriver()->getClient(); } if (!$this->client) { throw new ModuleConfigException(__CLASS__, "Client for XMLRPC requests not initialized.\nProvide either PhpBrowser module, or a framework module which shares FrameworkInterface"); } } $this->headers = array(); $this->params = array(); $this->response = ''; $this->client->setServerParameters(array()); }
public function _before(\Codeception\TestCase $test) { if (!$this->client) { if (!strpos($this->config['url'], '://')) { // not valid url foreach ($this->getModules() as $module) { if ($module instanceof \Codeception\Lib\Framework) { $this->client = $module->client; $this->isFunctional = true; break; } } } else { if (!$this->hasModule('PhpBrowser')) { throw new ModuleConfigException(__CLASS__, "For REST testing via HTTP please enable PhpBrowser module"); } $this->client = $this->getModule('PhpBrowser')->client; } if (!$this->client) { throw new ModuleConfigException(__CLASS__, "Client for REST requests not initialized.\nProvide either PhpBrowser module, or a framework module which shares FrameworkInterface"); } } $this->headers = array(); $this->params = array(); $this->response = ""; $this->client->setServerParameters(array()); if ($this->config['xdebug_remote'] && function_exists('xdebug_is_enabled') && xdebug_is_enabled() && ini_get('xdebug.remote_enable') && !$this->isFunctional) { $cookie = new Cookie('XDEBUG_SESSION', $this->config['xdebug_remote'], null, '/'); $this->client->getCookieJar()->set($cookie); } }
protected function resetVariables() { $this->headers = array(); $this->params = array(); $this->response = ""; if ($this->client) { $this->client->setServerParameters(array()); } }
public function testIndex() { $this->client = static::createClient(); $this->client->setServerParameters(['CONTENT_TYPE' => 'application/json', 'HTTP_HOST' => 'localhost:8000']); // create user $userName = md5(microtime()); $registration = $this->makeRequest('/user/create', ["user" => ["name" => $userName]]); $this->assertEquals($registration->getMessage(), 'Ok'); $userId = $registration->getData()->id; // try to create duplicate $registration = $this->makeRequest('/user/create', ["user" => ["name" => $userName]]); $this->assertEquals($registration->getMessage(), 'User already exists'); // create opponents for ($i = 0; $i <= 10; $i++) { $registration = $this->makeRequest('/user/create', ["user" => ["name" => md5(microtime() + $i)]]); $this->assertEquals($registration->getMessage(), 'Ok'); } // login $login = $this->makeRequest('/user/login', ["token" => $userName]); $this->assertEquals($login->getMessage(), 'Ok'); $this->assertEquals($login->getData()->id, $userId); // opponent $opponents = $this->makeRequest('/user/opponents', ["token" => $userName]); $this->assertEquals($opponents->getMessage(), 'Ok'); $opponentId = $opponents->getData()[0]->id; $opponentName = $opponents->getData()[0]->name; // invite $response = $this->makeRequest('/combat/invite', ["token" => $userName, "id" => $opponentId]); $this->assertEquals($response->getMessage(), 'Ok'); $combatId = $response->getData()->combatId; $attackFirst = $response->getData()->youFirst; // attack $response = $this->makeRequest('/combat/attack', ["token" => $attackFirst ? $opponentName : $userName, "combatId" => $combatId, "skillId" => 2]); $this->assertEquals($response->getMessage(), 'It is not your turn'); // attack $response = $this->makeRequest('/combat/attack', ["token" => $attackFirst ? $userName : $opponentName, "combatId" => $combatId, "skillId" => 2]); $this->assertEquals($response->getMessage(), 'Ok'); // attack $response = $this->makeRequest('/combat/attack', ["token" => $attackFirst ? $opponentName : $userName, "combatId" => $combatId, "skillId" => 2]); $this->assertEquals($response->getMessage(), 'This skill already used'); // collect $response = $this->makeRequest('/combat/collect', ["token" => $attackFirst ? $opponentName : $userName, "combatId" => $combatId]); $this->assertEquals($response->getMessage(), 'Combat is not finished'); // attack $response = $this->makeRequest('/combat/attack', ["token" => $attackFirst ? $opponentName : $userName, "combatId" => $combatId, "skillId" => 1]); $this->assertEquals($response->getMessage(), 'Ok'); // attack $response = $this->makeRequest('/combat/attack', ["token" => $attackFirst ? $userName : $opponentName, "combatId" => $combatId, "skillId" => 3]); $this->assertEquals($response->getMessage(), 'Ok'); // attack $response = $this->makeRequest('/combat/attack', ["token" => $attackFirst ? $opponentName : $userName, "combatId" => $combatId, "skillId" => 1]); $this->assertEquals($response->getMessage(), 'Combat was finished'); // collect $response = $this->makeRequest('/combat/collect', ["token" => $opponentName, "combatId" => $combatId]); // collect $response = $this->makeRequest('/combat/collect', ["token" => $userName, "combatId" => $combatId]); }
protected function resetVariables() { $this->params = []; $this->response = ""; $this->connectionModule->headers = []; if ($this->client) { $this->client->setServerParameters([]); } }
public function _before(\Codeception\TestCase $test) { if (!$this->client) { if (!strpos($this->config['url'], '://')) { // not valid url foreach ($this->getModules() as $module) { if ($module instanceof \Codeception\Util\Framework) { $this->client = $module->client; $this->is_functional = true; break; } } } else { if (!$this->hasModule('PhpBrowser')) { throw new ModuleConfigException(__CLASS__, "For REST testing via HTTP please enable PhpBrowser module"); } $this->client = $this->getModule('PhpBrowser')->session->getDriver()->getClient(); } if (!$this->client) { throw new ModuleConfigException(__CLASS__, "Client for REST requests not initialized.\nProvide either PhpBrowser module, or a framework module which shares FrameworkInterface"); } } $this->headers = array(); $this->params = array(); $this->response = ""; $this->client->setServerParameters(array()); $timeout = $this->config['timeout']; if ($this->config['xdebug_remote'] && function_exists('xdebug_is_enabled') && xdebug_is_enabled() && ini_get('xdebug.remote_enable')) { $cookie = new Cookie('XDEBUG_SESSION', $this->config['xdebug_remote'], null, '/'); $this->client->getCookieJar()->set($cookie); // timeout is disabled, so we can debug gently :) $timeout = 0; } if (method_exists($this->client, 'getClient')) { $clientConfig = $this->client->getClient()->getConfig(); $curlOptions = $clientConfig->get('curl.options'); $curlOptions[CURLOPT_TIMEOUT] = $timeout; $clientConfig->set('curl.options', $curlOptions); } }