aboutsummaryrefslogtreecommitdiff
path: root/src/test/WixToolsetTest.CoreIntegration
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2017-12-01 01:09:42 -0800
committerRob Mensching <rob@firegiant.com>2017-12-01 01:09:42 -0800
commit720c4a0db1a2fb2aa3e08e5c99d5198873e448ba (patch)
tree6794b760149c2f9ff0e01fadc9f2faae5f2c6553 /src/test/WixToolsetTest.CoreIntegration
parent5ee1645db44908f67eee90da9cd0197c60711eae (diff)
downloadwix-720c4a0db1a2fb2aa3e08e5c99d5198873e448ba.tar.gz
wix-720c4a0db1a2fb2aa3e08e5c99d5198873e448ba.tar.bz2
wix-720c4a0db1a2fb2aa3e08e5c99d5198873e448ba.zip
Introduce ExampleExtension for testing
Diffstat (limited to 'src/test/WixToolsetTest.CoreIntegration')
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/ExtensionFixture.cs60
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ExampleExtension/Package.en-us.wxl11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ExampleExtension/Package.wxs21
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ExampleExtension/PackageComponents.wxs12
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ExampleExtension/data/example.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj5
6 files changed, 110 insertions, 0 deletions
diff --git a/src/test/WixToolsetTest.CoreIntegration/ExtensionFixture.cs b/src/test/WixToolsetTest.CoreIntegration/ExtensionFixture.cs
new file mode 100644
index 00000000..5181c748
--- /dev/null
+++ b/src/test/WixToolsetTest.CoreIntegration/ExtensionFixture.cs
@@ -0,0 +1,60 @@
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.IO;
7 using System.Linq;
8 using Example.Extension;
9 using WixToolset.Core;
10 using WixToolset.Data;
11 using WixToolset.Data.Tuples;
12 using WixToolsetTest.CoreIntegration.Utility;
13 using Xunit;
14
15 public class ExtensionFixture
16 {
17 [Fact]
18 public void CanBuildWithExampleExtension()
19 {
20 var folder = TestData.Get(@"TestData\ExampleExtension");
21 var extensionPath = Path.GetFullPath(new Uri(typeof(ExampleExtensionFactory).Assembly.CodeBase).LocalPath);
22
23 using (var fs = new DisposableFileSystem())
24 {
25 var intermediateFolder = fs.GetFolder();
26
27 var program = new Program();
28 var result = program.Run(new WixToolsetServiceProvider(), new[]
29 {
30 "build",
31 Path.Combine(folder, "Package.wxs"),
32 Path.Combine(folder, "PackageComponents.wxs"),
33 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
34 "-ext", extensionPath,
35 "-bindpath", Path.Combine(folder, "data"),
36 "-intermediateFolder", intermediateFolder,
37 "-o", Path.Combine(intermediateFolder, @"bin\extest.msi")
38 });
39
40 Assert.Equal(0, result);
41
42 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\extest.msi")));
43 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\extest.wixpdb")));
44 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\MsiPackage\example.txt")));
45
46 var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"bin\extest.wir"));
47 Assert.Single(intermediate.Sections);
48
49 var wixFile = intermediate.Sections.SelectMany(s => s.Tuples).OfType<WixFileTuple>().Single();
50 Assert.Equal(Path.Combine(folder, @"data\example.txt"), wixFile[WixFileTupleFields.Source].AsPath().Path);
51 Assert.Equal(@"example.txt", wixFile[WixFileTupleFields.Source].PreviousValue.AsPath().Path);
52
53 var example = intermediate.Sections.SelectMany(s => s.Tuples).Where(t => t.Definition.Type == TupleDefinitionType.MustBeFromAnExtension).Single();
54 Assert.Equal("Foo", example.Id.Id);
55 Assert.Equal("Foo", example[0].AsString());
56 Assert.Equal("Bar", example[1].AsString());
57 }
58 }
59 }
60}
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ExampleExtension/Package.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/ExampleExtension/Package.en-us.wxl
new file mode 100644
index 00000000..38c12ac1
--- /dev/null
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/ExampleExtension/Package.en-us.wxl
@@ -0,0 +1,11 @@
1<?xml version="1.0" encoding="utf-8"?>
2
3<!--
4This 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>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ExampleExtension/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/ExampleExtension/Package.wxs
new file mode 100644
index 00000000..cdc323ec
--- /dev/null
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/ExampleExtension/Package.wxs
@@ -0,0 +1,21 @@
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 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7 <MediaTemplate />
8
9 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
10 <ComponentGroupRef Id="ProductComponents" />
11 </Feature>
12 </Product>
13
14 <Fragment>
15 <Directory Id="TARGETDIR" Name="SourceDir">
16 <Directory Id="ProgramFilesFolder">
17 <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
18 </Directory>
19 </Directory>
20 </Fragment>
21</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ExampleExtension/PackageComponents.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/ExampleExtension/PackageComponents.wxs
new file mode 100644
index 00000000..7f17b538
--- /dev/null
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/ExampleExtension/PackageComponents.wxs
@@ -0,0 +1,12 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
3 xmlns:ex="http://www.example.com/scheams/v1/wxs">
4 <Fragment>
5 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
6 <Component>
7 <File Source="example.txt" />
8 <ex:Example Id="Foo" Value="Bar" />
9 </Component>
10 </ComponentGroup>
11 </Fragment>
12</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ExampleExtension/data/example.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/ExampleExtension/data/example.txt
new file mode 100644
index 00000000..1b4ffe8a
--- /dev/null
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/ExampleExtension/data/example.txt
@@ -0,0 +1 @@
This is example.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj b/src/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj
index f9042cda..ede5967f 100644
--- a/src/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj
+++ b/src/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj
@@ -15,6 +15,10 @@
15 <Content Include="TestData\InstanceTransform\Package.en-us.wxl" CopyToOutputDirectory="PreserveNewest" /> 15 <Content Include="TestData\InstanceTransform\Package.en-us.wxl" CopyToOutputDirectory="PreserveNewest" />
16 <Content Include="TestData\InstanceTransform\Package.wxs" CopyToOutputDirectory="PreserveNewest" /> 16 <Content Include="TestData\InstanceTransform\Package.wxs" CopyToOutputDirectory="PreserveNewest" />
17 <Content Include="TestData\InstanceTransform\PackageComponents.wxs" CopyToOutputDirectory="PreserveNewest" /> 17 <Content Include="TestData\InstanceTransform\PackageComponents.wxs" CopyToOutputDirectory="PreserveNewest" />
18 <Content Include="TestData\ExampleExtension\data\example.txt" CopyToOutputDirectory="PreserveNewest" />
19 <Content Include="TestData\ExampleExtension\Package.en-us.wxl" CopyToOutputDirectory="PreserveNewest" />
20 <Content Include="TestData\ExampleExtension\Package.wxs" CopyToOutputDirectory="PreserveNewest" />
21 <Content Include="TestData\ExampleExtension\PackageComponents.wxs" CopyToOutputDirectory="PreserveNewest" />
18 <Content Include="TestData\SingleFile\data\test.txt" CopyToOutputDirectory="PreserveNewest" /> 22 <Content Include="TestData\SingleFile\data\test.txt" CopyToOutputDirectory="PreserveNewest" />
19 <Content Include="TestData\SingleFile\Package.en-us.wxl" CopyToOutputDirectory="PreserveNewest" /> 23 <Content Include="TestData\SingleFile\Package.en-us.wxl" CopyToOutputDirectory="PreserveNewest" />
20 <Content Include="TestData\SingleFile\Package.wxs" CopyToOutputDirectory="PreserveNewest" /> 24 <Content Include="TestData\SingleFile\Package.wxs" CopyToOutputDirectory="PreserveNewest" />
@@ -23,6 +27,7 @@
23 27
24 <ItemGroup> 28 <ItemGroup>
25 <ProjectReference Include="..\..\wix\wix.csproj" /> 29 <ProjectReference Include="..\..\wix\wix.csproj" />
30 <ProjectReference Include="..\Example.Extension\Example.Extension.csproj" />
26 </ItemGroup> 31 </ItemGroup>
27 32
28 <ItemGroup> 33 <ItemGroup>