def testReadConfiguration(self): """Tests the _ReadConfiguration function.""" test_data = [ ' Name="Release|Win32"', (' OutputDirectory=' '"$(SolutionDir)$(ConfigurationName)"'), ' IntermediateDirectory="$(ConfigurationName)"', ' ConfigurationType="2"', ' CharacterSet="1"', ' >', ' </Configuration>'] file_reader = readers.VS2008ProjectFileReader() file_data = '\n'.join(test_data).encode('utf-8') file_reader._file = io.BytesIO(file_data) project_configuration = file_reader._ReadConfiguration('<Configuration') self.assertIsNotNone(project_configuration) self.assertEqual(project_configuration.character_set, '1') self.assertEqual(project_configuration.output_type, '2') project_configuration = file_reader._ReadConfiguration('') self.assertIsNone(project_configuration)
def _GetProjectFileReader(self, input_version): """Retrieves a Visual Studio project file reader. Args: input_version (str): input version of the Visual Studio solution. Returns: VSProjectFileReader: Visual Studio project file reader or None if version is not supported. """ if input_version == '2008': return readers.VS2008ProjectFileReader() if input_version == '2010': return readers.VS2010ProjectFileReader() if input_version == '2012': return readers.VS2012ProjectFileReader() if input_version == '2013': return readers.VS2013ProjectFileReader() if input_version == '2015': return readers.VS2015ProjectFileReader() if input_version == '2017': return readers.VS2017ProjectFileReader() if input_version == '2019': return readers.VS2019ProjectFileReader() return None
def testReadFiles(self): """Tests the _ReadFiles function.""" test_data = [ ' <Files>', ' <Filter', ' Name="Source Files"', (' Filter=' '"cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"'), (' UniqueIdentifier=' '"{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"'), ' >', ' <File', ' RelativePath="test.c"', ' >', ' </File>', ' </Filter>', ' </Files>'] project_information = resources.VSProjectInformation() file_reader = readers.VS2008ProjectFileReader() file_data = '\n'.join(test_data).encode('utf-8') file_reader._file = io.BytesIO(file_data) file_reader._ReadFiles(project_information)
def testParseConfigurationOption(self): """Tests the _ParseConfigurationOption function.""" project_configuration = resources.VSProjectConfiguration() file_reader = readers.VS2008ProjectFileReader() line = 'Optimization="0"' file_reader._ParseConfigurationOption( project_configuration, 'Optimization', 'optimization', line) self.assertEqual(project_configuration.optimization, '0')
def testReadProject(self): """Tests the ReadProject function.""" file_reader = readers.VS2008ProjectFileReader() path = self._GetTestFilePath(['2008.vcproj']) file_reader.Open(path) file_reader.ReadHeader() file_reader.ReadProject() file_reader.Close()
def testReadProjectInformation(self): """Tests the _ReadProjectInformation function.""" test_data = [ ' Name="libcerror"', ' ProjectGUID="{C42F5217-137D-4F10-9D6A-3C6D44E43453}"', ' RootNamespace="libcerror"', ' TargetFrameworkVersion="131072"', ' >'] project_information = resources.VSProjectInformation() file_reader = readers.VS2008ProjectFileReader() file_data = '\n'.join(test_data).encode('utf-8') file_reader._file = io.BytesIO(file_data) file_reader._ReadProjectInformation(project_information)
def testReadHeader(self): """Tests the ReadHeader function.""" test_data = [ '<?xml version="1.0" encoding="Windows-1252"?>', '<VisualStudioProject', ' ProjectType="Visual C++"', ' Version="9,00"'] file_reader = readers.VS2008ProjectFileReader() file_data = '\n'.join(test_data).encode('utf-8') file_reader._file = io.BytesIO(file_data) result = file_reader.ReadHeader() self.assertTrue(result) test_data[3] = '' file_data = '\n'.join(test_data).encode('utf-8') file_reader._file = io.BytesIO(file_data) result = file_reader.ReadHeader() self.assertFalse(result) test_data[2] = '' file_data = '\n'.join(test_data).encode('utf-8') file_reader._file = io.BytesIO(file_data) result = file_reader.ReadHeader() self.assertFalse(result) test_data[1] = '' file_data = '\n'.join(test_data).encode('utf-8') file_reader._file = io.BytesIO(file_data) result = file_reader.ReadHeader() self.assertFalse(result) test_data[0] = '' file_data = '\n'.join(test_data).encode('utf-8') file_reader._file = io.BytesIO(file_data) result = file_reader.ReadHeader() self.assertFalse(result)