diff options
Diffstat (limited to 'src/test/WixToolsetTest.WixCop/WixCopFixture.cs')
-rw-r--r-- | src/test/WixToolsetTest.WixCop/WixCopFixture.cs | 94 |
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 @@ | |||
3 | namespace WixToolsetTest.WixCop | 3 | namespace 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 | } |