aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/CabFixture.cs2
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/MediaFixture.cs62
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Media/MultiMedia.wxs28
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Media/data/a1.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Media/data/a2.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Media/data/b1.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Media/data/b2.txt1
7 files changed, 95 insertions, 1 deletions
diff --git a/src/test/WixToolsetTest.CoreIntegration/CabFixture.cs b/src/test/WixToolsetTest.CoreIntegration/CabFixture.cs
index 5aef148e..ad62dea6 100644
--- a/src/test/WixToolsetTest.CoreIntegration/CabFixture.cs
+++ b/src/test/WixToolsetTest.CoreIntegration/CabFixture.cs
@@ -42,7 +42,7 @@ namespace WixToolsetTest.CoreIntegration
42 var fileRows = fileTable.Select(r => new FileRow(r)).OrderBy(f => f.Sequence).ToList(); 42 var fileRows = fileTable.Select(r => new FileRow(r)).OrderBy(f => f.Sequence).ToList();
43 43
44 Assert.Equal(new[] { 1, 2 }, fileRows.Select(f => f.Sequence).ToArray()); 44 Assert.Equal(new[] { 1, 2 }, fileRows.Select(f => f.Sequence).ToArray());
45 Assert.Equal(new[] { "test.txt", "Notepad.exe" }, fileRows.Select(f => f.Name).ToArray()); 45 Assert.Equal(new[] { "Notepad.exe", "test.txt" }, fileRows.Select(f => f.Name).ToArray());
46 46
47 var files = Query.GetCabinetFiles(cabPath); 47 var files = Query.GetCabinetFiles(cabPath);
48 Assert.Equal(fileRows.Select(f => f.Id).ToArray(), files.Select(f => f.Name).ToArray()); 48 Assert.Equal(fileRows.Select(f => f.Id).ToArray(), files.Select(f => f.Name).ToArray());
diff --git a/src/test/WixToolsetTest.CoreIntegration/MediaFixture.cs b/src/test/WixToolsetTest.CoreIntegration/MediaFixture.cs
new file mode 100644
index 00000000..de18e30c
--- /dev/null
+++ b/src/test/WixToolsetTest.CoreIntegration/MediaFixture.cs
@@ -0,0 +1,62 @@
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 Xunit;
11
12 public class MediaFixture
13 {
14 [Fact]
15 public void CanBuildMultiMedia()
16 {
17 var folder = TestData.Get(@"TestData");
18
19 using (var fs = new DisposableFileSystem())
20 {
21 var baseFolder = fs.GetFolder();
22 var intermediateFolder = Path.Combine(baseFolder, "obj");
23 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
24
25 var result = WixRunner.Execute(new[]
26 {
27 "build",
28 Path.Combine(folder, "Media", "MultiMedia.wxs"),
29 "-bindpath", Path.Combine(folder, "Media", "data"),
30 "-intermediateFolder", intermediateFolder,
31 "-o", msiPath
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 mediaSymbols = section.Symbols.OfType<WixToolset.Data.Symbols.MediaSymbol>().OrderBy(m => m.DiskId).ToList();
40 var fileSymbols = section.Symbols.OfType<WixToolset.Data.Symbols.FileSymbol>().OrderBy(f => f.Sequence).ToList();
41 Assert.Equal(1, mediaSymbols[0].DiskId);
42 Assert.Equal(2, mediaSymbols[0].LastSequence);
43 Assert.Equal(2, mediaSymbols[1].DiskId);
44 Assert.Equal(4, mediaSymbols[1].LastSequence);
45 Assert.Equal(new[]
46 {
47 "a1.txt",
48 "a2.txt",
49 "b1.txt",
50 "b2.txt",
51 }, fileSymbols.Select(f => f.Name).ToArray());
52 Assert.Equal(new[]
53 {
54 1,
55 2,
56 3,
57 4,
58 }, fileSymbols.Select(f => f.Sequence).ToArray());
59 }
60 }
61 }
62}
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Media/MultiMedia.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Media/MultiMedia.wxs
new file mode 100644
index 00000000..8a555bda
--- /dev/null
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/Media/MultiMedia.wxs
@@ -0,0 +1,28 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Name="~MultiMedia" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation"
3 UpgradeCode="12E4699F-E774-4D05-8A01-5BDD41BBA127">
4
5 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
6
7 <Media Id="1" Cabinet="cab1.cab" />
8 <Media Id="2" Cabinet="cab2.cab" />
9
10 <Feature Id="ProductFeature" Title="MsiPackageTitle">
11 <Component Directory="ProgramFilesFolder:\~MultiMedia" DiskId="1">
12 <File Source="a1.txt" />
13 </Component>
14
15 <Component Directory="ProgramFilesFolder:\~MultiMedia" DiskId="1">
16 <File Source="a2.txt" />
17 </Component>
18
19 <Component Directory="ProgramFilesFolder:\~MultiMedia" DiskId="2">
20 <File Source="b2.txt" />
21 </Component>
22
23 <Component Directory="ProgramFilesFolder:\~MultiMedia" DiskId="2">
24 <File Source="b1.txt" />
25 </Component>
26 </Feature>
27 </Package>
28</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Media/data/a1.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/Media/data/a1.txt
new file mode 100644
index 00000000..ad9cdcb5
--- /dev/null
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/Media/data/a1.txt
@@ -0,0 +1 @@
This is a1.txt \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Media/data/a2.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/Media/data/a2.txt
new file mode 100644
index 00000000..d5de23de
--- /dev/null
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/Media/data/a2.txt
@@ -0,0 +1 @@
This is a2.txt \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Media/data/b1.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/Media/data/b1.txt
new file mode 100644
index 00000000..88bc4a56
--- /dev/null
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/Media/data/b1.txt
@@ -0,0 +1 @@
This is b1.txt \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Media/data/b2.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/Media/data/b2.txt
new file mode 100644
index 00000000..38525276
--- /dev/null
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/Media/data/b2.txt
@@ -0,0 +1 @@
This is b2.txt \ No newline at end of file