see #2209 fixing another place where rule object was added to the second parent

This commit is contained in:
Vadim Kurland
2011-03-12 21:14:31 -08:00
parent b7a018b2d7
commit fcafb30ade
@@ -75,7 +75,6 @@ void UsageResolverTest::setUp()
grp1->setName("Group 1"); grp1->setName("Group 1");
grp2->setName("Group 2"); grp2->setName("Group 2");
grp3->setName("Group 3"); grp3->setName("Group 3");
grp1->addRef(addr1);
addToLib(grp1); addToLib(grp1);
addToLib(grp2); addToLib(grp2);
@@ -83,11 +82,11 @@ void UsageResolverTest::setUp()
// addr1 belongs to grp1 // addr1 belongs to grp1
// addr2 belongs to grp2 // addr2 belongs to grp2
// grp2 belongs to grp1 // grp1 belongs to grp2
grp1->add(addr1); grp1->addRef(addr1);
grp2->add(addr2); grp2->addRef(addr2);
grp2->add(grp1); grp2->addRef(grp1);
grp3->add(grp2); grp3->addRef(grp2);
Policy *policy = fw1->getPolicy(); Policy *policy = fw1->getPolicy();
PolicyRule *rule; PolicyRule *rule;
@@ -147,7 +146,12 @@ void UsageResolverTest::setUp()
} }
/*
* addr1 is found in:
* - system group "Addresses"
* - group grp1
* - rule 1 of firewall 1
*/
void UsageResolverTest::findWhereObjectIsUsed() void UsageResolverTest::findWhereObjectIsUsed()
{ {
// db->dump(true, true); // db->dump(true, true);
@@ -155,7 +159,7 @@ void UsageResolverTest::findWhereObjectIsUsed()
set<FWObject*> res; set<FWObject*> res;
db->findWhereObjectIsUsed(addr1, db, res); db->findWhereObjectIsUsed(addr1, db, res);
CPPUNIT_ASSERT(res.size() == 4); CPPUNIT_ASSERT(res.size() == 3);
set<FWObject*>::iterator iter = res.begin(); set<FWObject*>::iterator iter = res.begin();
while (iter!=res.end()) while (iter!=res.end())
@@ -166,16 +170,27 @@ void UsageResolverTest::findWhereObjectIsUsed()
if (FWReference::cast(obj)) if (FWReference::cast(obj))
{ {
// if we get reference, the parent must be rule element // if we get reference, the parent must be rule element or user group
obj = obj->getParent(); obj = obj->getParent();
CPPUNIT_ASSERT(obj->getTypeName() == RuleElementSrc::TYPENAME || obj->getTypeName() == ObjectGroup::TYPENAME);
CPPUNIT_ASSERT(obj->getParent()->getName() == "PolicyRule 1 of Firewall 1" || obj->getParent()->getName() == "Group 2"); CPPUNIT_ASSERT(
obj->getTypeName() == RuleElementSrc::TYPENAME ||
obj->getTypeName() == ObjectGroup::TYPENAME);
if (RuleElementSrc::isA(obj))
{
CPPUNIT_ASSERT(obj->getParent()->getName() == "PolicyRule 1 of Firewall 1");
}
if (ObjectGroup::isA(obj))
{
CPPUNIT_ASSERT(obj->getName() == "Group 1");
}
} else } else
{ {
// otherwise we should get the group grp1 or // otherwise we should get system folder "Addresses"
// system folder "Addresses" CPPUNIT_ASSERT(name == "Addresses" );
CPPUNIT_ASSERT(name == "Group 1" ||
name == "Addresses" );
} }
iter++; iter++;
} }