def testClassManager(self): """Test if the classmanager has the same items""" from androguard.core.bytecodes.mutf8 import decode, patch_string fname = "examples/android/TestsAndroguard/bin/classes.dex" parsed = parse_dex.read_dex(fname) with open(fname, "rb") as f: d = DalvikVMFormat(f.read()) cm = d.get_class_manager() self.assertFalse(cm.get_odex_format()) ERR_STR = 'AG:IS: invalid string' ## Testing Strings... for idx in range(parsed.string_ids_size): self.assertNotEqual(cm.get_string(idx), ERR_STR) self.assertNotEqual(cm.get_raw_string(idx), ERR_STR) self.assertEqual(cm.get_raw_string(idx), patch_string(decode(parsed.str_raw[idx]))) self.assertEqual(cm.get_string(parsed.string_ids_size), ERR_STR) self.assertEqual(cm.get_raw_string(parsed.string_ids_size), ERR_STR) self.assertEqual(cm.get_string(parsed.string_ids_size + 100), ERR_STR) self.assertEqual(cm.get_raw_string(parsed.string_ids_size + 100), ERR_STR)