diff options
Diffstat (limited to 'src/test/WixToolsetTest.CoreIntegration/DependencyExtensionFixture.cs')
| -rw-r--r-- | src/test/WixToolsetTest.CoreIntegration/DependencyExtensionFixture.cs | 53 |
1 files changed, 51 insertions, 2 deletions
diff --git a/src/test/WixToolsetTest.CoreIntegration/DependencyExtensionFixture.cs b/src/test/WixToolsetTest.CoreIntegration/DependencyExtensionFixture.cs index de038bde..48270ce4 100644 --- a/src/test/WixToolsetTest.CoreIntegration/DependencyExtensionFixture.cs +++ b/src/test/WixToolsetTest.CoreIntegration/DependencyExtensionFixture.cs | |||
| @@ -57,12 +57,61 @@ namespace WixToolsetTest.CoreIntegration | |||
| 57 | var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath); | 57 | var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath); |
| 58 | extractResult.AssertSuccess(); | 58 | extractResult.AssertSuccess(); |
| 59 | 59 | ||
| 60 | var provides = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Chain/burn:MsiPackage/burn:Provides"); | 60 | var provides = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Chain/burn:MsiPackage/burn:Provides") |
| 61 | .Cast<XmlElement>() | ||
| 62 | .Select(e => e.GetTestXml()) | ||
| 63 | .ToArray(); | ||
| 61 | WixAssert.CompareLineByLine(new string[] | 64 | WixAssert.CompareLineByLine(new string[] |
| 62 | { | 65 | { |
| 63 | "<Provides Key='UsingProvides' Imported='yes' />", | 66 | "<Provides Key='UsingProvides' Imported='yes' />", |
| 64 | "<Provides Key='{A81D50F9-B696-4F3D-ABE0-E64D61590E5F}' Version='1.0.0.0' DisplayName='MsiPackage' />", | 67 | "<Provides Key='{A81D50F9-B696-4F3D-ABE0-E64D61590E5F}' Version='1.0.0.0' DisplayName='MsiPackage' />", |
| 65 | }, provides.Cast<XmlElement>().Select(e => e.GetTestXml()).ToArray()); | 68 | }, provides); |
| 69 | } | ||
| 70 | } | ||
| 71 | |||
| 72 | [Fact] | ||
| 73 | public void CanBuildBundleWithCustomProviderKey() | ||
| 74 | { | ||
| 75 | var folder = TestData.Get(@"TestData"); | ||
| 76 | |||
| 77 | using (var fs = new DisposableFileSystem()) | ||
| 78 | { | ||
| 79 | var baseFolder = fs.GetFolder(); | ||
| 80 | var intermediateFolder = Path.Combine(baseFolder, "obj"); | ||
| 81 | var binFolder = Path.Combine(baseFolder, "bin"); | ||
| 82 | var bundlePath = Path.Combine(binFolder, "test.exe"); | ||
| 83 | var baFolderPath = Path.Combine(baseFolder, "ba"); | ||
| 84 | var extractFolderPath = Path.Combine(baseFolder, "extract"); | ||
| 85 | |||
| 86 | var result = WixRunner.Execute(new[] | ||
| 87 | { | ||
| 88 | "build", | ||
| 89 | Path.Combine(folder, "Dependency", "CustomProviderKeyBundle.wxs"), | ||
| 90 | Path.Combine(folder, "BundleWithPackageGroupRef", "MinimalPackageGroup.wxs"), | ||
| 91 | "-bindpath", Path.Combine(folder, "SimpleBundle", "data"), | ||
| 92 | "-intermediateFolder", intermediateFolder, | ||
| 93 | "-o", bundlePath, | ||
| 94 | }); | ||
| 95 | |||
| 96 | result.AssertSuccess(); | ||
| 97 | |||
| 98 | Assert.True(File.Exists(bundlePath)); | ||
| 99 | |||
| 100 | var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath); | ||
| 101 | extractResult.AssertSuccess(); | ||
| 102 | |||
| 103 | var ignoreAttributesByElementName = new Dictionary<string, List<string>> | ||
| 104 | { | ||
| 105 | { "Registration", new List<string> { "Id" } }, | ||
| 106 | }; | ||
| 107 | var registration = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Registration") | ||
| 108 | .Cast<XmlElement>() | ||
| 109 | .Select(e => e.GetTestXml(ignoreAttributesByElementName)) | ||
| 110 | .ToArray(); | ||
| 111 | WixAssert.CompareLineByLine(new string[] | ||
| 112 | { | ||
| 113 | "<Registration Id='*' ExecutableName='test.exe' PerMachine='yes' Tag='' Version='1.0.0.0' ProviderKey='MyProviderKey,v1.0'><Arp Register='yes' DisplayName='BurnBundle' DisplayVersion='1.0.0.0' Publisher='Example Corporation' /></Registration>", | ||
| 114 | }, registration); | ||
| 66 | } | 115 | } |
| 67 | } | 116 | } |
| 68 | 117 | ||
