@joebigelow / wix-1 / commits / b71c36c6

Add failing ManualUpgrade test for issue resolving RemoveExistingProducts.

Bob Arnson committed Dec 11, 2017 at 19:16 UTC b71c36c6fdc44268de75540474c639b64e53f1b7
6 files changed +90
src/test/WixToolsetTest.CoreIntegration/ProgramFixture.cs
+36
@@ -209,6 +209,42 @@ namespace WixToolsetTest.CoreIntegration
209 }
210 }
211
212 + [Fact]
213 + public void CanBuildManualUpgrade()
214 + {
215 + var folder = TestData.Get(@"TestData\ManualUpgrade");
216 +
217 + using (var fs = new DisposableFileSystem())
218 + {
219 + var intermediateFolder = fs.GetFolder();
220 +
221 + var program = new Program();
222 + var result = program.Run(new WixToolsetServiceProvider(), new[]
223 + {
224 + "build",
225 + Path.Combine(folder, "Package.wxs"),
226 + Path.Combine(folder, "PackageComponents.wxs"),
227 + "-loc", Path.Combine(folder, "Package.en-us.wxl"),
228 + "-bindpath", Path.Combine(folder, "data"),
229 + "-intermediateFolder", intermediateFolder,
230 + "-o", Path.Combine(intermediateFolder, @"bin\test.msi")
231 + });
232 +
233 + Assert.Equal(0, result);
234 +
235 + Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.msi")));
236 + Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.wixpdb")));
237 + Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\MsiPackage\test.txt")));
238 +
239 + var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"bin\test.wir"));
240 + var section = intermediate.Sections.Single();
241 +
242 + var wixFile = section.Tuples.OfType<WixFileTuple>().Single();
243 + Assert.Equal(Path.Combine(folder, @"data\test.txt"), wixFile[WixFileTupleFields.Source].AsPath().Path);
244 + Assert.Equal(@"test.txt", wixFile[WixFileTupleFields.Source].PreviousValue.AsPath().Path);
245 + }
246 + }
247 +
248 [Fact(Skip = "Not implemented yet.")]
249 public void CanBuildInstanceTransform()
250 {
src/test/WixToolsetTest.CoreIntegration/TestData/ManualUpgrade/Package.en-us.wxl new
+11
@@ -0,0 +1,11 @@
1 +<?xml version="1.0" encoding="utf-8"?>
2 +
3 +<!--
4 +This file contains the declaration of all the localizable strings.
5 +-->
6 +<WixLocalization xmlns="http://wixtoolset.org/schemas/v4/wxl" Culture="en-US">
7 +
8 + <String Id="DowngradeError">A newer version of [ProductName] is already installed.</String>
9 + <String Id="FeatureTitle">MsiPackage</String>
10 +
11 +</WixLocalization>
src/test/WixToolsetTest.CoreIntegration/TestData/ManualUpgrade/Package.wxs new
+28
@@ -0,0 +1,28 @@
1 +<?xml version="1.0" encoding="utf-8"?>
2 +<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 + <Product Id="*" Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a">
4 + <Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
5 +
6 + <Upgrade Id="01120000-00E0-0000-0000-0000000FF1CE">
7 + <UpgradeVersion ExcludeLanguages="no" IgnoreRemoveFailure="yes" IncludeMaximum="no" IncludeMinimum="yes" Maximum="13.0.0" Minimum="12.0.0" OnlyDetect="no" Property="BLAHBLAHBLAH" />
8 + </Upgrade>
9 +
10 + <InstallExecuteSequence>
11 + <RemoveExistingProducts After="InstallValidate" />
12 + </InstallExecuteSequence>
13 +
14 + <MediaTemplate />
15 +
16 + <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
17 + <ComponentGroupRef Id="ProductComponents" />
18 + </Feature>
19 + </Product>
20 +
21 + <Fragment>
22 + <Directory Id="TARGETDIR" Name="SourceDir">
23 + <Directory Id="ProgramFilesFolder">
24 + <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
25 + </Directory>
26 + </Directory>
27 + </Fragment>
28 +</Wix>
src/test/WixToolsetTest.CoreIntegration/TestData/ManualUpgrade/PackageComponents.wxs new
+10
@@ -0,0 +1,10 @@
1 +<?xml version="1.0" encoding="utf-8"?>
2 +<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 + <Fragment>
4 + <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
5 + <Component>
6 + <File Source="test.txt" />
7 + </Component>
8 + </ComponentGroup>
9 + </Fragment>
10 +</Wix>
src/test/WixToolsetTest.CoreIntegration/TestData/ManualUpgrade/data/test.txt new
+1
@@ -0,0 +1 @@
1 +This is test.txt.
\ No newline at end of file
src/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj
+4
@@ -31,6 +31,10 @@
31 <Content Include="TestData\MultiFileCompressed\Package.en-us.wxl" CopyToOutputDirectory="PreserveNewest" />
32 <Content Include="TestData\MultiFileCompressed\Package.wxs" CopyToOutputDirectory="PreserveNewest" />
33 <Content Include="TestData\MultiFileCompressed\PackageComponents.wxs" CopyToOutputDirectory="PreserveNewest" />
34 + <Content Include="TestData\ManualUpgrade\data\test.txt" CopyToOutputDirectory="PreserveNewest" />
35 + <Content Include="TestData\ManualUpgrade\Package.en-us.wxl" CopyToOutputDirectory="PreserveNewest" />
36 + <Content Include="TestData\ManualUpgrade\Package.wxs" CopyToOutputDirectory="PreserveNewest" />
37 + <Content Include="TestData\ManualUpgrade\PackageComponents.wxs" CopyToOutputDirectory="PreserveNewest" />
38 </ItemGroup>
39
40 <ItemGroup>