diff options
| author | Rob Mensching <rob@firegiant.com> | 2020-07-18 14:57:08 -0700 |
|---|---|---|
| committer | Rob Mensching <rob@firegiant.com> | 2020-07-18 15:06:43 -0700 |
| commit | e04caab11fb8f2cac4d575ef1e352221bd421586 (patch) | |
| tree | 7c9752f17fab2793cabb07e73a42b52d573e1249 /src/test | |
| parent | 92bb1d2d74e46714459c2d0fc23f185329745718 (diff) | |
| download | wix-e04caab11fb8f2cac4d575ef1e352221bd421586.tar.gz wix-e04caab11fb8f2cac4d575ef1e352221bd421586.tar.bz2 wix-e04caab11fb8f2cac4d575ef1e352221bd421586.zip | |
Separate "format" from "convert"
Closes wixtoolset/issues#6215
Diffstat (limited to 'src/test')
3 files changed, 122 insertions, 109 deletions
diff --git a/src/test/WixToolsetTest.Converters/ConverterFixture.cs b/src/test/WixToolsetTest.Converters/ConverterFixture.cs index 6e2ad2c5..cf89ba7e 100644 --- a/src/test/WixToolsetTest.Converters/ConverterFixture.cs +++ b/src/test/WixToolsetTest.Converters/ConverterFixture.cs | |||
| @@ -40,110 +40,6 @@ namespace WixToolsetTest.Converters | |||
| 40 | } | 40 | } |
| 41 | 41 | ||
| 42 | [Fact] | 42 | [Fact] |
| 43 | public void CanFixWhitespace() | ||
| 44 | { | ||
| 45 | var parse = String.Join(Environment.NewLine, | ||
| 46 | "<?xml version='1.0' encoding='utf-8'?>", | ||
| 47 | "<Wix xmlns='http://wixtoolset.org/schemas/v4/wxs'>", | ||
| 48 | " <Fragment>", | ||
| 49 | " <Property Id='Prop'", | ||
| 50 | " Value='Val'>", | ||
| 51 | " </Property>", | ||
| 52 | " </Fragment>", | ||
| 53 | "</Wix>"); | ||
| 54 | |||
| 55 | var expected = String.Join(Environment.NewLine, | ||
| 56 | "<Wix xmlns=\"http://wixtoolset.org/schemas/v4/wxs\">", | ||
| 57 | " <Fragment>", | ||
| 58 | " <Property Id=\"Prop\" Value=\"Val\" />", | ||
| 59 | " </Fragment>", | ||
| 60 | "</Wix>"); | ||
| 61 | |||
| 62 | var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo); | ||
| 63 | |||
| 64 | var messaging = new MockMessaging(); | ||
| 65 | var converter = new WixConverter(messaging, 4, null, null); | ||
| 66 | |||
| 67 | var errors = converter.ConvertDocument(document); | ||
| 68 | |||
| 69 | var actual = UnformattedDocumentString(document); | ||
| 70 | |||
| 71 | Assert.Equal(expected, actual); | ||
| 72 | Assert.Equal(5, errors); | ||
| 73 | } | ||
| 74 | |||
| 75 | [Fact] | ||
| 76 | public void CanPreserveNewLines() | ||
| 77 | { | ||
| 78 | var parse = String.Join(Environment.NewLine, | ||
| 79 | "<?xml version='1.0' encoding='utf-8'?>", | ||
| 80 | "<Wix xmlns='http://wixtoolset.org/schemas/v4/wxs'>", | ||
| 81 | " <Fragment>", | ||
| 82 | "", | ||
| 83 | " <Property Id='Prop' Value='Val' />", | ||
| 84 | "", | ||
| 85 | " </Fragment>", | ||
| 86 | "</Wix>"); | ||
| 87 | |||
| 88 | var expected = String.Join(Environment.NewLine, | ||
| 89 | "<Wix xmlns=\"http://wixtoolset.org/schemas/v4/wxs\">", | ||
| 90 | " <Fragment>", | ||
| 91 | "", | ||
| 92 | " <Property Id=\"Prop\" Value=\"Val\" />", | ||
| 93 | "", | ||
| 94 | " </Fragment>", | ||
| 95 | "</Wix>"); | ||
| 96 | |||
| 97 | var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo); | ||
| 98 | |||
| 99 | var messaging = new MockMessaging(); | ||
| 100 | var converter = new WixConverter(messaging, 4, null, null); | ||
| 101 | |||
| 102 | var conversions = converter.ConvertDocument(document); | ||
| 103 | |||
| 104 | var actual = UnformattedDocumentString(document); | ||
| 105 | |||
| 106 | Assert.Equal(expected, actual); | ||
| 107 | Assert.Equal(4, conversions); | ||
| 108 | } | ||
| 109 | |||
| 110 | [Fact] | ||
| 111 | public void CanConvertWithNewLineAtEndOfFile() | ||
| 112 | { | ||
| 113 | var parse = String.Join(Environment.NewLine, | ||
| 114 | "<Wix xmlns='http://wixtoolset.org/schemas/v4/wxs'>", | ||
| 115 | " <Fragment>", | ||
| 116 | "", | ||
| 117 | " <Property Id='Prop' Value='Val' />", | ||
| 118 | "", | ||
| 119 | " </Fragment>", | ||
| 120 | "</Wix>", | ||
| 121 | ""); | ||
| 122 | |||
| 123 | var expected = String.Join(Environment.NewLine, | ||
| 124 | "<Wix xmlns=\"http://wixtoolset.org/schemas/v4/wxs\">", | ||
| 125 | " <Fragment>", | ||
| 126 | "", | ||
| 127 | " <Property Id=\"Prop\" Value=\"Val\" />", | ||
| 128 | "", | ||
| 129 | " </Fragment>", | ||
| 130 | "</Wix>", | ||
| 131 | ""); | ||
| 132 | |||
| 133 | var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo); | ||
| 134 | |||
| 135 | var messaging = new MockMessaging(); | ||
| 136 | var converter = new WixConverter(messaging, 4, null, null); | ||
| 137 | |||
| 138 | var conversions = converter.ConvertDocument(document); | ||
| 139 | |||
| 140 | var actual = UnformattedDocumentString(document); | ||
| 141 | |||
| 142 | Assert.Equal(expected, actual); | ||
| 143 | Assert.Equal(3, conversions); | ||
| 144 | } | ||
| 145 | |||
| 146 | [Fact] | ||
| 147 | public void CanConvertMainNamespace() | 43 | public void CanConvertMainNamespace() |
| 148 | { | 44 | { |
| 149 | var parse = String.Join(Environment.NewLine, | 45 | var parse = String.Join(Environment.NewLine, |
diff --git a/src/test/WixToolsetTest.Converters/ConverterIntegrationFixture.cs b/src/test/WixToolsetTest.Converters/ConverterIntegrationFixture.cs index 5eaeb985..79cc3f69 100644 --- a/src/test/WixToolsetTest.Converters/ConverterIntegrationFixture.cs +++ b/src/test/WixToolsetTest.Converters/ConverterIntegrationFixture.cs | |||
| @@ -84,7 +84,7 @@ namespace WixToolsetTest.Converters | |||
| 84 | var settingsFile = Path.Combine(folder, "wixcop.settings.xml"); | 84 | var settingsFile = Path.Combine(folder, "wixcop.settings.xml"); |
| 85 | 85 | ||
| 86 | var result = RunConversion(targetFile, settingsFile: settingsFile); | 86 | var result = RunConversion(targetFile, settingsFile: settingsFile); |
| 87 | Assert.Equal(2, result.ExitCode); | 87 | Assert.Equal(7, result.ExitCode); |
| 88 | 88 | ||
| 89 | var expected = File.ReadAllText(Path.Combine(folder, afterFileName)).Replace("\r\n", "\n"); | 89 | var expected = File.ReadAllText(Path.Combine(folder, afterFileName)).Replace("\r\n", "\n"); |
| 90 | var actual = File.ReadAllText(targetFile).Replace("\r\n", "\n"); | 90 | var actual = File.ReadAllText(targetFile).Replace("\r\n", "\n"); |
| @@ -108,7 +108,7 @@ namespace WixToolsetTest.Converters | |||
| 108 | File.Copy(Path.Combine(folder, beforeFileName), Path.Combine(baseFolder, beforeFileName)); | 108 | File.Copy(Path.Combine(folder, beforeFileName), Path.Combine(baseFolder, beforeFileName)); |
| 109 | 109 | ||
| 110 | var result = RunConversion(targetFile); | 110 | var result = RunConversion(targetFile); |
| 111 | Assert.Equal(2, result.ExitCode); | 111 | Assert.Equal(10, result.ExitCode); |
| 112 | 112 | ||
| 113 | var expected = File.ReadAllText(Path.Combine(folder, afterFileName)).Replace("\r\n", "\n"); | 113 | var expected = File.ReadAllText(Path.Combine(folder, afterFileName)).Replace("\r\n", "\n"); |
| 114 | var actual = File.ReadAllText(targetFile).Replace("\r\n", "\n"); | 114 | var actual = File.ReadAllText(targetFile).Replace("\r\n", "\n"); |
| @@ -133,7 +133,7 @@ namespace WixToolsetTest.Converters | |||
| 133 | 133 | ||
| 134 | var result = RunConversion(targetFile); | 134 | var result = RunConversion(targetFile); |
| 135 | 135 | ||
| 136 | Assert.Equal(2, result.ExitCode); | 136 | Assert.Equal(10, result.ExitCode); |
| 137 | Assert.Single(result.Messages.Where(message => message.ToString().EndsWith("(QtExecCmdTimeoutAmbiguous)"))); | 137 | Assert.Single(result.Messages.Where(message => message.ToString().EndsWith("(QtExecCmdTimeoutAmbiguous)"))); |
| 138 | 138 | ||
| 139 | var expected = File.ReadAllText(Path.Combine(folder, afterFileName)).Replace("\r\n", "\n"); | 139 | var expected = File.ReadAllText(Path.Combine(folder, afterFileName)).Replace("\r\n", "\n"); |
| @@ -142,7 +142,7 @@ namespace WixToolsetTest.Converters | |||
| 142 | 142 | ||
| 143 | // still fails because QtExecCmdTimeoutAmbiguous is unfixable | 143 | // still fails because QtExecCmdTimeoutAmbiguous is unfixable |
| 144 | var result2 = RunConversion(targetFile); | 144 | var result2 = RunConversion(targetFile); |
| 145 | Assert.Equal(2, result2.ExitCode); | 145 | Assert.Equal(1, result2.ExitCode); |
| 146 | } | 146 | } |
| 147 | } | 147 | } |
| 148 | 148 | ||
| @@ -153,7 +153,7 @@ namespace WixToolsetTest.Converters | |||
| 153 | var exitCode = WixRunner.Execute(new[] | 153 | var exitCode = WixRunner.Execute(new[] |
| 154 | { | 154 | { |
| 155 | "convert", | 155 | "convert", |
| 156 | fixErrors ? "-f" : null, | 156 | fixErrors ? null : "--dry-run", |
| 157 | String.IsNullOrEmpty(settingsFile) ? null : "-set1" + settingsFile, | 157 | String.IsNullOrEmpty(settingsFile) ? null : "-set1" + settingsFile, |
| 158 | targetFile | 158 | targetFile |
| 159 | }, serviceProvider, out var messages); | 159 | }, serviceProvider, out var messages); |
diff --git a/src/test/WixToolsetTest.Converters/FormatFixture.cs b/src/test/WixToolsetTest.Converters/FormatFixture.cs new file mode 100644 index 00000000..739fba66 --- /dev/null +++ b/src/test/WixToolsetTest.Converters/FormatFixture.cs | |||
| @@ -0,0 +1,117 @@ | |||
| 1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. | ||
| 2 | |||
| 3 | namespace WixToolsetTest.Converters | ||
| 4 | { | ||
| 5 | using System; | ||
| 6 | using System.Xml.Linq; | ||
| 7 | using WixToolset.Converters; | ||
| 8 | using WixToolsetTest.Converters.Mocks; | ||
| 9 | using Xunit; | ||
| 10 | |||
| 11 | public class FormatFixture : BaseConverterFixture | ||
| 12 | { | ||
| 13 | [Fact] | ||
| 14 | public void CanFixWhitespace() | ||
| 15 | { | ||
| 16 | var parse = String.Join(Environment.NewLine, | ||
| 17 | "<?xml version='1.0' encoding='utf-8'?>", | ||
| 18 | "<Wix xmlns='http://wixtoolset.org/schemas/v4/wxs'>", | ||
| 19 | " <Fragment>", | ||
| 20 | " <Property Id='Prop'", | ||
| 21 | " Value='Val'>", | ||
| 22 | " </Property>", | ||
| 23 | " </Fragment>", | ||
| 24 | "</Wix>"); | ||
| 25 | |||
| 26 | var expected = String.Join(Environment.NewLine, | ||
| 27 | "<Wix xmlns=\"http://wixtoolset.org/schemas/v4/wxs\">", | ||
| 28 | " <Fragment>", | ||
| 29 | " <Property Id=\"Prop\" Value=\"Val\" />", | ||
| 30 | " </Fragment>", | ||
| 31 | "</Wix>"); | ||
| 32 | |||
| 33 | var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo); | ||
| 34 | |||
| 35 | var messaging = new MockMessaging(); | ||
| 36 | var converter = new WixConverter(messaging, 4, null, null); | ||
| 37 | |||
| 38 | var errors = converter.FormatDocument(document); | ||
| 39 | |||
| 40 | var actual = UnformattedDocumentString(document); | ||
| 41 | |||
| 42 | Assert.Equal(expected, actual); | ||
| 43 | Assert.Equal(5, errors); | ||
| 44 | } | ||
| 45 | |||
| 46 | [Fact] | ||
| 47 | public void CanPreserveNewLines() | ||
| 48 | { | ||
| 49 | var parse = String.Join(Environment.NewLine, | ||
| 50 | "<?xml version='1.0' encoding='utf-8'?>", | ||
| 51 | "<Wix xmlns='http://wixtoolset.org/schemas/v4/wxs'>", | ||
| 52 | " <Fragment>", | ||
| 53 | "", | ||
| 54 | " <Property Id='Prop' Value='Val' />", | ||
| 55 | "", | ||
| 56 | " </Fragment>", | ||
| 57 | "</Wix>"); | ||
| 58 | |||
| 59 | var expected = String.Join(Environment.NewLine, | ||
| 60 | "<Wix xmlns=\"http://wixtoolset.org/schemas/v4/wxs\">", | ||
| 61 | " <Fragment>", | ||
| 62 | "", | ||
| 63 | " <Property Id=\"Prop\" Value=\"Val\" />", | ||
| 64 | "", | ||
| 65 | " </Fragment>", | ||
| 66 | "</Wix>"); | ||
| 67 | |||
| 68 | var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo); | ||
| 69 | |||
| 70 | var messaging = new MockMessaging(); | ||
| 71 | var converter = new WixConverter(messaging, 4, null, null); | ||
| 72 | |||
| 73 | var conversions = converter.FormatDocument(document); | ||
| 74 | |||
| 75 | var actual = UnformattedDocumentString(document); | ||
| 76 | |||
| 77 | Assert.Equal(expected, actual); | ||
| 78 | Assert.Equal(4, conversions); | ||
| 79 | } | ||
| 80 | |||
| 81 | [Fact] | ||
| 82 | public void CanFormatWithNewLineAtEndOfFile() | ||
| 83 | { | ||
| 84 | var parse = String.Join(Environment.NewLine, | ||
| 85 | "<Wix xmlns='http://wixtoolset.org/schemas/v4/wxs'>", | ||
| 86 | " <Fragment>", | ||
| 87 | "", | ||
| 88 | " <Property Id='Prop' Value='Val' />", | ||
| 89 | "", | ||
| 90 | " </Fragment>", | ||
| 91 | "</Wix>", | ||
| 92 | ""); | ||
| 93 | |||
| 94 | var expected = String.Join(Environment.NewLine, | ||
| 95 | "<Wix xmlns=\"http://wixtoolset.org/schemas/v4/wxs\">", | ||
| 96 | " <Fragment>", | ||
| 97 | "", | ||
| 98 | " <Property Id=\"Prop\" Value=\"Val\" />", | ||
| 99 | "", | ||
| 100 | " </Fragment>", | ||
| 101 | "</Wix>", | ||
| 102 | ""); | ||
| 103 | |||
| 104 | var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo); | ||
| 105 | |||
| 106 | var messaging = new MockMessaging(); | ||
| 107 | var converter = new WixConverter(messaging, 4, null, null); | ||
| 108 | |||
| 109 | var conversions = converter.FormatDocument(document); | ||
| 110 | |||
| 111 | var actual = UnformattedDocumentString(document); | ||
| 112 | |||
| 113 | Assert.Equal(expected, actual); | ||
| 114 | Assert.Equal(3, conversions); | ||
| 115 | } | ||
| 116 | } | ||
| 117 | } | ||
