#!/usr/bin/env python3 # Copyright (c) 2011 Google Inc. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. """ Unit tests for the easy_xml.py file. """ import gyp.easy_xml as easy_xml import unittest from io import StringIO class TestSequenceFunctions(unittest.TestCase): def setUp(self): self.stderr = StringIO() def test_EasyXml_simple(self): self.assertEqual( easy_xml.XmlToString(["test"]), '', ) self.assertEqual( easy_xml.XmlToString(["test"], encoding="Windows-1252"), '', ) def test_EasyXml_simple_with_attributes(self): self.assertEqual( easy_xml.XmlToString(["test2", {"a": "value1", "b": "value2"}]), '', ) def test_EasyXml_escaping(self): original = "'\"\r&\nfoo" converted = "<test>'" & foo" converted_apos = converted.replace("'", "'") self.assertEqual( easy_xml.XmlToString(["test3", {"a": original}, original]), '%s' % (converted, converted_apos), ) def test_EasyXml_pretty(self): self.assertEqual( easy_xml.XmlToString( ["test3", ["GrandParent", ["Parent1", ["Child"]], ["Parent2"]]], pretty=True, ), '\n' "\n" " \n" " \n" " \n" " \n" " \n" " \n" "\n", ) def test_EasyXml_complex(self): # We want to create: target = ( '' "" '' "{D2250C20-3A94-4FB9-AF73-11BC5B73884B}" "Win32Proj" "automated_ui_tests" "" '' "' "Application" "Unicode" "" "" ) xml = easy_xml.XmlToString( [ "Project", [ "PropertyGroup", {"Label": "Globals"}, ["ProjectGuid", "{D2250C20-3A94-4FB9-AF73-11BC5B73884B}"], ["Keyword", "Win32Proj"], ["RootNamespace", "automated_ui_tests"], ], ["Import", {"Project": "$(VCTargetsPath)\\Microsoft.Cpp.props"}], [ "PropertyGroup", { "Condition": "'$(Configuration)|$(Platform)'=='Debug|Win32'", "Label": "Configuration", }, ["ConfigurationType", "Application"], ["CharacterSet", "Unicode"], ], ] ) self.assertEqual(xml, target) if __name__ == "__main__": unittest.main()