diff --git a/tests/test_object_manager.py b/tests/test_object_manager.py new file mode 100644 index 0000000..c55b098 --- /dev/null +++ b/tests/test_object_manager.py @@ -0,0 +1,44 @@ +import pytest +import windows + +from pfwtest import * + + +KNOWN_DIRECTORY_OBJECT = ("KnownDLLs", "\\KnownDLLs") + +objmanager = windows.system.object_manager + +@pytest.mark.parametrize("objname", KNOWN_DIRECTORY_OBJECT) +def test_directory_object(objname): + obj = objmanager[objname] + if "\\" not in objname: + assert obj.name == objname + else: + assert obj.fullname == objname + assert obj.type == "Directory" + assert obj.target is None + assert list(obj) + assert obj["kernel32.dll"] + assert obj.items() + assert obj.keys() + assert obj.values() + +@pytest.mark.parametrize("objname", KNOWN_DIRECTORY_OBJECT) +def test_multiple_access_type(objname): + assert objmanager[objname] + assert objmanager.root[objname] + + +def test_complex_object_path(): + obj = objmanager["\\KnownDLLs\\kernel32.dll"] + assert obj.name == "kernel32.dll" + assert obj.fullname == "\\KnownDLLs\\kernel32.dll" + assert obj.path == "\\KnownDLLs" + assert obj.type == "Section" + assert obj.target is None + + +def test_link_object(): + obj = objmanager["\\KnownDLLs\\KnownDLLPath"] + assert obj.type == "SymbolicLink" + assert obj.target.lower() == "c:\windows\system32" \ No newline at end of file