#! /usr/bin/env python # Copyright 2016 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import unittest from xml.etree import ElementTree from pylib.utils import dexdump # pylint: disable=protected-access class DexdumpXMLParseTest(unittest.TestCase): def testParseRootXmlNode(self): example_xml_string = ( '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '') actual = dexdump._ParseRootNode( ElementTree.fromstring(example_xml_string)) expected = { 'com.foo.bar1' : { 'classes': { 'Class1': { 'methods': ['class1Method1', 'class1Method2'], 'superclass': 'java.lang.Object', }, 'Class2': { 'methods': ['class2Method1'], 'superclass': 'java.lang.Object', } }, }, 'com.foo.bar2' : {'classes': {}}, 'com.foo.bar3' : {'classes': {}}, } self.assertEquals(expected, actual) def testParsePackageNode(self): example_xml_string = ( '' '' '' '' '' '') actual = dexdump._ParsePackageNode( ElementTree.fromstring(example_xml_string)) expected = { 'classes': { 'Class1': { 'methods': [], 'superclass': 'java.lang.Object', }, 'Class2': { 'methods': [], 'superclass': 'java.lang.Object', }, }, } self.assertEquals(expected, actual) def testParseClassNode(self): example_xml_string = ( '' '' '' '' '' '') actual = dexdump._ParseClassNode( ElementTree.fromstring(example_xml_string)) expected = { 'methods': ['method1', 'method2'], 'superclass': 'java.lang.Object', } self.assertEquals(expected, actual) if __name__ == '__main__': unittest.main()