aboutsummaryrefslogtreecommitdiff
path: root/src/test/WixToolsetTest.CoreIntegration/LanguageFixture.cs
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2021-04-02 14:41:49 -0700
committerRob Mensching <rob@firegiant.com>2021-04-02 14:58:00 -0700
commit4449fcc5b8d104817c67135229682c66c3d892ca (patch)
tree327f617de2e296ddb4e62c50bf07ec8b5dcf0a3e /src/test/WixToolsetTest.CoreIntegration/LanguageFixture.cs
parent9cca339473d77c7036035f949239f5231c325968 (diff)
downloadwix-4449fcc5b8d104817c67135229682c66c3d892ca.tar.gz
wix-4449fcc5b8d104817c67135229682c66c3d892ca.tar.bz2
wix-4449fcc5b8d104817c67135229682c66c3d892ca.zip
Enable codepages and languages to be set via .wxl files
Fixes wixtoolset/issues#5801
Diffstat (limited to 'src/test/WixToolsetTest.CoreIntegration/LanguageFixture.cs')
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/LanguageFixture.cs155
1 files changed, 155 insertions, 0 deletions
diff --git a/src/test/WixToolsetTest.CoreIntegration/LanguageFixture.cs b/src/test/WixToolsetTest.CoreIntegration/LanguageFixture.cs
new file mode 100644
index 00000000..319b0788
--- /dev/null
+++ b/src/test/WixToolsetTest.CoreIntegration/LanguageFixture.cs
@@ -0,0 +1,155 @@
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.IO;
6 using System.Linq;
7 using WixBuildTools.TestSupport;
8 using WixToolset.Core.TestPackage;
9 using WixToolset.Data;
10 using WixToolset.Data.Symbols;
11 using Xunit;
12
13 public class LanguageFixture
14 {
15 [Fact]
16 public void CanBuildWithDefaultProductLanguage()
17 {
18 var folder = TestData.Get(@"TestData", "Language");
19
20 using (var fs = new DisposableFileSystem())
21 {
22 var baseFolder = fs.GetFolder();
23
24 var result = WixRunner.Execute(new[]
25 {
26 "build",
27 Path.Combine(folder, "Package.wxs"),
28 "-loc", Path.Combine(folder, "Package.wxl"),
29 "-bindpath", Path.Combine(folder, "data"),
30 "-intermediateFolder", Path.Combine(baseFolder, "obj"),
31 "-o", Path.Combine(baseFolder, @"bin\test.msi")
32 });
33
34 result.AssertSuccess();
35
36 var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
37 var section = intermediate.Sections.Single();
38
39 var propertySymbol = section.Symbols.OfType<PropertySymbol>().Single(p => p.Id.Id == "ProductLanguage");
40 Assert.Equal("0", propertySymbol.Value);
41
42 var summaryPlatform = section.Symbols.OfType<SummaryInformationSymbol>().Single(s => s.PropertyId == SummaryInformationType.PlatformAndLanguage);
43 Assert.Equal("Intel;0", summaryPlatform.Value);
44
45 var summaryCodepage = section.Symbols.OfType<SummaryInformationSymbol>().Single(s => s.PropertyId == SummaryInformationType.Codepage);
46 Assert.Equal("1252", summaryCodepage.Value);
47 }
48 }
49
50 [Fact]
51 public void CanBuildEnuWxl()
52 {
53 var folder = TestData.Get(@"TestData", "Language");
54
55 using (var fs = new DisposableFileSystem())
56 {
57 var baseFolder = fs.GetFolder();
58
59 var result = WixRunner.Execute(new[]
60 {
61 "build",
62 Path.Combine(folder, "Package.wxs"),
63 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
64 "-bindpath", Path.Combine(folder, "data"),
65 "-intermediateFolder", Path.Combine(baseFolder, "obj"),
66 "-o", Path.Combine(baseFolder, @"bin\test.msi")
67 });
68
69 result.AssertSuccess();
70
71 var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
72 var section = intermediate.Sections.Single();
73
74 var propertySymbol = section.Symbols.OfType<PropertySymbol>().Single(p => p.Id.Id == "ProductLanguage");
75 Assert.Equal("1033", propertySymbol.Value);
76
77 var summaryPlatform = section.Symbols.OfType<SummaryInformationSymbol>().Single(s => s.PropertyId == SummaryInformationType.PlatformAndLanguage);
78 Assert.Equal("Intel;1033", summaryPlatform.Value);
79
80 var summaryCodepage = section.Symbols.OfType<SummaryInformationSymbol>().Single(s => s.PropertyId == SummaryInformationType.Codepage);
81 Assert.Equal("1252", summaryCodepage.Value);
82 }
83 }
84
85 [Fact]
86 public void CanBuildJpnWxl()
87 {
88 var folder = TestData.Get(@"TestData", "Language");
89
90 using (var fs = new DisposableFileSystem())
91 {
92 var baseFolder = fs.GetFolder();
93
94 var result = WixRunner.Execute(new[]
95 {
96 "build",
97 Path.Combine(folder, "Package.wxs"),
98 "-loc", Path.Combine(folder, "Package.ja-jp.wxl"),
99 "-bindpath", Path.Combine(folder, "data"),
100 "-intermediateFolder", Path.Combine(baseFolder, "obj"),
101 "-o", Path.Combine(baseFolder, @"bin\test.msi")
102 });
103
104 result.AssertSuccess();
105
106 var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
107 var section = intermediate.Sections.Single();
108
109 var propertySymbol = section.Symbols.OfType<PropertySymbol>().Single(p => p.Id.Id == "ProductLanguage");
110 Assert.Equal("1041", propertySymbol.Value);
111
112 var summaryPlatform = section.Symbols.OfType<SummaryInformationSymbol>().Single(s => s.PropertyId == SummaryInformationType.PlatformAndLanguage);
113 Assert.Equal("Intel;1041", summaryPlatform.Value);
114
115 var summaryCodepage = section.Symbols.OfType<SummaryInformationSymbol>().Single(s => s.PropertyId == SummaryInformationType.Codepage);
116 Assert.Equal("932", summaryCodepage.Value);
117 }
118 }
119
120 [Fact]
121 public void CanBuildJpnWxlWithEnuSummaryInfo()
122 {
123 var folder = TestData.Get(@"TestData", "Language");
124
125 using (var fs = new DisposableFileSystem())
126 {
127 var baseFolder = fs.GetFolder();
128
129 var result = WixRunner.Execute(new[]
130 {
131 "build",
132 Path.Combine(folder, "Package.wxs"),
133 "-loc", Path.Combine(folder, "PackageWithEnSummaryInfo.ja-jp.wxl"),
134 "-bindpath", Path.Combine(folder, "data"),
135 "-intermediateFolder", Path.Combine(baseFolder, "obj"),
136 "-o", Path.Combine(baseFolder, @"bin\test.msi")
137 });
138
139 result.AssertSuccess();
140
141 var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
142 var section = intermediate.Sections.Single();
143
144 var propertySymbol = section.Symbols.OfType<PropertySymbol>().Single(p => p.Id.Id == "ProductLanguage");
145 Assert.Equal("1041", propertySymbol.Value);
146
147 var summaryPlatform = section.Symbols.OfType<SummaryInformationSymbol>().Single(s => s.PropertyId == SummaryInformationType.PlatformAndLanguage);
148 Assert.Equal("Intel;1041", summaryPlatform.Value);
149
150 var summaryCodepage = section.Symbols.OfType<SummaryInformationSymbol>().Single(s => s.PropertyId == SummaryInformationType.Codepage);
151 Assert.Equal("1252", summaryCodepage.Value);
152 }
153 }
154 }
155}