This commit is contained in:
2022-11-25 21:21:30 +01:00
parent 2d6df0d5f0
commit 94deb06f52
132 changed files with 44887 additions and 41368 deletions

View File

@@ -1,4 +1,5 @@
<?php
/** DomFramework - Tests
* @package domframework
* @author Dominique Fournier <dominique@fournier38.fr>
@@ -12,320 +13,396 @@ use Domframework\Authzgroupsoo;
/** Test the Authzgroupsoo.php file */
class AuthzgroupsooTest extends \PHPUnit_Framework_TestCase
{
private $dbconfig = array (
private $dbconfig = array (
"dsn" => "sqlite:/tmp/databaseAuthzGroupsoo.db",
"username" => null,
"password" => null,
"driver_options" => null,
"tableprefix" => "",
);
public function test_Initialization ()
{
if (file_exists ("/tmp/databaseAuthzGroupsoo.db"))
unlink ("/tmp/databaseAuthzGroupsoo.db");
}
);
public function testInitialization()
{
if (file_exists("/tmp/databaseAuthzGroupsoo.db")) {
unlink("/tmp/databaseAuthzGroupsoo.db");
}
}
public function test_createTables1 ()
{
$authz = new Authzgroupsoo ();
$this->setExpectedException ("Exception");
$authz->createTables ();
}
public function testCreateTables1()
{
$authz = new Authzgroupsoo();
$this->setExpectedException("Exception");
$authz->createTables();
}
public function test_connect ()
{
// Must use the model to create the database structure as there is no
// creation of tables in controller
$authz = new Authzgroupsoo ();
$res = $authz->connect ($this->dbconfig["dsn"], $this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]);
$this->assertSame (true, $res);
}
public function testConnect()
{
// Must use the model to create the database structure as there is no
// creation of tables in controller
$authz = new Authzgroupsoo();
$res = $authz->connect(
$this->dbconfig["dsn"],
$this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]
);
$this->assertSame(true, $res);
}
public function test_createTables2 ()
{
$authz = new Authzgroupsoo ();
$authz->connect ($this->dbconfig["dsn"], $this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]);
$res = $authz->createTables ();
$this->assertSame (true, $res);
}
public function testCreateTables2()
{
$authz = new Authzgroupsoo();
$authz->connect(
$this->dbconfig["dsn"],
$this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]
);
$res = $authz->createTables();
$this->assertSame(true, $res);
}
////////////////
// OBJECT //
////////////////
public function test_objectCreate1 ()
{
$authz = new Authzgroupsoo ();
$authz->connect ($this->dbconfig["dsn"], $this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]);
$res = $authz->objectAdd ("MODULE", "/object");
$this->assertSame ("1", $res);
}
public function testObjectCreate1()
{
$authz = new Authzgroupsoo();
$authz->connect(
$this->dbconfig["dsn"],
$this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]
);
$res = $authz->objectAdd("MODULE", "/object");
$this->assertSame("1", $res);
}
public function test_objectUpdate1 ()
{
$authz = new Authzgroupsoo ();
$authz->connect ($this->dbconfig["dsn"], $this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]);
$res = $authz->objectUpdate ("MODULE", "/object", "/object2");
$this->assertSame (1, $res);
}
public function testObjectUpdate1()
{
$authz = new Authzgroupsoo();
$authz->connect(
$this->dbconfig["dsn"],
$this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]
);
$res = $authz->objectUpdate("MODULE", "/object", "/object2");
$this->assertSame(1, $res);
}
public function test_objectDelete1 ()
{
$authz = new Authzgroupsoo ();
$authz->connect ($this->dbconfig["dsn"], $this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]);
// The object was renamed and is not available
$this->setExpectedException ("Exception");
$res = $authz->objectDel ("MODULE", "/object");
}
public function testObjectDelete1()
{
$authz = new Authzgroupsoo();
$authz->connect(
$this->dbconfig["dsn"],
$this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]
);
// The object was renamed and is not available
$this->setExpectedException("Exception");
$res = $authz->objectDel("MODULE", "/object");
}
////////////////
// GROUPS //
////////////////
public function test_groupCreate1 ()
{
$authz = new Authzgroupsoo ();
$authz->connect ($this->dbconfig["dsn"], $this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]);
$res = $authz->groupAdd ("MODULE", "group");
$this->assertSame ("1", $res);
}
public function testGroupCreate1()
{
$authz = new Authzgroupsoo();
$authz->connect(
$this->dbconfig["dsn"],
$this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]
);
$res = $authz->groupAdd("MODULE", "group");
$this->assertSame("1", $res);
}
public function test_groupUpdate1 ()
{
$authz = new Authzgroupsoo ();
$authz->connect ($this->dbconfig["dsn"], $this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]);
$res = $authz->groupUpdate ("MODULE", "group", "group2");
$this->assertSame (1, $res);
}
public function testGroupUpdate1()
{
$authz = new Authzgroupsoo();
$authz->connect(
$this->dbconfig["dsn"],
$this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]
);
$res = $authz->groupUpdate("MODULE", "group", "group2");
$this->assertSame(1, $res);
}
public function test_groupDelete1 ()
{
$authz = new Authzgroupsoo ();
$authz->connect ($this->dbconfig["dsn"], $this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]);
// The group doesn't exists
$this->setExpectedException ("Exception");
$res = $authz->groupDel ("MODULE", "group");
}
public function testGroupDelete1()
{
$authz = new Authzgroupsoo();
$authz->connect(
$this->dbconfig["dsn"],
$this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]
);
// The group doesn't exists
$this->setExpectedException("Exception");
$res = $authz->groupDel("MODULE", "group");
}
/////////////////////
// GROUPMEMBER //
/////////////////////
public function test_groupmemberCreate1 ()
{
$authz = new Authzgroupsoo ();
$authz->connect ($this->dbconfig["dsn"], $this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]);
// The group doesn't exists
$this->setExpectedException ("Exception");
$res = $authz->groupmemberAdd ("MODULE", "group", "userKnown");
}
public function testGroupmemberCreate1()
{
$authz = new Authzgroupsoo();
$authz->connect(
$this->dbconfig["dsn"],
$this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]
);
// The group doesn't exists
$this->setExpectedException("Exception");
$res = $authz->groupmemberAdd("MODULE", "group", "userKnown");
}
public function test_groupmemberCreate2 ()
{
$authz = new Authzgroupsoo ();
$authz->connect ($this->dbconfig["dsn"], $this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]);
$res = $authz->groupmemberAdd ("MODULE", "group2", "userKnown");
$this->assertSame ("1", $res);
}
public function testGroupmemberCreate2()
{
$authz = new Authzgroupsoo();
$authz->connect(
$this->dbconfig["dsn"],
$this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]
);
$res = $authz->groupmemberAdd("MODULE", "group2", "userKnown");
$this->assertSame("1", $res);
}
public function test_groupmemberDelete1 ()
{
$authz = new Authzgroupsoo ();
$authz->connect ($this->dbconfig["dsn"], $this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]);
// The group doesn't exists
$this->setExpectedException ("Exception");
$res = $authz->groupmemberDel ("MODULE", "group","userKnown");
}
public function testGroupmemberDelete1()
{
$authz = new Authzgroupsoo();
$authz->connect(
$this->dbconfig["dsn"],
$this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]
);
// The group doesn't exists
$this->setExpectedException("Exception");
$res = $authz->groupmemberDel("MODULE", "group", "userKnown");
}
public function test_groupmemberReadGroup1 ()
{
$authz = new Authzgroupsoo ();
$authz->connect ($this->dbconfig["dsn"], $this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]);
// The group doesn't exists
$this->setExpectedException ("Exception");
$res = $authz->groupmemberReadGroup ("MODULE", "group");
}
public function testGroupmemberReadGroup1()
{
$authz = new Authzgroupsoo();
$authz->connect(
$this->dbconfig["dsn"],
$this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]
);
// The group doesn't exists
$this->setExpectedException("Exception");
$res = $authz->groupmemberReadGroup("MODULE", "group");
}
public function test_groupmemberReadGroup2 ()
{
$authz = new Authzgroupsoo ();
$authz->connect ($this->dbconfig["dsn"], $this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]);
$res = $authz->groupmemberReadGroup ("MODULE", "group2");
$this->assertSame (array (array ("user"=>"userKnown")), $res);
}
public function testGroupmemberReadGroup2()
{
$authz = new Authzgroupsoo();
$authz->connect(
$this->dbconfig["dsn"],
$this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]
);
$res = $authz->groupmemberReadGroup("MODULE", "group2");
$this->assertSame(array (array ("user" => "userKnown")), $res);
}
public function test_groupmemberReadUser1 ()
{
$authz = new Authzgroupsoo ();
$authz->connect ($this->dbconfig["dsn"], $this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]);
$res = $authz->groupmemberReadUser ("MODULE", "userKnown");
$this->assertSame (array (1=>"group2"), $res);
}
public function testGroupmemberReadUser1()
{
$authz = new Authzgroupsoo();
$authz->connect(
$this->dbconfig["dsn"],
$this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]
);
$res = $authz->groupmemberReadUser("MODULE", "userKnown");
$this->assertSame(array (1 => "group2"), $res);
}
////////////////
// RIGHTS //
////////////////
public function test_rightCreate1 ()
{
$authz = new Authzgroupsoo ();
$authz->connect ($this->dbconfig["dsn"], $this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]);
$res = $authz->rightAdd ("MODULE", "group2","/object2", "RW");
$this->assertSame ("1", $res);
}
public function testRightCreate1()
{
$authz = new Authzgroupsoo();
$authz->connect(
$this->dbconfig["dsn"],
$this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]
);
$res = $authz->rightAdd("MODULE", "group2", "/object2", "RW");
$this->assertSame("1", $res);
}
public function test_rightUpdate1 ()
{
$authz = new Authzgroupsoo ();
$authz->connect ($this->dbconfig["dsn"], $this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]);
$res = $authz->rightUpdate ("MODULE", "group2", "/object2", "RO");
$this->assertSame (1, $res);
}
public function testRightUpdate1()
{
$authz = new Authzgroupsoo();
$authz->connect(
$this->dbconfig["dsn"],
$this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]
);
$res = $authz->rightUpdate("MODULE", "group2", "/object2", "RO");
$this->assertSame(1, $res);
}
public function test_rightDelete1 ()
{
$authz = new Authzgroupsoo ();
$authz->connect ($this->dbconfig["dsn"], $this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]);
// The object doesn't exists
$this->setExpectedException ("Exception");
$res = $authz->rightDel ("MODULE", "group2", "/object");
}
public function testRightDelete1()
{
$authz = new Authzgroupsoo();
$authz->connect(
$this->dbconfig["dsn"],
$this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]
);
// The object doesn't exists
$this->setExpectedException("Exception");
$res = $authz->rightDel("MODULE", "group2", "/object");
}
//////////////////////////////////////////////
// CLEANING DATABASE : REMOVING ENTRIES //
//////////////////////////////////////////////
public function test_deleteGroupmember2 ()
{
$authz = new Authzgroupsoo ();
$authz->connect ($this->dbconfig["dsn"], $this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]);
$res = $authz->groupmemberDel ("MODULE", "group2","userKnown");
$this->assertSame (1, $res);
}
public function testDeleteGroupmember2()
{
$authz = new Authzgroupsoo();
$authz->connect(
$this->dbconfig["dsn"],
$this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]
);
$res = $authz->groupmemberDel("MODULE", "group2", "userKnown");
$this->assertSame(1, $res);
}
public function test_deleteObject2 ()
{
$authz = new Authzgroupsoo ();
$authz->connect ($this->dbconfig["dsn"], $this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]);
$res = $authz->objectDel ("MODULE", "/object2");
$this->assertSame (1, $res);
}
public function testDeleteObject2()
{
$authz = new Authzgroupsoo();
$authz->connect(
$this->dbconfig["dsn"],
$this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]
);
$res = $authz->objectDel("MODULE", "/object2");
$this->assertSame(1, $res);
}
public function test_deleteGroup2 ()
{
$authz = new Authzgroupsoo ();
$authz->connect ($this->dbconfig["dsn"], $this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]);
$res = $authz->groupDel ("MODULE", "group2");
$this->assertSame (1, $res);
}
public function testDeleteGroup2()
{
$authz = new Authzgroupsoo();
$authz->connect(
$this->dbconfig["dsn"],
$this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]
);
$res = $authz->groupDel("MODULE", "group2");
$this->assertSame(1, $res);
}
/////////////////////
// USER RIGHTS //
/////////////////////
public function test_userrightsget1 ()
{
$authz = new Authzgroupsoo ();
$authz->connect ($this->dbconfig["dsn"], $this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]);
// Create infos to tests the userrightsget method
$authz->objectAdd ("MODULE1", "/");
$authz->objectAdd ("MODULE1", "/rep1");
$authz->objectAdd ("MODULE1", "/rep1/rep2");
$authz->objectAdd ("MODULE1", "/rep1/rep2/rep3");
$authz->objectAdd ("MODULE2", "/");
$authz->objectAdd ("MODULE2", "/rep1");
$authz->objectAdd ("MODULE2", "/rep1/rep2");
$authz->objectAdd ("MODULE2", "/rep1/rep2/rep3");
$authz->groupAdd ("MODULE1", "group1");
$authz->groupAdd ("MODULE1", "group2");
$authz->groupAdd ("MODULE1", "group3");
$authz->groupAdd ("MODULE2", "group3");
$authz->groupmemberAdd ("MODULE1", "group2", "userKnown");
$authz->groupmemberAdd ("MODULE1", "group3", "userKnown");
$authz->groupmemberAdd ("MODULE2", "group3", "userKnown");
$authz->rightAdd ("MODULE1", "group2","/rep1/rep2","RW");
$authz->rightAdd ("MODULE1", "group3","/rep1/rep2","RO");
public function testUserrightsget1()
{
$authz = new Authzgroupsoo();
$authz->connect(
$this->dbconfig["dsn"],
$this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]
);
// Create infos to tests the userrightsget method
$authz->objectAdd("MODULE1", "/");
$authz->objectAdd("MODULE1", "/rep1");
$authz->objectAdd("MODULE1", "/rep1/rep2");
$authz->objectAdd("MODULE1", "/rep1/rep2/rep3");
$authz->objectAdd("MODULE2", "/");
$authz->objectAdd("MODULE2", "/rep1");
$authz->objectAdd("MODULE2", "/rep1/rep2");
$authz->objectAdd("MODULE2", "/rep1/rep2/rep3");
$authz->groupAdd("MODULE1", "group1");
$authz->groupAdd("MODULE1", "group2");
$authz->groupAdd("MODULE1", "group3");
$authz->groupAdd("MODULE2", "group3");
$authz->groupmemberAdd("MODULE1", "group2", "userKnown");
$authz->groupmemberAdd("MODULE1", "group3", "userKnown");
$authz->groupmemberAdd("MODULE2", "group3", "userKnown");
$authz->rightAdd("MODULE1", "group2", "/rep1/rep2", "RW");
$authz->rightAdd("MODULE1", "group3", "/rep1/rep2", "RO");
$res = $authz->userrightsget ("MODULE1", "userKnown");
$this->assertSame (array ("/rep1/rep2"=>"RW"), $res);
}
$res = $authz->userrightsget("MODULE1", "userKnown");
$this->assertSame(array ("/rep1/rep2" => "RW"), $res);
}
public function test_allow1 ()
{
$authz = new Authzgroupsoo ();
$authz->connect ($this->dbconfig["dsn"], $this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]);
$res = $authz->allow ("MODULE1", "userKnown", "/rep1/rep2");
$this->assertSame ("RW", $res);
}
public function testAllow1()
{
$authz = new Authzgroupsoo();
$authz->connect(
$this->dbconfig["dsn"],
$this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]
);
$res = $authz->allow("MODULE1", "userKnown", "/rep1/rep2");
$this->assertSame("RW", $res);
}
public function test_allow2 ()
{
$authz = new Authzgroupsoo ();
$authz->connect ($this->dbconfig["dsn"], $this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]);
$authz->rightAdd ("MODULE1", "group2","/","RW");
$res = $authz->allow ("MODULE1", "userKnown", "/rep1/rep2");
$this->assertSame ("RW", $res);
}
public function testAllow2()
{
$authz = new Authzgroupsoo();
$authz->connect(
$this->dbconfig["dsn"],
$this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]
);
$authz->rightAdd("MODULE1", "group2", "/", "RW");
$res = $authz->allow("MODULE1", "userKnown", "/rep1/rep2");
$this->assertSame("RW", $res);
}
public function test_allow3 ()
{
$authz = new Authzgroupsoo ();
$authz->connect ($this->dbconfig["dsn"], $this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]);
$authz->rightAdd ("MODULE1", "group2","/rep1","RO");
$res = $authz->allow ("MODULE1", "userKnown", "/rep1/rep2");
$this->assertSame ("RW", $res);
}
public function testAllow3()
{
$authz = new Authzgroupsoo();
$authz->connect(
$this->dbconfig["dsn"],
$this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]
);
$authz->rightAdd("MODULE1", "group2", "/rep1", "RO");
$res = $authz->allow("MODULE1", "userKnown", "/rep1/rep2");
$this->assertSame("RW", $res);
}
public function test_allow4 ()
{
$authz = new Authzgroupsoo ();
$authz->connect ($this->dbconfig["dsn"], $this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]);
$res = $authz->allow ("MODULE1", "userKnown", "/rep1/rep2/rep3");
$this->assertSame ("NO", $res);
}
public function testAllow4()
{
$authz = new Authzgroupsoo();
$authz->connect(
$this->dbconfig["dsn"],
$this->dbconfig["username"],
$this->dbconfig["password"],
$this->dbconfig["driver_options"]
);
$res = $authz->allow("MODULE1", "userKnown", "/rep1/rep2/rep3");
$this->assertSame("NO", $res);
}
}