113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# Authors: Karl MacMillan <kmacmillan@mentalrootkit.com>
213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#
313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# Copyright (C) 2006 Red Hat
413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# see file 'COPYING' for use and warranty information
513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#
613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# This program is free software; you can redistribute it and/or
713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# modify it under the terms of the GNU General Public License as
813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# published by the Free Software Foundation; version 2 only
913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#
1013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# This program is distributed in the hope that it will be useful,
1113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# but WITHOUT ANY WARRANTY; without even the implied warranty of
1213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# GNU General Public License for more details.
1413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#
1513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# You should have received a copy of the GNU General Public License
1613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# along with this program; if not, write to the Free Software
1713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
1813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#
1913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
2013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindleimport unittest
2113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindleimport sepolgen.objectmodel
2213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
2313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindleclass TestInfoFlow(unittest.TestCase):
2413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle    def test_from_file(self):
2513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle        info = sepolgen.objectmodel.PermMappings()
2613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle        fd = open("perm_map")
2713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle        info.from_file(fd)
28a9fb9053f7297622175c63e924b7427eafbaa1ebRobert Kuska        fd.close()
2913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
3013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle        pm = info.get("filesystem", "mount")
31e25d39addcce0bb2fe74a79f4ab6e350b339a876Robert Kuska        self.assertEqual(pm.perm, "mount")
32e25d39addcce0bb2fe74a79f4ab6e350b339a876Robert Kuska        self.assertEqual(pm.dir, sepolgen.objectmodel.FLOW_WRITE)
33e25d39addcce0bb2fe74a79f4ab6e350b339a876Robert Kuska        self.assertEqual(pm.weight, 1)
3413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
3513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle        self.assertRaises(KeyError, info.get, "filesystem", "foo")
3613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
3713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle        pm = info.getdefault("filesystem", "foo")
38e25d39addcce0bb2fe74a79f4ab6e350b339a876Robert Kuska        self.assertEqual(pm.perm, "foo")
39e25d39addcce0bb2fe74a79f4ab6e350b339a876Robert Kuska        self.assertEqual(pm.dir, sepolgen.objectmodel.FLOW_BOTH)
40e25d39addcce0bb2fe74a79f4ab6e350b339a876Robert Kuska        self.assertEqual(pm.weight, 5)
4113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
4213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle        pm = info.getdefault("foo", "bar")
43e25d39addcce0bb2fe74a79f4ab6e350b339a876Robert Kuska        self.assertEqual(pm.perm, "bar")
44e25d39addcce0bb2fe74a79f4ab6e350b339a876Robert Kuska        self.assertEqual(pm.dir, sepolgen.objectmodel.FLOW_BOTH)
45e25d39addcce0bb2fe74a79f4ab6e350b339a876Robert Kuska        self.assertEqual(pm.weight, 5)
46