| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- #!/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"]),
- '<?xml version="1.0" encoding="utf-8"?><test/>',
- )
- self.assertEqual(
- easy_xml.XmlToString(["test"], encoding="Windows-1252"),
- '<?xml version="1.0" encoding="Windows-1252"?><test/>',
- )
- def test_EasyXml_simple_with_attributes(self):
- self.assertEqual(
- easy_xml.XmlToString(["test2", {"a": "value1", "b": "value2"}]),
- '<?xml version="1.0" encoding="utf-8"?><test2 a="value1" b="value2"/>',
- )
- def test_EasyXml_escaping(self):
- original = "<test>'\"\r&\nfoo"
- converted = "<test>'"
&
foo"
- converted_apos = converted.replace("'", "'")
- self.assertEqual(
- easy_xml.XmlToString(["test3", {"a": original}, original]),
- '<?xml version="1.0" encoding="utf-8"?><test3 a="%s">%s</test3>'
- % (converted, converted_apos),
- )
- def test_EasyXml_pretty(self):
- self.assertEqual(
- easy_xml.XmlToString(
- ["test3", ["GrandParent", ["Parent1", ["Child"]], ["Parent2"]]],
- pretty=True,
- ),
- '<?xml version="1.0" encoding="utf-8"?>\n'
- "<test3>\n"
- " <GrandParent>\n"
- " <Parent1>\n"
- " <Child/>\n"
- " </Parent1>\n"
- " <Parent2/>\n"
- " </GrandParent>\n"
- "</test3>\n",
- )
- def test_EasyXml_complex(self):
- # We want to create:
- target = (
- '<?xml version="1.0" encoding="utf-8"?>'
- "<Project>"
- '<PropertyGroup Label="Globals">'
- "<ProjectGuid>{D2250C20-3A94-4FB9-AF73-11BC5B73884B}</ProjectGuid>"
- "<Keyword>Win32Proj</Keyword>"
- "<RootNamespace>automated_ui_tests</RootNamespace>"
- "</PropertyGroup>"
- '<Import Project="$(VCTargetsPath)\\Microsoft.Cpp.props"/>'
- "<PropertyGroup "
- "Condition=\"'$(Configuration)|$(Platform)'=="
- '\'Debug|Win32\'" Label="Configuration">'
- "<ConfigurationType>Application</ConfigurationType>"
- "<CharacterSet>Unicode</CharacterSet>"
- "<SpectreMitigation>SpectreLoadCF</SpectreMitigation>"
- "<VCToolsVersion>14.36.32532</VCToolsVersion>"
- "</PropertyGroup>"
- "</Project>"
- )
- 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"],
- ["SpectreMitigation", "SpectreLoadCF"],
- ["VCToolsVersion", "14.36.32532"],
- ],
- ]
- )
- self.assertEqual(xml, target)
- if __name__ == "__main__":
- unittest.main()
|