diff options
author | Rob Mensching <rob@firegiant.com> | 2021-03-02 11:26:55 -0800 |
---|---|---|
committer | Rob Mensching <rob@firegiant.com> | 2021-03-03 12:03:35 -0800 |
commit | e362f93f9fa9ed4b174333d44fcda25790bc85e0 (patch) | |
tree | eaedb4854b97b3333bbdb9102416a699a0175209 /src/test | |
parent | a13f13130b84845fed54f812e2ad33136c7649cb (diff) | |
download | wix-e362f93f9fa9ed4b174333d44fcda25790bc85e0.tar.gz wix-e362f93f9fa9ed4b174333d44fcda25790bc85e0.tar.bz2 wix-e362f93f9fa9ed4b174333d44fcda25790bc85e0.zip |
Add test to verify patches without files work
Resolves wixtoolset/issues#4912
Diffstat (limited to 'src/test')
4 files changed, 74 insertions, 0 deletions
diff --git a/src/test/WixToolsetTest.CoreIntegration/PatchFixture.cs b/src/test/WixToolsetTest.CoreIntegration/PatchFixture.cs index dda4ca28..788cc01f 100644 --- a/src/test/WixToolsetTest.CoreIntegration/PatchFixture.cs +++ b/src/test/WixToolsetTest.CoreIntegration/PatchFixture.cs | |||
@@ -53,6 +53,38 @@ namespace WixToolsetTest.CoreIntegration | |||
53 | } | 53 | } |
54 | 54 | ||
55 | [Fact] | 55 | [Fact] |
56 | public void CanBuildSimplePatchWithNoFileChanges() | ||
57 | { | ||
58 | var folder = TestData.Get(@"TestData\PatchNoFileChanges"); | ||
59 | |||
60 | using (var fs = new DisposableFileSystem()) | ||
61 | { | ||
62 | var tempFolder = fs.GetFolder(); | ||
63 | |||
64 | var baselinePdb = BuildMsi("Baseline.msi", folder, tempFolder, "1.0.0", "1.0.0", "1.0.0"); | ||
65 | var update1Pdb = BuildMsi("Update.msi", folder, tempFolder, "1.0.1", "1.0.1", "1.0.1"); | ||
66 | var patchPdb = BuildMsp("Patch1.msp", folder, tempFolder, "1.0.1", hasNoFiles: true); | ||
67 | var patchPath = Path.ChangeExtension(patchPdb, ".msp"); | ||
68 | |||
69 | Assert.True(File.Exists(baselinePdb)); | ||
70 | Assert.True(File.Exists(update1Pdb)); | ||
71 | |||
72 | var doc = GetExtractPatchXml(patchPath); | ||
73 | Assert.Equal("{7D326855-E790-4A94-8611-5351F8321FCA}", doc.Root.Element(PatchNamespace + "TargetProductCode").Value); | ||
74 | |||
75 | var names = Query.GetSubStorageNames(patchPath); | ||
76 | Assert.Equal(new[] { "#RTM.1", "RTM.1" }, names); | ||
77 | |||
78 | var cab = Path.Combine(tempFolder, "foo.cab"); | ||
79 | Query.ExtractStream(patchPath, "foo.cab", cab); | ||
80 | Assert.True(File.Exists(cab)); | ||
81 | |||
82 | var files = Query.GetCabinetFiles(cab); | ||
83 | Assert.Empty(files); | ||
84 | } | ||
85 | } | ||
86 | |||
87 | [Fact] | ||
56 | public void CanBuildBundleWithNonSpecificPatches() | 88 | public void CanBuildBundleWithNonSpecificPatches() |
57 | { | 89 | { |
58 | var folder = TestData.Get(@"TestData\PatchNonSpecific"); | 90 | var folder = TestData.Get(@"TestData\PatchNonSpecific"); |
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNoFileChanges/.data/A.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNoFileChanges/.data/A.txt new file mode 100644 index 00000000..6fd385bd --- /dev/null +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNoFileChanges/.data/A.txt | |||
@@ -0,0 +1 @@ | |||
This is A v1.0.0 | |||
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNoFileChanges/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNoFileChanges/Package.wxs new file mode 100644 index 00000000..9d530376 --- /dev/null +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNoFileChanges/Package.wxs | |||
@@ -0,0 +1,25 @@ | |||
1 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> | ||
2 | <Package Name="~Test Package" Version="$(V)" Manufacturer="Example Corporation" Language="1033" UpgradeCode="7d326855-e790-4a94-8611-5351f8321fca" Compressed="yes" Scope="perMachine" ProductCode="7d326855-e790-4a94-8611-5351f8321fca"> | ||
3 | |||
4 | <MajorUpgrade DowngradeErrorMessage="Newer version already installed." /> | ||
5 | <MediaTemplate EmbedCab="yes" /> | ||
6 | |||
7 | <Directory Id="INSTALLFOLDER" Name="ProgramFilesFolder:\~Test App" /> | ||
8 | |||
9 | <Feature Id="Main"> | ||
10 | <ComponentGroupRef Id="Components" /> | ||
11 | </Feature> | ||
12 | </Package> | ||
13 | |||
14 | <Fragment> | ||
15 | <ComponentGroup Id="Components" Directory="INSTALLFOLDER"> | ||
16 | <Component> | ||
17 | <File Id="a.txt" Name="a.txt" Source="A.txt" /> | ||
18 | </Component> | ||
19 | |||
20 | <Component> | ||
21 | <RegistryValue Root="HKLM" Key="SOFTWARE\!(bind.property.ProductName)\Patch" Name="Version" Value="$(V)" /> | ||
22 | </Component> | ||
23 | </ComponentGroup> | ||
24 | </Fragment> | ||
25 | </Wix> | ||
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNoFileChanges/Patch.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNoFileChanges/Patch.wxs new file mode 100644 index 00000000..889b1220 --- /dev/null +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNoFileChanges/Patch.wxs | |||
@@ -0,0 +1,16 @@ | |||
1 | <Wix xmlns='http://wixtoolset.org/schemas/v4/wxs'> | ||
2 | <Patch | ||
3 | AllowRemoval="yes" | ||
4 | DisplayName="~Test Patch v$(V)" | ||
5 | Description="~Test Small Update Patch v$(V)" | ||
6 | MoreInfoURL="http://www.example.com/" | ||
7 | Manufacturer="Example Corporation" | ||
8 | Classification="Update"> | ||
9 | |||
10 | <Media Id="1" Cabinet="foo.cab"> | ||
11 | <PatchBaseline Id="RTM" BaselineFile="Baseline.wixpdb" UpdateFile="Update.wixpdb" /> | ||
12 | </Media> | ||
13 | |||
14 | <PatchFamily Id='SequenceFamily' Version='$(V)' /> | ||
15 | </Patch> | ||
16 | </Wix> | ||