/** * Check if logs are writeable * @group Installation */ public function testLogDir() { info("\tTesting log write-access for web user\n"); $root = AgaviConfig::get("core.root_dir"); $logDir = $root . "/log"; $wwwUser = IcingaWebTestTool::getProperty('www-user'); $wwwGroup = IcingaWebTestTool::getProperty('www-group'); $command = "touch " . $logDir . "/testfile.txt"; if (!function_exists('posix_getuid') || posix_getuid() == 0) { $command = "su " . $wwwUser . " -c '" . $command . "'"; } exec($command); if (!file_exists($logDir . "/testfile.txt")) { error("Web user " . $wwwUser . " couldn't create logfile in " . $logDir . "Please check that the either the user " . $wwwUser . " or the group " . $wwwGroup . " has " . "write access to this folder - otherwise icinga-web won't work\n"); $this->fail("Couldn't write log files"); } else { success("\tLog-directory is writeable for wwwGroup!\n"); } }
/** * @depends testShowLoginMask * @group Interface */ public function testCorrectLogin() { info("\tTesting correct login\n"); $root = AgaviConfig::get("core.root_dir"); $params = new AgaviRequestDataHolder(); $params->setParameters(array("dologin" => 1, "password" => IcingaWebTestTool::getProperty('testLogin-pass'), "username" => IcingaWebTestTool::getProperty('testLogin-name'))); $ctx = AgaviContext::getInstance('web'); $container = $ctx->getController()->createExecutionContainer("AppKit", "Login.AjaxLogin", $params, "json", "write"); $json = null; try { $result = $container->execute(); $json = json_decode($result->getContent(), true); if (!$json) { throw new Exception("Invalid result given " . $result->getContent()); } } catch (Exception $e) { $this->fail("Login threw an exception " . $e->getMessage()); } if (!$json["success"]) { $this->fail("Login failed with test credentials. Please check the credentials in test.properties"); } success("\tLogin successful\n"); }