aboutsummaryrefslogtreecommitdiff
path: root/src/test/WixToolsetTest.WixCop/WixCopFixture.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/WixToolsetTest.WixCop/WixCopFixture.cs')
-rw-r--r--src/test/WixToolsetTest.WixCop/WixCopFixture.cs94
1 files changed, 94 insertions, 0 deletions
diff --git a/src/test/WixToolsetTest.WixCop/WixCopFixture.cs b/src/test/WixToolsetTest.WixCop/WixCopFixture.cs
index 9877f9c8..207782b7 100644
--- a/src/test/WixToolsetTest.WixCop/WixCopFixture.cs
+++ b/src/test/WixToolsetTest.WixCop/WixCopFixture.cs
@@ -3,6 +3,7 @@
3namespace WixToolsetTest.WixCop 3namespace WixToolsetTest.WixCop
4{ 4{
5 using System.IO; 5 using System.IO;
6 using System.Linq;
6 using WixBuildTools.TestSupport; 7 using WixBuildTools.TestSupport;
7 using Xunit; 8 using Xunit;
8 9
@@ -99,5 +100,98 @@ namespace WixToolsetTest.WixCop
99 Assert.Equal(0, result2.ExitCode); 100 Assert.Equal(0, result2.ExitCode);
100 } 101 }
101 } 102 }
103
104 [Fact]
105 public void CanConvertQtExec()
106 {
107 const string beforeFileName = "v3.wxs";
108 const string afterFileName = "v4_expected.wxs";
109 var folder = TestData.Get(@"TestData\QtExec");
110
111 using (var fs = new DisposableFileSystem())
112 {
113 var baseFolder = fs.GetFolder(true);
114 var targetFile = Path.Combine(baseFolder, beforeFileName);
115 File.Copy(Path.Combine(folder, beforeFileName), Path.Combine(baseFolder, beforeFileName));
116
117 var runner = new WixCopRunner
118 {
119 FixErrors = true,
120 SearchPatterns =
121 {
122 targetFile,
123 },
124 };
125
126 var result = runner.Execute();
127
128 Assert.Equal(2, result.ExitCode);
129
130 var expected = File.ReadAllText(Path.Combine(folder, afterFileName)).Replace("\r\n", "\n");
131 var actual = File.ReadAllText(targetFile).Replace("\r\n", "\n");
132 Assert.Equal(expected, actual);
133
134 var runner2 = new WixCopRunner
135 {
136 FixErrors = true,
137 SearchPatterns =
138 {
139 targetFile,
140 },
141 };
142
143 var result2 = runner2.Execute();
144
145 Assert.Equal(0, result2.ExitCode);
146 }
147 }
148
149 [Fact]
150 public void DetectUnconvertableQtExecCmdTimeout()
151 {
152 const string beforeFileName = "v3.wxs";
153 const string afterFileName = "v4_expected.wxs";
154 var folder = TestData.Get(@"TestData\QtExec.bad");
155
156 using (var fs = new DisposableFileSystem())
157 {
158 var baseFolder = fs.GetFolder(true);
159 var targetFile = Path.Combine(baseFolder, beforeFileName);
160 File.Copy(Path.Combine(folder, beforeFileName), Path.Combine(baseFolder, beforeFileName));
161
162 var runner = new WixCopRunner
163 {
164 FixErrors = true,
165 SearchPatterns =
166 {
167 targetFile,
168 },
169 };
170
171 var result = runner.Execute();
172
173 Assert.Equal(2, result.ExitCode);
174
175 Assert.Single(result.Messages.Where(message => message.ToString().EndsWith("(QtExecCmdTimeoutAmbiguous)")));
176
177 var expected = File.ReadAllText(Path.Combine(folder, afterFileName)).Replace("\r\n", "\n");
178 var actual = File.ReadAllText(targetFile).Replace("\r\n", "\n");
179 Assert.Equal(expected, actual);
180
181 // still fails because QtExecCmdTimeoutAmbiguous is unfixable
182 var runner2 = new WixCopRunner
183 {
184 FixErrors = true,
185 SearchPatterns =
186 {
187 targetFile,
188 },
189 };
190
191 var result2 = runner2.Execute();
192
193 Assert.Equal(2, result2.ExitCode);
194 }
195 }
102 } 196 }
103} 197}