/** * @depends icingaDatabaseAccessibleTest::testInsert * @group Database */ public function testRoleAdd() { try { info("Testing actions for group modification\n"); info("\tTesting icinga-web action: Creating groups\n"); $context = AgaviContext::getInstance(); $arguments = new AgaviRequestDataHolder(); $role = $this->roleParams; foreach ($role as $name => $value) { $arguments->setParameter($name, $value); } // insert user $container = $context->getController()->createExecutionContainer("AppKit", "Admin.Groups.Edit", $arguments, "simple", "write"); IcingaWebTestTool::assertInstanceOf("AgaviExecutionContainer", $container, "Couldn't create add-group action"); $result = $container->execute(); $this->assertNotEquals($result->getHttpStatusCode(), "404", "Action for adding groups not found"); // Check if user is really added $result = Doctrine_Core::getTable("NsmRole")->findBy("role_name", $role["role_name"])->getFirst(); IcingaWebTestTool::assertInstanceOf("NsmRole", $result, "No group found, something seemed to go wrong"); success("\tCreating roles suceeded!\n"); self::$idFixture = $result["role_id"]; return true; } catch (Exception $e) { $this->fail("Adding a role failed!" . $e->getMessage()); } }
/** * @depends testLibs * @group Bootstrap **/ public function testBootstrap() { $ctx = AgaviContext::getInstance('testing'); IcingaWebTestTool::assertInstanceOf('AppKitAgaviContext', $ctx, "AgaviContext has wrong instance"); IcingaWebTestTool::assertInstanceOf('AgaviDoctrineDatabase', $ctx->getDatabaseManager()->getDatabase()); IcingaWebTestTool::assertInstanceOf('Doctrine_Manager', $ctx->getDatabaseManager()->getDatabase()->getDoctrineManager()); try { $ctx->getDatabaseManager()->getDatabase()->connect(); } catch (Doctrine_Connection_Exception $e) { $this->fail('No database connection'); } }
public function testUpdateCredentialPermission() { $model = new TestDataStoreModel(); $e = null; try { $model->doUpdate("no data"); } catch (DataStorePermissionException $p) { $e = $p; } IcingaWebTestTool::assertInstanceOf("DataStorePermissionException", $e, "Wrong or no exception thrown on disallowed write"); $this->checkCalls($model, array(false, false, false, false), "disallowed update"); $context = AgaviContext::getInstance(); $context->getUser()->addCredential("testCredential"); $model->doUpdate("no data"); $this->checkCalls($model, array(false, false, true, false), "allowed update"); }
/** * @depends testUserPreferenceAdd * @group Database */ public function testUserPreferenceRemove() { try { $userid = self::$idFixture; info("\tTesting icinga-web action: Remove user preference\n"); $context = AgaviContext::getInstance(); $preferenceData = new AgaviRequestDataHolder(); $preferenceData->setParameters(array("remove" => "true", "isLong" => "false", "upref_key" => "TEST", "upref_val" => "TESTCASE")); $modifyAction = $context->getController()->createExecutionContainer("AppKit", "User.Preferences", $preferenceData, "simple", "write"); IcingaWebTestTool::assertInstanceOf("AgaviExecutionContainer", $modifyAction, "Couldn't create add-preference action"); $result = $modifyAction->execute(); $this->assertNotEquals($result->getHttpStatusCode(), "404", "Action for eediting user preferences not found"); success("\tDeleting preferences suceeded!\n"); return true; } catch (Exception $e) { $this->fail("Removing an user preference failed!" . $e->getMessage()); } }