aboutsummaryrefslogtreecommitdiff
path: root/src/test/WixToolsetTest.CoreIntegration/RegistryFixture.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/WixToolsetTest.CoreIntegration/RegistryFixture.cs')
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/RegistryFixture.cs114
1 files changed, 114 insertions, 0 deletions
diff --git a/src/test/WixToolsetTest.CoreIntegration/RegistryFixture.cs b/src/test/WixToolsetTest.CoreIntegration/RegistryFixture.cs
new file mode 100644
index 00000000..2a1e2a49
--- /dev/null
+++ b/src/test/WixToolsetTest.CoreIntegration/RegistryFixture.cs
@@ -0,0 +1,114 @@
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
3namespace WixToolsetTest.CoreIntegration
4{
5 using System;
6 using System.Collections.Generic;
7 using System.IO;
8 using System.Linq;
9 using System.Text;
10 using WixBuildTools.TestSupport;
11 using WixToolset.Core.TestPackage;
12 using WixToolset.Data;
13 using Xunit;
14
15 public class RegistryFixture
16 {
17 [Fact]
18 public void PopulatesRegistryTableFromRegistryValue()
19 {
20 var folder = TestData.Get(@"TestData");
21
22 using (var fs = new DisposableFileSystem())
23 {
24 var baseFolder = fs.GetFolder();
25 var intermediateFolder = Path.Combine(baseFolder, "obj");
26 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
27
28 var result = WixRunner.Execute(new[]
29 {
30 "build",
31 Path.Combine(folder, "Registry", "RegistryValue.wxs"),
32 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
33 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
34 "-intermediateFolder", intermediateFolder,
35 "-o", msiPath
36 });
37
38 result.AssertSuccess();
39
40 Assert.True(File.Exists(msiPath));
41 var results = Query.QueryDatabase(msiPath, new[] { "Registry" });
42 Assert.Equal(new[]
43 {
44 "Registry:reg04OIwIchl.9ZTjisTT6NzGSsQSM\t2\tPath\\To\\AnotherKey\tSecret\t#x\tMiscComponent",
45 "Registry:regEblTuusqFNSUQNy88zaP_UA5kIY\t2\tPath\\To\\Key\t\t1.0.1234.123\tMiscComponent",
46 }, results);
47 }
48 }
49
50 [Fact]
51 public void PopulatesRegistryTableFromRegistryValueMultiString()
52 {
53 var folder = TestData.Get(@"TestData");
54
55 using (var fs = new DisposableFileSystem())
56 {
57 var baseFolder = fs.GetFolder();
58 var intermediateFolder = Path.Combine(baseFolder, "obj");
59 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
60
61 var result = WixRunner.Execute(new[]
62 {
63 "build",
64 Path.Combine(folder, "Registry", "RegistryValueMultiString.wxs"),
65 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
66 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
67 "-intermediateFolder", intermediateFolder,
68 "-o", msiPath
69 });
70
71 result.AssertSuccess();
72
73 var results = Query.QueryDatabase(msiPath, new[] { "Registry" });
74 Assert.Equal(new[]
75 {
76 "Registry:regitq_Wx9LfvJuNSc2un6gIHAzr4A\t2\tPath\\To\\AnotherKey\tSecret\t#x\tMultiStringComponent",
77 "Registry:regmeTJMpOD41igfxhTcUVZ7kNG1Mo\t2\tPath\\To\\Key\t\ta[~]b[~]c\tMultiStringComponent",
78 }, results);
79 }
80 }
81
82 [Fact]
83 public void PopulatesRegistryTableFromRemoveRegistryKey()
84 {
85 var folder = TestData.Get(@"TestData");
86
87 using (var fs = new DisposableFileSystem())
88 {
89 var baseFolder = fs.GetFolder();
90 var intermediateFolder = Path.Combine(baseFolder, "obj");
91 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
92
93 var result = WixRunner.Execute(new[]
94 {
95 "build",
96 Path.Combine(folder, "Registry", "RemoveRegistryKey.wxs"),
97 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
98 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
99 "-intermediateFolder", intermediateFolder,
100 "-o", msiPath
101 });
102
103 result.AssertSuccess();
104
105 Assert.True(File.Exists(msiPath));
106 var results = Query.QueryDatabase(msiPath, new[] { "Registry" });
107 Assert.Equal(new[]
108 {
109 "Registry:RemoveAKeyName\t2\tAKeyName\t-\t\tRemoveRegistryKeyComp",
110 }, results);
111 }
112 }
113 }
114}