aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2021-04-22 17:19:56 -0700
committerRob Mensching <rob@firegiant.com>2021-04-29 19:53:52 -0700
commit8cf0427984a88b0b3ddfb2061e5be721afffe82e (patch)
tree22e2aaf7665d5ab6d3dc2a8ce8f05d73080d1f20 /src/test
parent8426095723fb8530a321260473ab543151bf8c98 (diff)
downloadwix-8cf0427984a88b0b3ddfb2061e5be721afffe82e.tar.gz
wix-8cf0427984a88b0b3ddfb2061e5be721afffe82e.tar.bz2
wix-8cf0427984a88b0b3ddfb2061e5be721afffe82e.zip
Move Core into wix
Diffstat (limited to 'src/test')
-rw-r--r--src/test/CompileCoreTestExtensionWixlib/CompileCoreTestExtensionWixlib.csproj32
-rw-r--r--src/test/CompileCoreTestExtensionWixlib/Program.cs37
-rw-r--r--src/test/Example.Extension/Data/example.txt1
-rw-r--r--src/test/Example.Extension/Data/example.wxs15
-rw-r--r--src/test/Example.Extension/Example.Extension.csproj24
-rw-r--r--src/test/Example.Extension/ExampleCompilerExtension.cs195
-rw-r--r--src/test/Example.Extension/ExampleExtensionData.cs23
-rw-r--r--src/test/Example.Extension/ExampleExtensionFactory.cs54
-rw-r--r--src/test/Example.Extension/ExamplePreprocessorExtensionAndCommandLine.cs57
-rw-r--r--src/test/Example.Extension/ExampleRow.cs32
-rw-r--r--src/test/Example.Extension/ExampleSearchSymbol.cs30
-rw-r--r--src/test/Example.Extension/ExampleSymbol.cs30
-rw-r--r--src/test/Example.Extension/ExampleSymbolDefinitions.cs67
-rw-r--r--src/test/Example.Extension/ExampleTableDefinitions.cs34
-rw-r--r--src/test/Example.Extension/ExampleWindowsInstallerBackendExtension.cs33
-rw-r--r--src/test/WixToolsetTest.Core.Burn/BurnReaderFixture.cs44
-rw-r--r--src/test/WixToolsetTest.Core.Burn/WixToolsetTest.Core.Burn.csproj28
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/ApprovedExeFixture.cs64
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/BadInputFixture.cs148
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/BindVariablesFixture.cs96
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/BootstrapperApplicationFixture.cs46
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/BundleExtractionFixture.cs58
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/BundleFixture.cs478
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/BundleManifestFixture.cs365
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/CabFixture.cs107
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/ComponentFixture.cs45
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/ContainerFixture.cs385
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/CopyFileFixture.cs48
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/CustomActionFixture.cs169
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/CustomTableFixture.cs234
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/DecompileFixture.cs86
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/DependencyExtensionFixture.cs180
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/DirectoryFixture.cs271
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/ExePackageFixture.cs52
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/ExtensionFixture.cs153
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/LanguageFixture.cs174
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/LinkerFixture.cs174
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/MediaFixture.cs62
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/ModuleFixture.cs113
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/MsiFixture.cs838
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs1040
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/MsiTransactionFixture.cs131
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/MsuPackageFixture.cs36
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/PackagePayloadFixture.cs211
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/ParseFixture.cs36
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/PatchFixture.cs279
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/PayloadFixture.cs212
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/PreprocessorFixture.cs181
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/RegistryFixture.cs173
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/RollbackBoundaryFixture.cs41
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/ShortcutFixture.cs78
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/SoftwareTagFixture.cs100
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/.Data/burn.exebin463360 -> 0 bytes
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/AppId/Advertised.wxs11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/ComponentSearch.wxs12
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/DecompiledNestedDirSearchUnderRegSearch.wxs42
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/DirectorySearch.wxs12
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/FileSearch.wxs14
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/NestedDirSearchUnderRegSearch.msibin33045 -> 0 bytes
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/RegistrySearch.wxs12
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/RegistrySearch64.wxs12
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Assembly/Package.en-us.wxl11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Assembly/Package.wxs17
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Assembly/PackageComponents.wxs10
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Assembly/Win32Assembly.wxs13
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Assembly/data/candle.exebin28672 -> 0 bytes
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Assembly/data/test.manifest76
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/BadEnsureTable/BadEnsureTable.wxs11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/BadIf/Package.en-us.wxl11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/BadIf/Package.wxs24
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/BadIf/PackageComponents.wxs12
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/BadIf/data/test.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/BadInput/BundleVariable.wxs6
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/BadInput/DuplicateCacheIds.wxs12
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/BadInput/DuplicatePayloadNames.wxs31
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/BadInput/HiddenPersistedBundleVariable.wxs6
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/BadInput/InvalidIds.wxs8
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/BadInput/RegistryKey.wxs13
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/BadInput/UnscheduledPackage.wxs16
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/BadInput/UnscheduledRollbackBoundary.wxs16
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/BindVariables/DefaultedVariable.wxs6
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/BindVariables/data/test.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/BootstrapperApplication/DpiAwareness.wxs7
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/BundleBindVariables/CacheIdFromPackageDescription.wxs8
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/BundleCustomTable/BundleCustomTable.wxs53
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/BundleExtension/BundleExtension.wxs6
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/BundleExtension/BundleExtensionSearches.wxs8
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/BundleExtension/BundleWithSearches.wxs11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/BundleExtension/SimpleBundleExtension.wxs10
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/BundleTag/BundleWithTag.wxs15
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/BundleTag/fakeba.dll1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/BundleWithApprovedExe/Bundle.wxs5
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/BundleWithApprovedExe/Bundle64.wxs5
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/BundleWithDetachedContainer/Bundle.wxs10
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/BundleWithPackageGroupRef/Bundle.wxs10
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/BundleWithPackageGroupRef/MinimalPackageGroup.wxs8
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Class/DecompiledOldClassTableDef.wxs22
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Class/IconIndex0.wxs11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Class/OldClassTableDef.msibin36864 -> 0 bytes
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ComplexExampleExtension/OtherComponents.wxs12
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ComplexExampleExtension/Package.en-us.wxl11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ComplexExampleExtension/Package.wxs22
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ComplexExampleExtension/PackageComponents.wxs12
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ComplexExampleExtension/data/example.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ComplexExampleExtension/data/other.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Component/GuidCollision.wxs14
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Components/Package.en-us.wxl11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Components/Package.wxs17
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Components/PackageComponents.wxs10
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Components/data/test.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Container/HarvestIntoDetachedContainer.wxs15
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Container/MultipleAttachedContainers.wxs15
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/CopyFile/CopyFile.wxs17
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/CustomAction/CustomActionCycle.wxs18
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/CustomAction/CustomActionCycleWithTail.wxs20
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/CustomAction/SimpleCustomAction.wxs14
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/CustomAction/UnscheduledCustomAction.wxs32
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/CustomPackageDescription/CustomPackageDescription.wxs12
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable-Expected.wxs29
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable.wxs34
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTableWithFile.wxs22
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/LocalizedCustomTable.en-us.wxl7
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/LocalizedCustomTable.wxs21
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/data/file1.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/data/file2.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/data/test.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/DecompileNullComponent/Expected.wxs16
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/DecompileNullComponent/example.cabbin137 -> 0 bytes
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/DecompileNullComponent/example.msibin32768 -> 0 bytes
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed/Expected.wxs16
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed/example.cabbin137 -> 0 bytes
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed/example.msibin32768 -> 0 bytes
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed64/Expected.wxs16
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed64/example.cabbin137 -> 0 bytes
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed64/example.msibin32768 -> 0 bytes
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/DecompileTargetDirMergeModule/Expected.wxs18
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/DecompileTargetDirMergeModule/MergeModule1.msmbin32768 -> 0 bytes
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/DefaultDir/DefaultDir.wxs26
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Dependency/CustomProviderKeyBundle.wxs10
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Dependency/ExePackageProvidesBundle.wxs10
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Dependency/UsingProvidesBundle.wxs8
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/DialogsInInstallUISequence/PackageComponents.wxs36
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Directory/DefaultName.wxs13
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Directory/DuplicateTargetSourceName.wxs11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Directory/Empty.wxs6
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Directory/Nested.wxs11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/DuplicateDir/DuplicateDir.wxs25
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/EnsureTable/EnsureTable.wxs10
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Environment/Environment.wxs14
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ErrorsInUI/Package.en-us.wxl9
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ErrorsInUI/Package.wxs20
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ErrorsInUI/PackageComponents.wxs14
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ErrorsInUI/data/test.txt1
-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/TestData/ExePackage/MissingDetectCondition.wxs9
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ExePackage/RequireDetectCondition.wxs11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/FeatureGroup/FeatureGroup.wxs14
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Font/FontTitle.wxs10
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Font/TrueType.wxs10
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ForEach/Package.en-us.wxl11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ForEach/Package.wxs19
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ForEach/PackageComponents.wxs12
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ForEach/data/test.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Icon/SampleIcon.wxs6
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/IncludePath/Package.en-us.wxl11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/IncludePath/Package.wxs18
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/IncludePath/PackageComponents.wxs8
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/IncludePath/data/DontDoThis.wxi6
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/IncludePath/data/Package.wxi4
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/IncludePath/data/test.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/InstanceTransform/Package.en-us.wxl11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/InstanceTransform/Package.wxs23
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/InstanceTransform/PackageComponents.wxs10
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/InstanceTransform/data/test.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Language/Package.en-us.wxl7
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Language/Package.ja-jp.wxl7
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Language/Package.wxl7
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Language/Package.wxs18
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Language/PackageWithEnSummaryInfo.ja-jp.wxl7
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Language/data/test.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/LockPermissions/EmptyPermissions.wxs13
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ManualUpgrade/Package.en-us.wxl11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ManualUpgrade/Package.wxs24
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ManualUpgrade/PackageComponents.wxs10
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ManualUpgrade/data/test.txt1
-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
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/MsiTransaction/FirstX64.wxs8
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/MsiTransaction/FirstX86.wxs8
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/MsiTransaction/SecondX64.wxs8
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/MsiTransaction/SecondX86.wxs8
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/MsiTransaction/X64AfterX86Bundle.wxs12
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/MsiTransaction/X86AfterX64Bundle.wxs12
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/MsuPackage/Bundle.wxs11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/MsuPackage/data/fakeba.dll1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/MsuPackage/data/test.msu1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/MultiFileCompressed/Package.en-us.wxl11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/MultiFileCompressed/Package.wxs26
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/MultiFileCompressed/PackageComponents.wxs13
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/MultiFileCompressed/data/test.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/OverridableActions/Package.en-us.wxl11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/OverridableActions/Package.wxs48
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/OverridableActions/PackageComponents.wxs10
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/OverridableActions/data/test.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PackagePayload/MissingSourceFileAndHash.wxs10
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PackagePayload/MissingSourceFileAndName.wxs10
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PackagePayload/PackagePayloadInPayloadGroup.wxs15
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PackagePayload/SpecifiedHash.wxs10
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PackagePayload/SpecifiedHashAndMissingDownloadUrl.wxs10
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PackagePayload/SpecifiedSourceFileAndHash.wxs10
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PackagePayload/WrongPackagePayloadInPayloadGroup.wxs15
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/.data/Av1.0.0.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/.data/Av1.0.1.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/.data/Bv1.0.0.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/.data/Bv1.0.1.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/Package.wxs28
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/Patch.wxs16
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PatchFromWixlib/Package.wxs30
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PatchFromWixlib/Patch.wxs16
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PatchNoFileChanges/.data/A.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PatchNoFileChanges/Package.wxs27
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PatchNoFileChanges/Patch.wxs16
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PatchNonSpecific/BundleA/Bundle.wxs7
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PatchNonSpecific/BundleB/Bundle.wxs8
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PatchNonSpecific/BundleC/Bundle.wxs9
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PatchNonSpecific/PackageA/Package.wxs44
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PatchNonSpecific/PatchA/Patch.wxs12
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PatchNonSpecific/PatchB/Patch.wxs14
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PatchNonSpecific/PatchC/Patch.wxs14
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/.data/Av1.0.0.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/.data/Av1.0.1.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/.data/Bv1.0.0.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/.data/Bv1.0.1.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/BundleA/Bundle.wxs10
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/Package.wxs27
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/Patch.wxs16
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Payload/AbsoluteName.wxs9
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Payload/CanonicalizeName.wxs7
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Payload/DownloadUrlPlaceholdersBundle.wxs30
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Payload/SharedBAAndPackagePayloadBundle.wxs16
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Payload/ValidName.wxs7
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Preprocessor/EnvParens.wxs4
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ProductTag/Package.en-us.wxl11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ProductTag/PackageComponents.wxs10
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ProductTag/PackageWithTag.wxs18
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ProductTag/example.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ProductWithComponentGroupRef/MinimalComponentGroup.wxs10
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ProductWithComponentGroupRef/Product.wxs19
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ProgId/NestedUnderClass.wxs13
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ProgId/Package.en-us.wxl11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ProgId/Package.wxs17
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ProgId/PackageComponents.wxs16
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ProgId/data/test.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PublishComponent/Package.en-us.wxl11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PublishComponent/Package.wxs34
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PublishComponent/data/test.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Registry/DuplicateRegistryValueIds.wxs14
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Registry/RegistryKeyEndingWithBackslash.wxs12
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Registry/RegistryValue.wxs11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Registry/RegistryValueMultiString.wxs17
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Registry/RemoveRegistryKey.wxs11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ReserveCost/ReserveCost.wxs11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/RollbackBoundary/BeginningOfChain.wxs9
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SameFileFolders/TestComponents.wxs16
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SameFileFolders/data/a/test.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SameFileFolders/data/b/test.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SameFileFolders/data/c/test.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SequenceTables/DecompiledSequenceTables.wxs32
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SequenceTables/SequenceTables.msibin32768 -> 0 bytes
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ServiceInstall/OwnProcess.wxs12
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SetProperty/Package.en-us.wxl11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SetProperty/Package.wxs19
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SetProperty/PackageComponents.wxs10
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SetProperty/data/test.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SetVariable/Simple.wxs15
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SharedPayloadsBetweenPackages/SharedPayloadsBetweenPackages.wxs18
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Shortcut/DecompiledShortcuts.wxs19
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Shortcut/ShortcutProperty.wxs14
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Shortcut/ShortcutSameNameShortName.wxs12
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Shortcut/shortcuts.msibin32768 -> 0 bytes
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/Bundle.en-us.wxl10
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/Bundle.wxs12
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/MultiFileBootstrapperApplication.wxs7
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/MultiFileBundle.wxs18
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/data/MsiPackage/Shared.dll1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/data/MsiPackage/test.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/data/fakeba.dll1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/data/test.msibin32768 -> 0 bytes
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SimpleMerge/.data/test.msmbin24576 -> 0 bytes
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SimpleMerge/Package.en-us.wxl11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SimpleMerge/Package.wxs20
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SimpleModule/Module.en-us.wxl10
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SimpleModule/Module.wixproj48
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SimpleModule/Module.wxs17
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SimpleModule/data/test.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SingleExeBundle/SingleExePackageGroup.wxs8
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SingleExeBundle/SingleExeRemotePayload.wxs27
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SingleFile/Package.en-us.wxl11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SingleFile/Package.wxs17
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SingleFile/PackageComponents.wxs13
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SingleFile/data/test.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SingleFileCompressed/Package.en-us.wxl11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SingleFileCompressed/Package.wxs25
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SingleFileCompressed/PackageComponents.wxs10
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SingleFileCompressed/data/test.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SuppressModularization/Module.en-us.wxl10
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SuppressModularization/Module.wxs10
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SuppressModularization/data/test.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/TextStyle/ColorNull.wxs12
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/TextStyle/SizeLocalized.en-us.wxl13
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/TextStyle/SizeLocalized.wxs12
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/TypeLib/Language0.wxs11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Upgrade/DetectOnly.wxs12
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/UsingProvides/Package.en-us.wxl11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/UsingProvides/Package.wxs16
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/UsingProvides/PackageComponents.wxs10
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/UsingProvides/example.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Variables/Package.en-us.wxl11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Variables/Package.wxs31
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Variables/PackageComponents.wxs10
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Variables/data/test.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/Package.en-us.wxl11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/Package.wxs19
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/PackageComponents.wxs14
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/data/test.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/data/test2.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Wixipl/Package.en-us.wxl11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Wixipl/Package.wxs19
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Wixipl/PackageComponents.wxs10
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Wixipl/data/test.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/Package.en-us.wxl11
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/Package.wxs19
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/PackageComponents.wxs26
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/data/alpha/foo.dll1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/data/mips/foo.dll1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/data/powerpc/foo.dll1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/data/test.txt1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestXmlFixture.cs62
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/VariableResolverFixture.cs75
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/WarningFixture.cs63
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj32
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/WixiplFixture.cs205
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/WixlibFixture.cs316
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/WixlibQueryFixture.cs81
350 files changed, 0 insertions, 11766 deletions
diff --git a/src/test/CompileCoreTestExtensionWixlib/CompileCoreTestExtensionWixlib.csproj b/src/test/CompileCoreTestExtensionWixlib/CompileCoreTestExtensionWixlib.csproj
deleted file mode 100644
index 88210bd4..00000000
--- a/src/test/CompileCoreTestExtensionWixlib/CompileCoreTestExtensionWixlib.csproj
+++ /dev/null
@@ -1,32 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!-- 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. -->
3
4<Project Sdk="Microsoft.NET.Sdk">
5 <PropertyGroup>
6 <TargetFramework>netcoreapp3.1</TargetFramework>
7 <IsPackable>false</IsPackable>
8 <OutputType>Exe</OutputType>
9 </PropertyGroup>
10
11 <ItemGroup>
12 <ProjectReference Include="..\..\WixToolset.Core.TestPackage\WixToolset.Core.TestPackage.csproj" />
13 </ItemGroup>
14
15 <ItemGroup>
16 <ExtensionWxs Include="..\Example.Extension\Data\example.wxs">
17 <WixlibPath>$(BaseOutputPath)TestData\$(Configuration)\example.wixlib</WixlibPath>
18 </ExtensionWxs>
19 </ItemGroup>
20
21 <Target Name="BuildExtensionWixlibs"
22 AfterTargets="AfterBuild"
23 Inputs="@(ExtensionWxs)"
24 Outputs="%(ExtensionWxs.WixlibPath)"
25 Condition=" '$(NCrunch)'!='1' ">
26
27 <Exec Command="dotnet @(TargetPathWithTargetPlatformMoniker) &quot;$(IntermediateOutputPath) &quot; &quot;%(ExtensionWxs.WixlibPath)&quot; &quot;%(ExtensionWxs.Filename)%(ExtensionWxs.Extension)&quot;"
28 WorkingDirectory="%(ExtensionWxs.RelativeDir)" />
29
30 <Message Importance="high" Text="@(ExtensionWxs) -&gt; %(ExtensionWxs.WixlibPath)" />
31 </Target>
32</Project>
diff --git a/src/test/CompileCoreTestExtensionWixlib/Program.cs b/src/test/CompileCoreTestExtensionWixlib/Program.cs
deleted file mode 100644
index 323b5e5e..00000000
--- a/src/test/CompileCoreTestExtensionWixlib/Program.cs
+++ /dev/null
@@ -1,37 +0,0 @@
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
3using System.Collections.Generic;
4using WixToolset.Core.TestPackage;
5
6namespace CompileCoreTestExtensionWixlib
7{
8 // We want to be able to test Core with extensions, but there's no easy way to build an extension without Tools.
9 // So we have this helper exe.
10 public class Program
11 {
12 public static void Main(string[] args)
13 {
14 var intermediateFolder = args[0];
15 var wixlibPath = args[1];
16
17 var buildArgs = new List<string>();
18 buildArgs.Add("build");
19 buildArgs.Add("-bindfiles");
20 buildArgs.Add("-bindpath");
21 buildArgs.Add("Data");
22 buildArgs.Add("-intermediateFolder");
23 buildArgs.Add(intermediateFolder);
24 buildArgs.Add("-o");
25 buildArgs.Add(wixlibPath);
26
27 foreach (var path in args[2].Split(';'))
28 {
29 buildArgs.Add(path);
30 }
31
32 var result = WixRunner.Execute(buildArgs.ToArray());
33
34 result.AssertSuccess();
35 }
36 }
37}
diff --git a/src/test/Example.Extension/Data/example.txt b/src/test/Example.Extension/Data/example.txt
deleted file mode 100644
index 1b4ffe8a..00000000
--- a/src/test/Example.Extension/Data/example.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is example.txt. \ No newline at end of file
diff --git a/src/test/Example.Extension/Data/example.wxs b/src/test/Example.Extension/Data/example.wxs
deleted file mode 100644
index af5d5086..00000000
--- a/src/test/Example.Extension/Data/example.wxs
+++ /dev/null
@@ -1,15 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Fragment>
3 <Property Id="PropertyFromExampleWir" Value="FromWir" />
4
5 <Binary Id="BinFromWir" SourceFile="example.txt" />
6 </Fragment>
7 <Fragment>
8 <BootstrapperApplication Id="fakeba">
9 <BootstrapperApplicationDll SourceFile="example.txt" />
10 </BootstrapperApplication>
11 </Fragment>
12 <Fragment>
13 <BundleExtension Id="ExampleBundleExtension" SourceFile="example.txt" />
14 </Fragment>
15</Wix>
diff --git a/src/test/Example.Extension/Example.Extension.csproj b/src/test/Example.Extension/Example.Extension.csproj
deleted file mode 100644
index 9be10d35..00000000
--- a/src/test/Example.Extension/Example.Extension.csproj
+++ /dev/null
@@ -1,24 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!-- 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. -->
3
4<Project Sdk="Microsoft.NET.Sdk">
5 <PropertyGroup>
6 <TargetFramework>netcoreapp3.1</TargetFramework>
7 <IsPackable>false</IsPackable>
8 <DebugType>embedded</DebugType>
9 </PropertyGroup>
10
11 <ItemGroup>
12 <!-- This .wixlib is built by CompileCoreTestExtensionWixlib.csproj -->
13 <EmbeddedResource Include="$(BaseOutputPath)TestData\$(Configuration)\Example.wixlib" />
14 </ItemGroup>
15
16 <ItemGroup>
17 <ProjectReference Include="..\CompileCoreTestExtensionWixlib\CompileCoreTestExtensionWixlib.csproj" />
18 </ItemGroup>
19
20 <ItemGroup>
21 <PackageReference Include="WixToolset.Extensibility" Version="4.0.*" />
22 </ItemGroup>
23
24</Project>
diff --git a/src/test/Example.Extension/ExampleCompilerExtension.cs b/src/test/Example.Extension/ExampleCompilerExtension.cs
deleted file mode 100644
index 5b8d4b3f..00000000
--- a/src/test/Example.Extension/ExampleCompilerExtension.cs
+++ /dev/null
@@ -1,195 +0,0 @@
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 Example.Extension
4{
5 using System;
6 using System.Collections.Generic;
7 using System.Xml.Linq;
8 using WixToolset.Data;
9 using WixToolset.Extensibility;
10
11 internal class ExampleCompilerExtension : BaseCompilerExtension
12 {
13 public override XNamespace Namespace => "http://www.example.com/scheams/v1/wxs";
14 public string BundleExtensionId => "ExampleBundleExtension";
15
16 public override void ParseElement(Intermediate intermediate, IntermediateSection section, XElement parentElement, XElement element, IDictionary<string, string> context)
17 {
18 var processed = false;
19
20 switch (parentElement.Name.LocalName)
21 {
22 case "Bundle":
23 case "Fragment":
24 switch (element.Name.LocalName)
25 {
26 case "ExampleEnsureTable":
27 this.ParseExampleEnsureTableElement(intermediate, section, element);
28 processed = true;
29 break;
30 case "ExampleSearch":
31 this.ParseExampleSearchElement(intermediate, section, element);
32 processed = true;
33 break;
34 case "ExampleSearchRef":
35 this.ParseExampleSearchRefElement(intermediate, section, element);
36 processed = true;
37 break;
38 }
39 break;
40 case "Component":
41 switch (element.Name.LocalName)
42 {
43 case "Example":
44 this.ParseExampleElement(intermediate, section, element);
45 processed = true;
46 break;
47 }
48 break;
49 }
50
51 if (!processed)
52 {
53 base.ParseElement(intermediate, section, parentElement, element, context);
54 }
55 }
56
57 private void ParseExampleElement(Intermediate intermediate, IntermediateSection section, XElement element)
58 {
59 var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
60 Identifier id = null;
61 string value = null;
62
63 foreach (var attrib in element.Attributes())
64 {
65 if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || this.Namespace == attrib.Name.Namespace)
66 {
67 switch (attrib.Name.LocalName)
68 {
69 case "Id":
70 id = this.ParseHelper.GetAttributeIdentifier(sourceLineNumbers, attrib);
71 break;
72
73 case "Value":
74 value = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
75 break;
76
77 default:
78 this.ParseHelper.UnexpectedAttribute(element, attrib);
79 break;
80 }
81 }
82 else
83 {
84 this.ParseAttribute(intermediate, section, element, attrib, null);
85 }
86 }
87
88 if (null == id)
89 {
90 //this.Messaging(WixErrors.ExpectedAttribute(sourceLineNumbers, element.Name.LocalName, "Id"));
91 }
92
93 if (!this.Messaging.EncounteredError)
94 {
95 var symbol = this.ParseHelper.CreateSymbol(section, sourceLineNumbers, "Example", id);
96 symbol.Set(0, value);
97 }
98 }
99
100 private void ParseExampleEnsureTableElement(Intermediate intermediate, IntermediateSection section, XElement element)
101 {
102 var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
103 this.ParseHelper.EnsureTable(section, sourceLineNumbers, ExampleTableDefinitions.NotInAll);
104 }
105
106 private void ParseExampleSearchElement(Intermediate intermediate, IntermediateSection section, XElement element)
107 {
108 var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
109 Identifier id = null;
110 string searchFor = null;
111 string variable = null;
112 string condition = null;
113 string after = null;
114
115 foreach (var attrib in element.Attributes())
116 {
117 if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || this.Namespace == attrib.Name.Namespace)
118 {
119 switch (attrib.Name.LocalName)
120 {
121 case "Id":
122 id = this.ParseHelper.GetAttributeIdentifier(sourceLineNumbers, attrib);
123 break;
124 case "Variable":
125 variable = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
126 break;
127 case "Condition":
128 condition = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
129 break;
130 case "After":
131 after = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
132 break;
133 case "SearchFor":
134 searchFor = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
135 break;
136
137 default:
138 this.ParseHelper.UnexpectedAttribute(element, attrib);
139 break;
140 }
141 }
142 else
143 {
144 this.ParseAttribute(intermediate, section, element, attrib, null);
145 }
146 }
147
148 if (null == id)
149 {
150 this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, element.Name.LocalName, "Id"));
151 }
152
153 if (!this.Messaging.EncounteredError)
154 {
155 this.ParseHelper.CreateWixSearchSymbol(section, sourceLineNumbers, element.Name.LocalName, id, variable, condition, after, this.BundleExtensionId);
156 }
157
158 if (!this.Messaging.EncounteredError)
159 {
160 var symbol = section.AddSymbol(new ExampleSearchSymbol(sourceLineNumbers, id)
161 {
162 SearchFor = searchFor,
163 });
164 }
165 }
166
167 private void ParseExampleSearchRefElement(Intermediate intermediate, IntermediateSection section, XElement element)
168 {
169 var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
170
171 foreach (var attrib in element.Attributes())
172 {
173 if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || this.Namespace == attrib.Name.Namespace)
174 {
175 switch (attrib.Name.LocalName)
176 {
177 case "Id":
178 var refId = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
179 this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, ExampleSymbolDefinitions.ExampleSearch, refId);
180 break;
181 default:
182 this.ParseHelper.UnexpectedAttribute(element, attrib);
183 break;
184 }
185 }
186 else
187 {
188 this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, element, attrib);
189 }
190 }
191
192 this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, element);
193 }
194 }
195}
diff --git a/src/test/Example.Extension/ExampleExtensionData.cs b/src/test/Example.Extension/ExampleExtensionData.cs
deleted file mode 100644
index 91d60eb9..00000000
--- a/src/test/Example.Extension/ExampleExtensionData.cs
+++ /dev/null
@@ -1,23 +0,0 @@
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 Example.Extension
4{
5 using WixToolset.Data;
6 using WixToolset.Extensibility;
7
8 internal class ExampleExtensionData : IExtensionData
9 {
10 public string DefaultCulture => null;
11
12 public Intermediate GetLibrary(ISymbolDefinitionCreator symbolDefinitions)
13 {
14 return Intermediate.Load(typeof(ExampleExtensionData).Assembly, "Example.Extension.Example.wixlib", symbolDefinitions);
15 }
16
17 public bool TryGetSymbolDefinitionByName(string name, out IntermediateSymbolDefinition symbolDefinition)
18 {
19 symbolDefinition = ExampleSymbolDefinitions.ByName(name);
20 return symbolDefinition != null;
21 }
22 }
23} \ No newline at end of file
diff --git a/src/test/Example.Extension/ExampleExtensionFactory.cs b/src/test/Example.Extension/ExampleExtensionFactory.cs
deleted file mode 100644
index e54561ee..00000000
--- a/src/test/Example.Extension/ExampleExtensionFactory.cs
+++ /dev/null
@@ -1,54 +0,0 @@
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 Example.Extension
4{
5 using System;
6 using WixToolset.Extensibility;
7 using WixToolset.Extensibility.Services;
8
9 public class ExampleExtensionFactory : IExtensionFactory
10 {
11 private ExamplePreprocessorExtensionAndCommandLine preprocessorExtension;
12
13 public ExampleExtensionFactory(IWixToolsetCoreServiceProvider serviceProvider)
14 {
15 this.ServiceProvider = serviceProvider;
16 }
17
18 /// <summary>
19 /// This exists just to show it is possible to get a service provider to the extension factory.
20 /// </summary>
21 private IWixToolsetCoreServiceProvider ServiceProvider { get; }
22
23 public bool TryCreateExtension(Type extensionType, out object extension)
24 {
25 if (extensionType == typeof(IExtensionCommandLine) || extensionType == typeof(IPreprocessorExtension))
26 {
27 if (this.preprocessorExtension == null)
28 {
29 this.preprocessorExtension = new ExamplePreprocessorExtensionAndCommandLine();
30 }
31
32 extension = this.preprocessorExtension;
33 }
34 else if (extensionType == typeof(ICompilerExtension))
35 {
36 extension = new ExampleCompilerExtension();
37 }
38 else if (extensionType == typeof(IExtensionData))
39 {
40 extension = new ExampleExtensionData();
41 }
42 else if (extensionType == typeof(IWindowsInstallerBackendBinderExtension))
43 {
44 extension = new ExampleWindowsInstallerBackendExtension();
45 }
46 else
47 {
48 extension = null;
49 }
50
51 return extension != null;
52 }
53 }
54}
diff --git a/src/test/Example.Extension/ExamplePreprocessorExtensionAndCommandLine.cs b/src/test/Example.Extension/ExamplePreprocessorExtensionAndCommandLine.cs
deleted file mode 100644
index 7244798a..00000000
--- a/src/test/Example.Extension/ExamplePreprocessorExtensionAndCommandLine.cs
+++ /dev/null
@@ -1,57 +0,0 @@
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 Example.Extension
4{
5 using System;
6 using System.Collections.Generic;
7 using WixToolset.Extensibility;
8 using WixToolset.Extensibility.Data;
9 using WixToolset.Extensibility.Services;
10
11 internal class ExamplePreprocessorExtensionAndCommandLine : BasePreprocessorExtension, IExtensionCommandLine
12 {
13 private string exampleValueFromCommandLine;
14
15 public IReadOnlyCollection<ExtensionCommandLineSwitch> CommandLineSwitches => throw new NotImplementedException();
16
17 public ExamplePreprocessorExtensionAndCommandLine()
18 {
19 this.Prefixes = new[] { "ex" };
20 }
21
22 public void PreParse(ICommandLineContext context)
23 {
24 }
25
26 public bool TryParseArgument(ICommandLineParser parser, string argument)
27 {
28 if (parser.IsSwitch(argument) && argument.Substring(1).Equals("example", StringComparison.OrdinalIgnoreCase))
29 {
30 this.exampleValueFromCommandLine = parser.GetNextArgumentOrError(argument);
31 return true;
32 }
33
34 return false;
35 }
36
37 public bool TryParseCommand(ICommandLineParser parser, string argument, out ICommandLineCommand command)
38 {
39 command = null;
40 return false;
41 }
42
43 public void PostParse()
44 {
45 }
46
47 public override string GetVariableValue(string prefix, string name)
48 {
49 if (prefix == "ex" && "test".Equals(name, StringComparison.OrdinalIgnoreCase))
50 {
51 return String.IsNullOrWhiteSpace(this.exampleValueFromCommandLine) ? "(null)" : this.exampleValueFromCommandLine;
52 }
53
54 return null;
55 }
56 }
57}
diff --git a/src/test/Example.Extension/ExampleRow.cs b/src/test/Example.Extension/ExampleRow.cs
deleted file mode 100644
index fc20c6c9..00000000
--- a/src/test/Example.Extension/ExampleRow.cs
+++ /dev/null
@@ -1,32 +0,0 @@
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 Example.Extension
4{
5 using WixToolset.Data;
6 using WixToolset.Data.WindowsInstaller;
7
8 public class ExampleRow : Row
9 {
10 public ExampleRow(SourceLineNumber sourceLineNumbers, Table table)
11 : base(sourceLineNumbers, table)
12 {
13 }
14
15 public ExampleRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition)
16 : base(sourceLineNumbers, tableDefinition)
17 {
18 }
19
20 public string Example
21 {
22 get { return (string)this.Fields[0].Data; }
23 set { this.Fields[0].Data = value; }
24 }
25
26 public string Value
27 {
28 get { return (string)this.Fields[1].Data; }
29 set { this.Fields[1].Data = value; }
30 }
31 }
32}
diff --git a/src/test/Example.Extension/ExampleSearchSymbol.cs b/src/test/Example.Extension/ExampleSearchSymbol.cs
deleted file mode 100644
index 40a39292..00000000
--- a/src/test/Example.Extension/ExampleSearchSymbol.cs
+++ /dev/null
@@ -1,30 +0,0 @@
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 Example.Extension
4{
5 using WixToolset.Data;
6
7 public enum ExampleSearchSymbolFields
8 {
9 SearchFor,
10 }
11
12 public class ExampleSearchSymbol : IntermediateSymbol
13 {
14 public ExampleSearchSymbol() : base(ExampleSymbolDefinitions.ExampleSearch, null, null)
15 {
16 }
17
18 public ExampleSearchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(ExampleSymbolDefinitions.ExampleSearch, sourceLineNumber, id)
19 {
20 }
21
22 public IntermediateField this[ExampleSymbolFields index] => this.Fields[(int)index];
23
24 public string SearchFor
25 {
26 get => this.Fields[(int)ExampleSearchSymbolFields.SearchFor]?.AsString();
27 set => this.Set((int)ExampleSearchSymbolFields.SearchFor, value);
28 }
29 }
30}
diff --git a/src/test/Example.Extension/ExampleSymbol.cs b/src/test/Example.Extension/ExampleSymbol.cs
deleted file mode 100644
index 314087e9..00000000
--- a/src/test/Example.Extension/ExampleSymbol.cs
+++ /dev/null
@@ -1,30 +0,0 @@
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 Example.Extension
4{
5 using WixToolset.Data;
6
7 public enum ExampleSymbolFields
8 {
9 Value,
10 }
11
12 public class ExampleSymbol : IntermediateSymbol
13 {
14 public ExampleSymbol() : base(ExampleSymbolDefinitions.Example, null, null)
15 {
16 }
17
18 public ExampleSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(ExampleSymbolDefinitions.Example, sourceLineNumber, id)
19 {
20 }
21
22 public IntermediateField this[ExampleSymbolFields index] => this.Fields[(int)index];
23
24 public string Value
25 {
26 get => this.Fields[(int)ExampleSymbolFields.Value]?.AsString();
27 set => this.Set((int)ExampleSymbolFields.Value, value);
28 }
29 }
30}
diff --git a/src/test/Example.Extension/ExampleSymbolDefinitions.cs b/src/test/Example.Extension/ExampleSymbolDefinitions.cs
deleted file mode 100644
index f13d716d..00000000
--- a/src/test/Example.Extension/ExampleSymbolDefinitions.cs
+++ /dev/null
@@ -1,67 +0,0 @@
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 Example.Extension
4{
5 using System;
6 using WixToolset.Data;
7 using WixToolset.Data.Burn;
8
9 public enum ExampleSymbolDefinitionType
10 {
11 Example,
12 ExampleSearch,
13 }
14
15 public static class ExampleSymbolDefinitions
16 {
17 public static readonly IntermediateSymbolDefinition Example = new IntermediateSymbolDefinition(
18 ExampleSymbolDefinitionType.Example.ToString(),
19 new[]
20 {
21 new IntermediateFieldDefinition(nameof(ExampleSymbolFields.Value), IntermediateFieldType.String),
22 },
23 typeof(ExampleSymbol));
24
25 public static readonly IntermediateSymbolDefinition ExampleSearch = new IntermediateSymbolDefinition(
26 ExampleSymbolDefinitionType.ExampleSearch.ToString(),
27 new[]
28 {
29 new IntermediateFieldDefinition(nameof(ExampleSearchSymbolFields.SearchFor), IntermediateFieldType.String),
30 },
31 typeof(ExampleSearchSymbol));
32
33 static ExampleSymbolDefinitions()
34 {
35 ExampleSearch.AddTag(BurnConstants.BundleExtensionSearchSymbolDefinitionTag);
36 }
37
38 public static bool TryGetSymbolType(string name, out ExampleSymbolDefinitionType type)
39 {
40 return Enum.TryParse(name, out type);
41 }
42
43 public static IntermediateSymbolDefinition ByName(string name)
44 {
45 if (!TryGetSymbolType(name, out var type))
46 {
47 return null;
48 }
49 return ByType(type);
50 }
51
52 public static IntermediateSymbolDefinition ByType(ExampleSymbolDefinitionType type)
53 {
54 switch (type)
55 {
56 case ExampleSymbolDefinitionType.Example:
57 return ExampleSymbolDefinitions.Example;
58
59 case ExampleSymbolDefinitionType.ExampleSearch:
60 return ExampleSymbolDefinitions.ExampleSearch;
61
62 default:
63 throw new ArgumentOutOfRangeException(nameof(type));
64 }
65 }
66 }
67}
diff --git a/src/test/Example.Extension/ExampleTableDefinitions.cs b/src/test/Example.Extension/ExampleTableDefinitions.cs
deleted file mode 100644
index a2b81698..00000000
--- a/src/test/Example.Extension/ExampleTableDefinitions.cs
+++ /dev/null
@@ -1,34 +0,0 @@
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 Example.Extension
4{
5 using WixToolset.Data.WindowsInstaller;
6
7 public static class ExampleTableDefinitions
8 {
9 public static readonly TableDefinition ExampleTable = new TableDefinition(
10 "Wix4Example",
11 ExampleSymbolDefinitions.Example,
12 new[]
13 {
14 new ColumnDefinition("Example", ColumnType.String, 72, true, false, ColumnCategory.Identifier),
15 new ColumnDefinition("Value", ColumnType.String, 0, false, false, ColumnCategory.Formatted),
16 },
17 strongRowType: typeof(ExampleRow),
18 symbolIdIsPrimaryKey: true
19 );
20
21 public static readonly TableDefinition NotInAll = new TableDefinition(
22 "TableDefinitionNotExposedByExtension",
23 null,
24 new[]
25 {
26 new ColumnDefinition("Example", ColumnType.String, 72, true, false, ColumnCategory.Identifier),
27 new ColumnDefinition("Value", ColumnType.String, 0, false, false, ColumnCategory.Formatted),
28 },
29 symbolIdIsPrimaryKey: true
30 );
31
32 public static readonly TableDefinition[] All = new[] { ExampleTable };
33 }
34}
diff --git a/src/test/Example.Extension/ExampleWindowsInstallerBackendExtension.cs b/src/test/Example.Extension/ExampleWindowsInstallerBackendExtension.cs
deleted file mode 100644
index afccc56f..00000000
--- a/src/test/Example.Extension/ExampleWindowsInstallerBackendExtension.cs
+++ /dev/null
@@ -1,33 +0,0 @@
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 Example.Extension
4{
5 using System.Collections.Generic;
6 using WixToolset.Data;
7 using WixToolset.Data.WindowsInstaller;
8 using WixToolset.Extensibility;
9
10 internal class ExampleWindowsInstallerBackendExtension : BaseWindowsInstallerBackendBinderExtension
11 {
12 public override IReadOnlyCollection<TableDefinition> TableDefinitions => ExampleTableDefinitions.All;
13
14 public override bool TryProcessSymbol(IntermediateSection section, IntermediateSymbol symbol, WindowsInstallerData output, TableDefinitionCollection tableDefinitions)
15 {
16 if (ExampleSymbolDefinitions.TryGetSymbolType(symbol.Definition.Name, out var symbolType))
17 {
18 switch (symbolType)
19 {
20 case ExampleSymbolDefinitionType.Example:
21 {
22 var row = (ExampleRow)this.BackendHelper.CreateRow(section, symbol, output, ExampleTableDefinitions.ExampleTable);
23 row.Example = symbol.Id.Id;
24 row.Value = symbol[0].AsString();
25 }
26 return true;
27 }
28 }
29
30 return base.TryProcessSymbol(section, symbol, output, tableDefinitions);
31 }
32 }
33}
diff --git a/src/test/WixToolsetTest.Core.Burn/BurnReaderFixture.cs b/src/test/WixToolsetTest.Core.Burn/BurnReaderFixture.cs
deleted file mode 100644
index a83da7f6..00000000
--- a/src/test/WixToolsetTest.Core.Burn/BurnReaderFixture.cs
+++ /dev/null
@@ -1,44 +0,0 @@
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.Core.Burn
4{
5 using System;
6 using WixToolset.Core.Burn.Bundles;
7 using Xunit;
8
9 public class BurnReaderFixture
10 {
11 [Fact]
12 public void CanReadUInt16Max()
13 {
14 var bytes = new byte[] { 0xFF, 0xFF };
15 var offset = 0u;
16
17 var result = BurnCommon.ReadUInt16(bytes, offset);
18
19 Assert.Equal(UInt16.MaxValue, result);
20 }
21
22 [Fact]
23 public void CanReadUInt32Max()
24 {
25 var bytes = new byte[] { 0xFF, 0xFF, 0xFF, 0xFF };
26 var offset = 0u;
27
28 var result = BurnCommon.ReadUInt32(bytes, offset);
29
30 Assert.Equal(UInt32.MaxValue, result);
31 }
32
33 [Fact]
34 public void CanReadUInt64Max()
35 {
36 var bytes = new byte[] { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
37 var offset = 0u;
38
39 var result = BurnCommon.ReadUInt64(bytes, offset);
40
41 Assert.Equal(UInt64.MaxValue, result);
42 }
43 }
44}
diff --git a/src/test/WixToolsetTest.Core.Burn/WixToolsetTest.Core.Burn.csproj b/src/test/WixToolsetTest.Core.Burn/WixToolsetTest.Core.Burn.csproj
deleted file mode 100644
index 175ee1a9..00000000
--- a/src/test/WixToolsetTest.Core.Burn/WixToolsetTest.Core.Burn.csproj
+++ /dev/null
@@ -1,28 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!-- 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. -->
3
4<Project Sdk="Microsoft.NET.Sdk">
5 <PropertyGroup>
6 <TargetFramework>netcoreapp3.1</TargetFramework>
7 <IsPackable>false</IsPackable>
8 <DebugType>embedded</DebugType>
9 </PropertyGroup>
10
11 <PropertyGroup>
12 <NoWarn>NU1701</NoWarn>
13 </PropertyGroup>
14
15 <ItemGroup>
16 <ProjectReference Include="..\..\WixToolset.Core.Burn\WixToolset.Core.Burn.csproj" />
17 </ItemGroup>
18
19 <ItemGroup>
20 <PackageReference Include="WixBuildTools.TestSupport" Version="4.0.*" />
21 </ItemGroup>
22
23 <ItemGroup>
24 <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.8.0" />
25 <PackageReference Include="xunit" Version="2.4.1" />
26 <PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" PrivateAssets="All" />
27 </ItemGroup>
28</Project>
diff --git a/src/test/WixToolsetTest.CoreIntegration/ApprovedExeFixture.cs b/src/test/WixToolsetTest.CoreIntegration/ApprovedExeFixture.cs
deleted file mode 100644
index 47b47ef5..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/ApprovedExeFixture.cs
+++ /dev/null
@@ -1,64 +0,0 @@
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 WixBuildTools.TestSupport;
7 using WixToolset.Core.TestPackage;
8 using Xunit;
9
10 public class ApprovedExeFixture
11 {
12 [Fact]
13 public void CanBuildWithApprovedExe()
14 {
15 var folder = TestData.Get(@"TestData");
16
17 using (var fs = new DisposableFileSystem())
18 {
19 var baseFolder = fs.GetFolder();
20 var intermediateFolder = Path.Combine(baseFolder, "obj");
21 var exePath = Path.Combine(baseFolder, @"bin\test.exe");
22
23 var result = WixRunner.Execute(new[]
24 {
25 "build",
26 Path.Combine(folder, "BundleWithApprovedExe", "Bundle.wxs"),
27 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
28 "-bindpath", Path.Combine(folder, ".Data"),
29 "-intermediateFolder", intermediateFolder,
30 "-o", exePath,
31 });
32
33 Assert.NotEqual(0, result.ExitCode);
34 Assert.False(File.Exists(exePath));
35 }
36 }
37
38 [Fact]
39 public void CanBuildWithApprovedExe64()
40 {
41 var folder = TestData.Get(@"TestData");
42
43 using (var fs = new DisposableFileSystem())
44 {
45 var baseFolder = fs.GetFolder();
46 var intermediateFolder = Path.Combine(baseFolder, "obj");
47 var exePath = Path.Combine(baseFolder, @"bin\test.exe");
48
49 var result = WixRunner.Execute(new[]
50 {
51 "build",
52 Path.Combine(folder, "BundleWithApprovedExe", "Bundle64.wxs"),
53 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
54 "-bindpath", Path.Combine(folder, ".Data"),
55 "-intermediateFolder", intermediateFolder,
56 "-o", exePath,
57 });
58
59 Assert.NotEqual(0, result.ExitCode);
60 Assert.False(File.Exists(exePath));
61 }
62 }
63 }
64}
diff --git a/src/test/WixToolsetTest.CoreIntegration/BadInputFixture.cs b/src/test/WixToolsetTest.CoreIntegration/BadInputFixture.cs
deleted file mode 100644
index 62ffe1eb..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/BadInputFixture.cs
+++ /dev/null
@@ -1,148 +0,0 @@
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 WixBuildTools.TestSupport;
8 using WixToolset.Core.TestPackage;
9 using WixToolset.Data;
10 using Xunit;
11
12 public class BadInputFixture
13 {
14 [Fact]
15 public void SwitchIsNotConsideredAnArgument()
16 {
17 var result = WixRunner.Execute(new[]
18 {
19 "build",
20 "-bindpath", "-thisisaswitchnotanarg",
21 });
22
23 Assert.Single(result.Messages, m => m.Id == (int)ErrorMessages.Ids.ExpectedArgument);
24 // TODO: when CantBuildSingleExeBundleWithInvalidArgument is fixed, uncomment:
25 //Assert.Equal((int)ErrorMessages.Ids.ExpectedArgument, result.ExitCode);
26 }
27
28 [Fact]
29 public void HandleInvalidIds()
30 {
31 var folder = TestData.Get(@"TestData\BadInput");
32
33 using (var fs = new DisposableFileSystem())
34 {
35 var baseFolder = fs.GetFolder();
36 var intermediateFolder = Path.Combine(baseFolder, "obj");
37 var wixlibPath = Path.Combine(intermediateFolder, @"test.wixlib");
38
39 var result = WixRunner.Execute(new[]
40 {
41 "build",
42 Path.Combine(folder, "InvalidIds.wxs"),
43 "-intermediateFolder", intermediateFolder,
44 "-o", wixlibPath,
45 });
46
47 Assert.Equal(330, result.ExitCode);
48 }
49 }
50
51 [Fact]
52 public void CantBuildSingleExeBundleWithInvalidArgument()
53 {
54 var folder = TestData.Get(@"TestData");
55
56 using (var fs = new DisposableFileSystem())
57 {
58 var baseFolder = fs.GetFolder();
59 var intermediateFolder = Path.Combine(baseFolder, "obj");
60 var exePath = Path.Combine(baseFolder, @"bin\test.exe");
61
62 var result = WixRunner.Execute(new[]
63 {
64 "build",
65 Path.Combine(folder, "SingleExeBundle", "SingleExePackageGroup.wxs"),
66 Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
67 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
68 "-bindpath", Path.Combine(folder, ".Data"),
69 "-intermediateFolder", intermediateFolder,
70 "-o", exePath,
71 "-nonexistentswitch", "param",
72 });
73
74 Assert.NotEqual(0, result.ExitCode);
75 Assert.False(File.Exists(exePath));
76 }
77 }
78
79 [Fact]
80 public void RegistryKeyWithoutAttributesDoesntCrash()
81 {
82 var folder = TestData.Get(@"TestData\BadInput");
83
84 using (var fs = new DisposableFileSystem())
85 {
86 var baseFolder = fs.GetFolder();
87 var intermediateFolder = Path.Combine(baseFolder, "obj");
88 var wixlibPath = Path.Combine(intermediateFolder, @"test.wixlib");
89
90 var result = WixRunner.Execute(new[]
91 {
92 "build",
93 Path.Combine(folder, "RegistryKey.wxs"),
94 "-intermediateFolder", intermediateFolder,
95 "-o", wixlibPath,
96 });
97
98 Assert.InRange(result.ExitCode, 2, Int32.MaxValue);
99 }
100 }
101
102 [Fact]
103 public void BundleVariableWithBadTypeIsRejected()
104 {
105 var folder = TestData.Get(@"TestData\BadInput");
106
107 using (var fs = new DisposableFileSystem())
108 {
109 var baseFolder = fs.GetFolder();
110 var intermediateFolder = Path.Combine(baseFolder, "obj");
111 var wixlibPath = Path.Combine(intermediateFolder, @"test.wixlib");
112
113 var result = WixRunner.Execute(new[]
114 {
115 "build",
116 Path.Combine(folder, "BundleVariable.wxs"),
117 "-intermediateFolder", intermediateFolder,
118 "-o", wixlibPath,
119 });
120
121 Assert.Equal(21, result.ExitCode);
122 }
123 }
124
125 [Fact]
126 public void BundleVariableWithHiddenPersistedIsRejected()
127 {
128 var folder = TestData.Get(@"TestData\BadInput");
129
130 using (var fs = new DisposableFileSystem())
131 {
132 var baseFolder = fs.GetFolder();
133 var intermediateFolder = Path.Combine(baseFolder, "obj");
134 var wixlibPath = Path.Combine(intermediateFolder, @"test.wixlib");
135
136 var result = WixRunner.Execute(new[]
137 {
138 "build",
139 Path.Combine(folder, "HiddenPersistedBundleVariable.wxs"),
140 "-intermediateFolder", intermediateFolder,
141 "-o", wixlibPath,
142 });
143
144 Assert.Equal(193, result.ExitCode);
145 }
146 }
147 }
148}
diff --git a/src/test/WixToolsetTest.CoreIntegration/BindVariablesFixture.cs b/src/test/WixToolsetTest.CoreIntegration/BindVariablesFixture.cs
deleted file mode 100644
index 39e6b4aa..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/BindVariablesFixture.cs
+++ /dev/null
@@ -1,96 +0,0 @@
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 WixBuildTools.TestSupport;
8 using WixToolset.Core.TestPackage;
9 using Xunit;
10
11 public class BindVariablesFixture
12 {
13 [Fact]
14 public void CanBuildBundleWithPackageBindVariables()
15 {
16 var folder = TestData.Get(@"TestData");
17
18 using (var fs = new DisposableFileSystem())
19 {
20 var baseFolder = fs.GetFolder();
21 var intermediateFolder = Path.Combine(baseFolder, "obj");
22 var exePath = Path.Combine(baseFolder, @"bin\test.exe");
23
24 var result = WixRunner.Execute(new[]
25 {
26 "build",
27 Path.Combine(folder, "BundleBindVariables", "CacheIdFromPackageDescription.wxs"),
28 Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
29 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
30 "-bindpath", Path.Combine(folder, ".Data"),
31 "-intermediateFolder", intermediateFolder,
32 "-o", exePath,
33 });
34
35 result.AssertSuccess();
36
37 Assert.True(File.Exists(exePath));
38 }
39 }
40
41 [Fact]
42 public void CanBuildWithDefaultValue()
43 {
44 var folder = TestData.Get(@"TestData", "BindVariables");
45
46 using (var fs = new DisposableFileSystem())
47 {
48 var baseFolder = fs.GetFolder();
49 var intermediateFolder = Path.Combine(baseFolder, "obj");
50 var wixlibPath = Path.Combine(intermediateFolder, @"test.wixlib");
51
52 var result = WixRunner.Execute(new[]
53 {
54 "build",
55 Path.Combine(folder, "DefaultedVariable.wxs"),
56 "-bf",
57 "-intermediateFolder", intermediateFolder,
58 "-bindpath", folder,
59 "-o", wixlibPath,
60 });
61
62 result.AssertSuccess();
63 }
64 }
65
66 [Fact]
67 public void CannotBuildWixlibWithBinariesFromMissingNamedBindPaths()
68 {
69 var folder = TestData.Get(@"TestData", "WixlibWithBinaries");
70
71 using (var fs = new DisposableFileSystem())
72 {
73 var baseFolder = fs.GetFolder();
74 var intermediateFolder = Path.Combine(baseFolder, "obj");
75 var wixlibPath = Path.Combine(intermediateFolder, @"test.wixlib");
76
77 var result = WixRunner.Execute(new[]
78 {
79 "build",
80 Path.Combine(folder, "PackageComponents.wxs"),
81 "-bf",
82 "-bindpath", Path.Combine(folder, "data"),
83 // Use names that aren't excluded in default .gitignores.
84 "-bindpath", $"AlphaBits={Path.Combine(folder, "data", "alpha")}",
85 "-bindpath", $"PowerBits={Path.Combine(folder, "data", "powerpc")}",
86 "-bindpath", $"{Path.Combine(folder, "data", "alpha")}",
87 "-bindpath", $"{Path.Combine(folder, "data", "powerpc")}",
88 "-intermediateFolder", intermediateFolder,
89 "-o", wixlibPath,
90 });
91
92 Assert.Equal(103, result.ExitCode);
93 }
94 }
95 }
96}
diff --git a/src/test/WixToolsetTest.CoreIntegration/BootstrapperApplicationFixture.cs b/src/test/WixToolsetTest.CoreIntegration/BootstrapperApplicationFixture.cs
deleted file mode 100644
index 9bdc9496..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/BootstrapperApplicationFixture.cs
+++ /dev/null
@@ -1,46 +0,0 @@
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 BootstrapperApplicationFixture
14 {
15 [Fact]
16 public void CanSetBootstrapperApplicationDllDpiAwareness()
17 {
18 var folder = TestData.Get(@"TestData\BootstrapperApplication");
19
20 using (var fs = new DisposableFileSystem())
21 {
22 var baseFolder = fs.GetFolder();
23 var intermediateFolder = Path.Combine(baseFolder, "obj");
24 var wixlibPath = Path.Combine(intermediateFolder, @"test.wixlib");
25
26 var result = WixRunner.Execute(new[]
27 {
28 "build",
29 Path.Combine(folder, "DpiAwareness.wxs"),
30 "-intermediateFolder", intermediateFolder,
31 "-o", wixlibPath,
32 });
33
34 result.AssertSuccess();
35
36 var intermediate = Intermediate.Load(wixlibPath);
37 var allSymbols = intermediate.Sections.SelectMany(s => s.Symbols);
38 var baDllSymbol = allSymbols.OfType<WixBootstrapperApplicationDllSymbol>()
39 .SingleOrDefault();
40 Assert.NotNull(baDllSymbol);
41
42 Assert.Equal(WixBootstrapperApplicationDpiAwarenessType.GdiScaled, baDllSymbol.DpiAwareness);
43 }
44 }
45 }
46}
diff --git a/src/test/WixToolsetTest.CoreIntegration/BundleExtractionFixture.cs b/src/test/WixToolsetTest.CoreIntegration/BundleExtractionFixture.cs
deleted file mode 100644
index b33b8891..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/BundleExtractionFixture.cs
+++ /dev/null
@@ -1,58 +0,0 @@
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;
9 using WixToolset.Core.TestPackage;
10 using WixToolset.Data;
11 using WixToolset.Extensibility.Services;
12 using Xunit;
13
14 public class BundleExtractionFixture
15 {
16 [Fact]
17 public void CanExtractBundleWithDetachedContainer()
18 {
19 var folder = TestData.Get(@"TestData");
20
21 using (var fs = new DisposableFileSystem())
22 {
23 var baseFolder = fs.GetFolder();
24 var intermediateFolder = Path.Combine(baseFolder, "obj");
25 var exePath = Path.Combine(baseFolder, @"bin\test.exe");
26 var pdbPath = Path.Combine(baseFolder, @"bin\test.wixpdb");
27 var extractFolderPath = Path.Combine(baseFolder, "extract");
28 var baFolderPath = Path.Combine(extractFolderPath, "UX");
29 var attachedContainerFolderPath = Path.Combine(extractFolderPath, "AttachedContainer");
30
31 // TODO: use WixRunner.Execute(string[]) to always go through the command line.
32 var serviceProvider = WixToolsetServiceProviderFactory.CreateServiceProvider();
33 var result = WixRunner.Execute(new[]
34 {
35 "build",
36 Path.Combine(folder, "BundleWithDetachedContainer", "Bundle.wxs"),
37 Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
38 Path.Combine(folder, "BundleWithPackageGroupRef", "MinimalPackageGroup.wxs"),
39 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
40 "-bindpath", Path.Combine(folder, ".Data"),
41 "-intermediateFolder", intermediateFolder,
42 "-o", exePath,
43 }, serviceProvider, out var messages).Result;
44
45 WixRunnerResult.AssertSuccess(result, messages);
46 Assert.Empty(messages.Where(m => m.Level == MessageLevel.Warning));
47
48 Assert.True(File.Exists(exePath));
49
50 var unbinder = serviceProvider.GetService<IUnbinder>();
51 unbinder.Unbind(exePath, OutputType.Bundle, extractFolderPath);
52
53 Assert.True(File.Exists(Path.Combine(baFolderPath, "manifest.xml")));
54 Assert.False(Directory.Exists(attachedContainerFolderPath));
55 }
56 }
57 }
58}
diff --git a/src/test/WixToolsetTest.CoreIntegration/BundleFixture.cs b/src/test/WixToolsetTest.CoreIntegration/BundleFixture.cs
deleted file mode 100644
index ab644080..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/BundleFixture.cs
+++ /dev/null
@@ -1,478 +0,0 @@
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 System.Xml;
11 using Example.Extension;
12 using WixBuildTools.TestSupport;
13 using WixToolset.Core;
14 using WixToolset.Core.Burn;
15 using WixToolset.Core.TestPackage;
16 using WixToolset.Data;
17 using WixToolset.Data.Burn;
18 using WixToolset.Data.Symbols;
19 using WixToolset.Dtf.Resources;
20 using Xunit;
21
22 public class BundleFixture
23 {
24 [Fact]
25 public void CanBuildMultiFileBundle()
26 {
27 var folder = TestData.Get(@"TestData\SimpleBundle");
28
29 using (var fs = new DisposableFileSystem())
30 {
31 var baseFolder = fs.GetFolder();
32 var intermediateFolder = Path.Combine(baseFolder, "obj");
33
34 var result = WixRunner.Execute(new[]
35 {
36 "build",
37 Path.Combine(folder, "MultiFileBootstrapperApplication.wxs"),
38 Path.Combine(folder, "MultiFileBundle.wxs"),
39 "-loc", Path.Combine(folder, "Bundle.en-us.wxl"),
40 "-bindpath", Path.Combine(folder, "data"),
41 "-intermediateFolder", intermediateFolder,
42 "-o", Path.Combine(baseFolder, @"bin\test.exe")
43 });
44
45 result.AssertSuccess();
46
47 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.exe")));
48 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.wixpdb")));
49 }
50 }
51
52 [Fact]
53 public void CanBuildSimpleBundle()
54 {
55 var folder = TestData.Get(@"TestData\SimpleBundle");
56
57 using (var fs = new DisposableFileSystem())
58 {
59 var baseFolder = fs.GetFolder();
60 var intermediateFolder = Path.Combine(baseFolder, "obj");
61 var exePath = Path.Combine(baseFolder, @"bin\test.exe");
62 var pdbPath = Path.Combine(baseFolder, @"bin\test.wixpdb");
63 var baFolderPath = Path.Combine(baseFolder, "ba");
64 var extractFolderPath = Path.Combine(baseFolder, "extract");
65
66 var result = WixRunner.Execute(new[]
67 {
68 "build",
69 Path.Combine(folder, "Bundle.wxs"),
70 "-loc", Path.Combine(folder, "Bundle.en-us.wxl"),
71 "-bindpath", Path.Combine(folder, "data"),
72 "-intermediateFolder", intermediateFolder,
73 "-o", exePath,
74 });
75
76 result.AssertSuccess();
77 Assert.Empty(result.Messages.Where(m => m.Level == MessageLevel.Warning));
78
79 Assert.True(File.Exists(exePath));
80 Assert.True(File.Exists(pdbPath));
81
82 using (var wixOutput = WixOutput.Read(pdbPath))
83 {
84
85 var intermediate = Intermediate.Load(wixOutput);
86 var section = intermediate.Sections.Single();
87
88 var bundleSymbol = section.Symbols.OfType<WixBundleSymbol>().Single();
89 Assert.Equal("1.0.0.0", bundleSymbol.Version);
90
91 var previousVersion = bundleSymbol.Fields[(int)WixBundleSymbolFields.Version].PreviousValue;
92 Assert.Equal("!(bind.packageVersion.test.msi)", previousVersion.AsString());
93
94 var msiSymbol = section.Symbols.OfType<WixBundlePackageSymbol>().Single();
95 Assert.Equal("test.msi", msiSymbol.Id.Id);
96
97 var extractResult = BundleExtractor.ExtractBAContainer(null, exePath, baFolderPath, extractFolderPath);
98 extractResult.AssertSuccess();
99
100 var burnManifestData = wixOutput.GetData(BurnConstants.BurnManifestWixOutputStreamName);
101 var extractedBurnManifestData = File.ReadAllText(Path.Combine(baFolderPath, "manifest.xml"), Encoding.UTF8);
102 Assert.Equal(extractedBurnManifestData, burnManifestData);
103
104 var baManifestData = wixOutput.GetData(BurnConstants.BootstrapperApplicationDataWixOutputStreamName);
105 var extractedBaManifestData = File.ReadAllText(Path.Combine(baFolderPath, "BootstrapperApplicationData.xml"), Encoding.UTF8);
106 Assert.Equal(extractedBaManifestData, baManifestData);
107
108 var bextManifestData = wixOutput.GetData(BurnConstants.BundleExtensionDataWixOutputStreamName);
109 var extractedBextManifestData = File.ReadAllText(Path.Combine(baFolderPath, "BundleExtensionData.xml"), Encoding.UTF8);
110 Assert.Equal(extractedBextManifestData, bextManifestData);
111
112 var logElements = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Log");
113 var logElement = (XmlNode)Assert.Single(logElements);
114 Assert.Equal("<Log PathVariable='WixBundleLog' Prefix='~TestBundle' Extension='log' />", logElement.GetTestXml());
115
116 var registrationElements = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Registration");
117 var registrationElement = (XmlNode)Assert.Single(registrationElements);
118 Assert.Equal($"<Registration Id='{bundleSymbol.BundleId}' ExecutableName='test.exe' PerMachine='yes' Tag='' Version='1.0.0.0' ProviderKey='{bundleSymbol.BundleId}'>" +
119 "<Arp Register='yes' DisplayName='~TestBundle' DisplayVersion='1.0.0.0' Publisher='Example Corporation' />" +
120 "</Registration>", registrationElement.GetTestXml());
121
122 var msiPayloads = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Payload[@Id='test.msi']");
123 var msiPayload = (XmlNode)Assert.Single(msiPayloads);
124 Assert.Equal("<Payload Id='test.msi' FilePath='test.msi' FileSize='*' Hash='*' Packaging='embedded' SourcePath='a0' Container='WixAttachedContainer' />",
125 msiPayload.GetTestXml(new Dictionary<string, List<string>>() { { "Payload", new List<string> { "FileSize", "Hash" } } }));
126 }
127
128 var manifestResource = new Resource(ResourceType.Manifest, "#1", 1033);
129 manifestResource.Load(exePath);
130 var actualManifestData = Encoding.UTF8.GetString(manifestResource.Data);
131 Assert.Equal("<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
132 "<assembly manifestVersion=\"1.0\" xmlns=\"urn:schemas-microsoft-com:asm.v1\">" +
133 "<assemblyIdentity name=\"test.exe\" version=\"1.0.0.0\" processorArchitecture=\"x86\" type=\"win32\" />" +
134 "<description>~TestBundle</description>" +
135 "<dependency><dependentAssembly><assemblyIdentity name=\"Microsoft.Windows.Common-Controls\" version=\"6.0.0.0\" processorArchitecture=\"x86\" publicKeyToken=\"6595b64144ccf1df\" language=\"*\" type=\"win32\" /></dependentAssembly></dependency>" +
136 "<compatibility xmlns=\"urn:schemas-microsoft-com:compatibility.v1\"><application><supportedOS Id=\"{e2011457-1546-43c5-a5fe-008deee3d3f0}\" /><supportedOS Id=\"{35138b9a-5d96-4fbd-8e2d-a2440225f93a}\" /><supportedOS Id=\"{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}\" /><supportedOS Id=\"{1f676c76-80e1-4239-95bb-83d0f6d0da78}\" /><supportedOS Id=\"{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}\" /></application></compatibility>" +
137 "<trustInfo xmlns=\"urn:schemas-microsoft-com:asm.v3\"><security><requestedPrivileges><requestedExecutionLevel level=\"asInvoker\" uiAccess=\"false\" /></requestedPrivileges></security></trustInfo>" +
138 "<application xmlns=\"urn:schemas-microsoft-com:asm.v3\"><windowsSettings><dpiAware xmlns=\"http://schemas.microsoft.com/SMI/2005/WindowsSettings\">true/pm</dpiAware><dpiAwareness xmlns=\"http://schemas.microsoft.com/SMI/2016/WindowsSettings\">PerMonitorV2, PerMonitor</dpiAwareness></windowsSettings></application>" +
139 "</assembly>", actualManifestData);
140 }
141 }
142
143 [Fact]
144 public void CanBuildX64Bundle()
145 {
146 var folder = TestData.Get(@"TestData\SimpleBundle");
147
148 using (var fs = new DisposableFileSystem())
149 {
150 var baseFolder = fs.GetFolder();
151 var intermediateFolder = Path.Combine(baseFolder, "obj");
152 var exePath = Path.Combine(baseFolder, @"bin\test.exe");
153 var pdbPath = Path.Combine(baseFolder, @"bin\test.wixpdb");
154 var baFolderPath = Path.Combine(baseFolder, "ba");
155 var extractFolderPath = Path.Combine(baseFolder, "extract");
156
157 var result = WixRunner.Execute(false, new[] // TODO: go back to elevating warnings as errors.
158 {
159 "build",
160 "-arch", "x64",
161 Path.Combine(folder, "Bundle.wxs"),
162 "-loc", Path.Combine(folder, "Bundle.en-us.wxl"),
163 "-bindpath", Path.Combine(folder, "data"),
164 "-intermediateFolder", intermediateFolder,
165 "-o", exePath,
166 });
167
168 result.AssertSuccess();
169 var warning = Assert.Single(result.Messages.Where(m => m.Level == MessageLevel.Warning));
170 Assert.Equal((int)WarningMessages.Ids.ExperimentalBundlePlatform, warning.Id);
171
172 Assert.True(File.Exists(exePath));
173 Assert.True(File.Exists(pdbPath));
174
175 var manifestResource = new Resource(ResourceType.Manifest, "#1", 1033);
176 manifestResource.Load(exePath);
177 var actualManifestData = Encoding.UTF8.GetString(manifestResource.Data);
178 Assert.Equal("<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
179 "<assembly manifestVersion=\"1.0\" xmlns=\"urn:schemas-microsoft-com:asm.v1\">" +
180 "<assemblyIdentity name=\"test.exe\" version=\"1.0.0.0\" processorArchitecture=\"amd64\" type=\"win32\" />" +
181 "<description>~TestBundle</description>" +
182 "<dependency><dependentAssembly><assemblyIdentity name=\"Microsoft.Windows.Common-Controls\" version=\"6.0.0.0\" processorArchitecture=\"amd64\" publicKeyToken=\"6595b64144ccf1df\" language=\"*\" type=\"win32\" /></dependentAssembly></dependency>" +
183 "<compatibility xmlns=\"urn:schemas-microsoft-com:compatibility.v1\"><application><supportedOS Id=\"{e2011457-1546-43c5-a5fe-008deee3d3f0}\" /><supportedOS Id=\"{35138b9a-5d96-4fbd-8e2d-a2440225f93a}\" /><supportedOS Id=\"{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}\" /><supportedOS Id=\"{1f676c76-80e1-4239-95bb-83d0f6d0da78}\" /><supportedOS Id=\"{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}\" /></application></compatibility>" +
184 "<trustInfo xmlns=\"urn:schemas-microsoft-com:asm.v3\"><security><requestedPrivileges><requestedExecutionLevel level=\"asInvoker\" uiAccess=\"false\" /></requestedPrivileges></security></trustInfo>" +
185 "<application xmlns=\"urn:schemas-microsoft-com:asm.v3\"><windowsSettings><dpiAware xmlns=\"http://schemas.microsoft.com/SMI/2005/WindowsSettings\">true/pm</dpiAware><dpiAwareness xmlns=\"http://schemas.microsoft.com/SMI/2016/WindowsSettings\">PerMonitorV2, PerMonitor</dpiAwareness></windowsSettings></application>" +
186 "</assembly>", actualManifestData);
187 }
188 }
189
190 [Fact]
191 public void CanBuildSimpleBundleUsingExtensionBA()
192 {
193 var extensionPath = Path.GetFullPath(new Uri(typeof(ExampleExtensionFactory).Assembly.CodeBase).LocalPath);
194 var folder = TestData.Get(@"TestData\SimpleBundle");
195
196 using (var fs = new DisposableFileSystem())
197 {
198 var baseFolder = fs.GetFolder();
199 var intermediateFolder = Path.Combine(baseFolder, "obj");
200
201 var result = WixRunner.Execute(new[]
202 {
203 "build",
204 Path.Combine(folder, "MultiFileBundle.wxs"),
205 "-loc", Path.Combine(folder, "Bundle.en-us.wxl"),
206 "-ext", extensionPath,
207 "-bindpath", Path.Combine(folder, "data"),
208 "-intermediateFolder", intermediateFolder,
209 "-o", Path.Combine(baseFolder, @"bin\test.exe")
210 });
211
212 result.AssertSuccess();
213
214 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.exe")));
215 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.wixpdb")));
216 }
217 }
218
219 [Fact]
220 public void CanBuildSingleExeBundle()
221 {
222 var folder = TestData.Get(@"TestData");
223
224 using (var fs = new DisposableFileSystem())
225 {
226 var baseFolder = fs.GetFolder();
227 var intermediateFolder = Path.Combine(baseFolder, "obj");
228 var exePath = Path.Combine(baseFolder, @"bin\test.exe");
229
230 var result = WixRunner.Execute(new[]
231 {
232 "build",
233 Path.Combine(folder, "SingleExeBundle", "SingleExePackageGroup.wxs"),
234 Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
235 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
236 "-bindpath", Path.Combine(folder, ".Data"),
237 "-intermediateFolder", intermediateFolder,
238 "-o", exePath,
239 });
240
241 result.AssertSuccess();
242
243 Assert.True(File.Exists(exePath));
244 }
245 }
246
247 [Fact]
248 public void CanBuildSingleExeRemotePayloadBundle()
249 {
250 var folder = TestData.Get(@"TestData");
251
252 using (var fs = new DisposableFileSystem())
253 {
254 var baseFolder = fs.GetFolder();
255 var intermediateFolder = Path.Combine(baseFolder, "obj");
256 var exePath = Path.Combine(baseFolder, @"bin\test.exe");
257 var pdbPath = Path.Combine(baseFolder, @"bin\test.wixpdb");
258
259 var result = WixRunner.Execute(new[]
260 {
261 "build",
262 Path.Combine(folder, "SingleExeBundle", "SingleExeRemotePayload.wxs"),
263 Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
264 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
265 "-intermediateFolder", intermediateFolder,
266 "-o", exePath,
267 });
268
269 result.AssertSuccess();
270
271 Assert.True(File.Exists(exePath));
272 Assert.True(File.Exists(pdbPath));
273
274 using (var wixOutput = WixOutput.Read(pdbPath))
275 {
276 var intermediate = Intermediate.Load(wixOutput);
277 var section = intermediate.Sections.Single();
278
279 var payloadSymbol = section.Symbols.OfType<WixBundlePayloadSymbol>().Where(x => x.Id.Id == "NetFx462Web").Single();
280 Assert.Equal(Int64.MaxValue, payloadSymbol.FileSize);
281 }
282 }
283 }
284
285 [Fact]
286 public void CantBuildWithDuplicateCacheIds()
287 {
288 var folder = TestData.Get(@"TestData");
289
290 using (var fs = new DisposableFileSystem())
291 {
292 var baseFolder = fs.GetFolder();
293 var intermediateFolder = Path.Combine(baseFolder, "obj");
294 var exePath = Path.Combine(baseFolder, @"bin\test.exe");
295
296 var result = WixRunner.Execute(new[]
297 {
298 "build",
299 Path.Combine(folder, "BadInput", "DuplicateCacheIds.wxs"),
300 Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
301 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
302 "-bindpath", Path.Combine(folder, ".Data"),
303 "-intermediateFolder", intermediateFolder,
304 "-o", exePath,
305 });
306
307 Assert.Equal(8001, result.ExitCode);
308 }
309 }
310
311 [Fact]
312 public void CantBuildWithDuplicatePayloadNames()
313 {
314 var folder = TestData.Get(@"TestData");
315
316 using (var fs = new DisposableFileSystem())
317 {
318 var baseFolder = fs.GetFolder();
319 var intermediateFolder = Path.Combine(baseFolder, "obj");
320 var exePath = Path.Combine(baseFolder, @"bin\test.exe");
321
322 var result = WixRunner.Execute(new[]
323 {
324 "build",
325 Path.Combine(folder, "BadInput", "DuplicatePayloadNames.wxs"),
326 Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
327 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
328 "-bindpath", Path.Combine(folder, ".Data"),
329 "-intermediateFolder", intermediateFolder,
330 "-o", exePath,
331 });
332
333 var attachedContainerWarnings = result.Messages.Where(m => m.Id == (int)BurnBackendWarnings.Ids.AttachedContainerPayloadCollision)
334 .Select(m => m.ToString())
335 .ToArray();
336 WixAssert.CompareLineByLine(new string[]
337 {
338 "The Payload 'Auto2' has a duplicate Name 'burn.exe' in the attached container. When extracting the bundle with dark.exe, the file will get overwritten.",
339 }, attachedContainerWarnings);
340
341 var baContainerErrors = result.Messages.Where(m => m.Id == (int)BurnBackendErrors.Ids.BAContainerPayloadCollision)
342 .Select(m => m.ToString())
343 .ToArray();
344 WixAssert.CompareLineByLine(new string[]
345 {
346 "The Payload 'DuplicatePayloadNames.wxs' has a duplicate Name 'fakeba.dll' in the BA container. When extracting the container at runtime, the file will get overwritten.",
347 "The Payload 'uxTxMXPVMXwQrPTMIGa5WGt93w0Ns' has a duplicate Name 'BootstrapperApplicationData.xml' in the BA container. When extracting the container at runtime, the file will get overwritten.",
348 "The Payload 'uxYRbgitOs0K878jn5L_z7LdJ21KI' has a duplicate Name 'BundleExtensionData.xml' in the BA container. When extracting the container at runtime, the file will get overwritten.",
349 }, baContainerErrors);
350
351 var externalErrors = result.Messages.Where(m => m.Id == (int)BurnBackendErrors.Ids.ExternalPayloadCollision)
352 .Select(m => m.ToString())
353 .ToArray();
354 WixAssert.CompareLineByLine(new string[]
355 {
356 "The external Payload 'HiddenPersistedBundleVariable.wxs' has a duplicate Name 'PayloadCollision'. When building the bundle or laying out the bundle, the file will get overwritten.",
357 "The external Container 'MsiPackagesContainer' has a duplicate Name 'ContainerCollision'. When building the bundle or laying out the bundle, the file will get overwritten.",
358 }, externalErrors);
359
360 var packageCacheErrors = result.Messages.Where(m => m.Id == (int)BurnBackendErrors.Ids.PackageCachePayloadCollision)
361 .Select(m => m.ToString())
362 .ToArray();
363 WixAssert.CompareLineByLine(new string[]
364 {
365 "The Payload 'test.msi' has a duplicate Name 'test.msi' in package 'test.msi'. When caching the package, the file will get overwritten.",
366 }, packageCacheErrors);
367
368 Assert.Equal(14, result.Messages.Length);
369 }
370 }
371
372 [Fact]
373 public void CantBuildWithOrphanPayload()
374 {
375 var folder = TestData.Get(@"TestData");
376
377 using (var fs = new DisposableFileSystem())
378 {
379 var baseFolder = fs.GetFolder();
380 var intermediateFolder = Path.Combine(baseFolder, "obj");
381 var exePath = Path.Combine(baseFolder, @"bin\test.exe");
382
383 var result = WixRunner.Execute(new[]
384 {
385 "build",
386 Path.Combine(folder, "BadInput", "OrphanPayload.wxs"),
387 Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
388 Path.Combine(folder, "BundleWithPackageGroupRef", "MinimalPackageGroup.wxs"),
389 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
390 "-bindpath", Path.Combine(folder, ".Data"),
391 "-intermediateFolder", intermediateFolder,
392 "-o", exePath,
393 });
394
395 Assert.Equal((int)LinkerErrors.Ids.OrphanedPayload, result.ExitCode);
396 }
397 }
398
399 [Fact]
400 public void CantBuildWithPackageInMultipleContainers()
401 {
402 var folder = TestData.Get(@"TestData");
403
404 using (var fs = new DisposableFileSystem())
405 {
406 var baseFolder = fs.GetFolder();
407 var intermediateFolder = Path.Combine(baseFolder, "obj");
408 var exePath = Path.Combine(baseFolder, @"bin\test.exe");
409
410 var result = WixRunner.Execute(new[]
411 {
412 "build",
413 Path.Combine(folder, "BadInput", "PackageInMultipleContainers.wxs"),
414 Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
415 Path.Combine(folder, "BundleWithPackageGroupRef", "MinimalPackageGroup.wxs"),
416 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
417 "-bindpath", Path.Combine(folder, ".Data"),
418 "-intermediateFolder", intermediateFolder,
419 "-o", exePath,
420 });
421
422 Assert.Equal((int)LinkerErrors.Ids.PackageInMultipleContainers, result.ExitCode);
423 }
424 }
425
426 [Fact]
427 public void CantBuildWithUnscheduledPackage()
428 {
429 var folder = TestData.Get(@"TestData");
430
431 using (var fs = new DisposableFileSystem())
432 {
433 var baseFolder = fs.GetFolder();
434 var intermediateFolder = Path.Combine(baseFolder, "obj");
435 var exePath = Path.Combine(baseFolder, @"bin\test.exe");
436
437 var result = WixRunner.Execute(new[]
438 {
439 "build",
440 Path.Combine(folder, "BadInput", "UnscheduledPackage.wxs"),
441 Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
442 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
443 "-bindpath", Path.Combine(folder, ".Data"),
444 "-intermediateFolder", intermediateFolder,
445 "-o", exePath,
446 });
447
448 Assert.Equal((int)LinkerErrors.Ids.UnscheduledChainPackage, result.ExitCode);
449 }
450 }
451
452 [Fact]
453 public void CantBuildWithUnscheduledRollbackBoundary()
454 {
455 var folder = TestData.Get(@"TestData");
456
457 using (var fs = new DisposableFileSystem())
458 {
459 var baseFolder = fs.GetFolder();
460 var intermediateFolder = Path.Combine(baseFolder, "obj");
461 var exePath = Path.Combine(baseFolder, @"bin\test.exe");
462
463 var result = WixRunner.Execute(new[]
464 {
465 "build",
466 Path.Combine(folder, "BadInput", "UnscheduledRollbackBoundary.wxs"),
467 Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
468 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
469 "-bindpath", Path.Combine(folder, ".Data"),
470 "-intermediateFolder", intermediateFolder,
471 "-o", exePath,
472 });
473
474 Assert.Equal((int)LinkerErrors.Ids.UnscheduledRollbackBoundary, result.ExitCode);
475 }
476 }
477 }
478}
diff --git a/src/test/WixToolsetTest.CoreIntegration/BundleManifestFixture.cs b/src/test/WixToolsetTest.CoreIntegration/BundleManifestFixture.cs
deleted file mode 100644
index 6d769bd6..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/BundleManifestFixture.cs
+++ /dev/null
@@ -1,365 +0,0 @@
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 Example.Extension;
9 using WixBuildTools.TestSupport;
10 using WixToolset.Core.TestPackage;
11 using Xunit;
12
13 public class BundleManifestFixture
14 {
15 [Fact]
16 public void PopulatesBAManifestWithBootstrapperApplicationBundleCustomData()
17 {
18 var folder = TestData.Get(@"TestData");
19
20 using (var fs = new DisposableFileSystem())
21 {
22 var baseFolder = fs.GetFolder();
23 var intermediateFolder = Path.Combine(baseFolder, "obj");
24 var bundlePath = Path.Combine(baseFolder, @"bin\test.exe");
25 var baFolderPath = Path.Combine(baseFolder, "ba");
26 var extractFolderPath = Path.Combine(baseFolder, "extract");
27
28 var result = WixRunner.Execute(new[]
29 {
30 "build",
31 Path.Combine(folder, "BundleCustomTable", "BundleCustomTable.wxs"),
32 Path.Combine(folder, "BundleWithPackageGroupRef", "MinimalPackageGroup.wxs"),
33 Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
34 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
35 "-intermediateFolder", intermediateFolder,
36 "-o", bundlePath
37 });
38
39 result.AssertSuccess();
40
41 Assert.True(File.Exists(bundlePath));
42
43 var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath);
44 extractResult.AssertSuccess();
45
46 var customElements = extractResult.SelectBADataNodes("/ba:BootstrapperApplicationData/ba:BundleCustomTableBA");
47 Assert.Equal(3, customElements.Count);
48 Assert.Equal("<BundleCustomTableBA Id='one' Column2='two' />", customElements[0].GetTestXml());
49 Assert.Equal("<BundleCustomTableBA Id='&gt;' Column2='&lt;' />", customElements[1].GetTestXml());
50 Assert.Equal("<BundleCustomTableBA Id='1' Column2='2' />", customElements[2].GetTestXml());
51 }
52 }
53
54 [Fact]
55 public void PopulatesBAManifestWithPackageInformation()
56 {
57 var folder = TestData.Get(@"TestData");
58
59 using (var fs = new DisposableFileSystem())
60 {
61 var baseFolder = fs.GetFolder();
62 var intermediateFolder = Path.Combine(baseFolder, "obj");
63 var bundlePath = Path.Combine(baseFolder, @"bin\test.exe");
64 var baFolderPath = Path.Combine(baseFolder, "ba");
65 var extractFolderPath = Path.Combine(baseFolder, "extract");
66
67 var result = WixRunner.Execute(false, new[]
68 {
69 "build",
70 Path.Combine(folder, "CustomPackageDescription", "CustomPackageDescription.wxs"),
71 Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
72 "-bindpath", Path.Combine(folder, ".Data"),
73 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
74 "-intermediateFolder", intermediateFolder,
75 "-o", bundlePath
76 });
77
78 result.AssertSuccess();
79
80 Assert.True(File.Exists(bundlePath));
81
82 var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath);
83 extractResult.AssertSuccess();
84
85 var packageElements = extractResult.SelectBADataNodes("/ba:BootstrapperApplicationData/ba:WixPackageProperties");
86 var ignoreAttributesByElementName = new Dictionary<string, List<string>>
87 {
88 { "WixPackageProperties", new List<string> { "DownloadSize", "PackageSize", "InstalledSize", "Version" } },
89 };
90 Assert.Equal(3, packageElements.Count);
91 Assert.Equal("<WixPackageProperties Package='burn.exe' Vital='yes' DisplayName='Windows Installer XML Toolset' Description='WiX Toolset Bootstrapper' DownloadSize='*' PackageSize='*' InstalledSize='*' PackageType='Exe' Permanent='yes' LogPathVariable='WixBundleLog_burn.exe' RollbackLogPathVariable='WixBundleRollbackLog_burn.exe' Compressed='yes' Version='*' Cache='keep' />", packageElements[0].GetTestXml(ignoreAttributesByElementName));
92 Assert.Equal("<WixPackageProperties Package='RemotePayloadExe' Vital='yes' DisplayName='Override RemotePayload display name' Description='Override RemotePayload description' DownloadSize='1' PackageSize='1' InstalledSize='1' PackageType='Exe' Permanent='yes' LogPathVariable='WixBundleLog_RemotePayloadExe' RollbackLogPathVariable='WixBundleRollbackLog_RemotePayloadExe' Compressed='no' Version='1.0.0.0' Cache='keep' />", packageElements[1].GetTestXml());
93 Assert.Equal("<WixPackageProperties Package='calc.exe' Vital='yes' DisplayName='Override harvested display name' Description='Override harvested description' DownloadSize='*' PackageSize='*' InstalledSize='*' PackageType='Exe' Permanent='yes' LogPathVariable='WixBundleLog_calc.exe' RollbackLogPathVariable='WixBundleRollbackLog_calc.exe' Compressed='yes' Version='*' Cache='keep' />", packageElements[2].GetTestXml(ignoreAttributesByElementName));
94 }
95 }
96
97 [Fact]
98 public void PopulatesBAManifestWithPayloadInformation()
99 {
100 var folder = TestData.Get(@"TestData");
101
102 using (var fs = new DisposableFileSystem())
103 {
104 var baseFolder = fs.GetFolder();
105 var intermediateFolder = Path.Combine(baseFolder, "obj");
106 var bundlePath = Path.Combine(baseFolder, @"bin\test.exe");
107 var baFolderPath = Path.Combine(baseFolder, "ba");
108 var extractFolderPath = Path.Combine(baseFolder, "extract");
109
110 var result = WixRunner.Execute(false, new[]
111 {
112 "build",
113 Path.Combine(folder, "SharedPayloadsBetweenPackages", "SharedPayloadsBetweenPackages.wxs"),
114 Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
115 "-bindpath", Path.Combine(folder, ".Data"),
116 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
117 "-intermediateFolder", intermediateFolder,
118 "-o", bundlePath
119 });
120
121 result.AssertSuccess();
122
123 Assert.True(File.Exists(bundlePath));
124
125 var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath);
126 extractResult.AssertSuccess();
127
128 var payloadElements = extractResult.SelectBADataNodes("/ba:BootstrapperApplicationData/ba:WixPayloadProperties");
129 var ignoreAttributesByElementName = new Dictionary<string, List<string>>
130 {
131 { "WixPayloadProperties", new List<string> { "Size" } },
132 };
133 Assert.Equal(4, payloadElements.Count);
134 Assert.Equal("<WixPayloadProperties Package='credwiz.exe' Payload='SourceFilePayload' Container='WixAttachedContainer' Name='SharedPayloadsBetweenPackages.wxs' Size='*' />", payloadElements[0].GetTestXml(ignoreAttributesByElementName));
135 Assert.Equal("<WixPayloadProperties Package='credwiz.exe' Payload='credwiz.exe' Container='WixAttachedContainer' Name='credwiz.exe' Size='*' />", payloadElements[1].GetTestXml(ignoreAttributesByElementName));
136 Assert.Equal("<WixPayloadProperties Package='cscript.exe' Payload='SourceFilePayload' Container='WixAttachedContainer' Name='SharedPayloadsBetweenPackages.wxs' Size='*' />", payloadElements[2].GetTestXml(ignoreAttributesByElementName));
137 Assert.Equal("<WixPayloadProperties Package='cscript.exe' Payload='cscript.exe' Container='WixAttachedContainer' Name='cscript.exe' Size='*' />", payloadElements[3].GetTestXml(ignoreAttributesByElementName));
138 }
139 }
140
141 [Fact]
142 public void PopulatesBEManifestWithBundleExtensionBundleCustomData()
143 {
144 var folder = TestData.Get(@"TestData");
145
146 using (var fs = new DisposableFileSystem())
147 {
148 var baseFolder = fs.GetFolder();
149 var intermediateFolder = Path.Combine(baseFolder, "obj");
150 var bundlePath = Path.Combine(baseFolder, @"bin\test.exe");
151 var baFolderPath = Path.Combine(baseFolder, "ba");
152 var extractFolderPath = Path.Combine(baseFolder, "extract");
153
154 var result = WixRunner.Execute(new[]
155 {
156 "build",
157 Path.Combine(folder, "BundleCustomTable", "BundleCustomTable.wxs"),
158 Path.Combine(folder, "BundleWithPackageGroupRef", "MinimalPackageGroup.wxs"),
159 Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
160 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
161 "-intermediateFolder", intermediateFolder,
162 "-o", bundlePath
163 });
164
165 result.AssertSuccess();
166
167 Assert.True(File.Exists(bundlePath));
168
169 var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath);
170 extractResult.AssertSuccess();
171
172 var customElements = extractResult.SelectBundleExtensionDataNodes("/be:BundleExtensionData/be:BundleExtension[@Id='CustomTableExtension']/be:BundleCustomTableBE");
173 Assert.Equal(3, customElements.Count);
174 Assert.Equal("<BundleCustomTableBE Id='one' Column2='two' />", customElements[0].GetTestXml());
175 Assert.Equal("<BundleCustomTableBE Id='&gt;' Column2='&lt;' />", customElements[1].GetTestXml());
176 Assert.Equal("<BundleCustomTableBE Id='1' Column2='2' />", customElements[2].GetTestXml());
177 }
178 }
179
180 [Fact]
181 public void PopulatesManifestWithBundleExtension()
182 {
183 var folder = TestData.Get(@"TestData");
184
185 using (var fs = new DisposableFileSystem())
186 {
187 var baseFolder = fs.GetFolder();
188 var intermediateFolder = Path.Combine(baseFolder, "obj");
189 var bundlePath = Path.Combine(baseFolder, @"bin\test.exe");
190 var baFolderPath = Path.Combine(baseFolder, "ba");
191 var extractFolderPath = Path.Combine(baseFolder, "extract");
192
193 var result = WixRunner.Execute(new[]
194 {
195 "build",
196 Path.Combine(folder, "BundleExtension", "BundleExtension.wxs"),
197 Path.Combine(folder, "BundleExtension", "SimpleBundleExtension.wxs"),
198 Path.Combine(folder, "BundleWithPackageGroupRef", "MinimalPackageGroup.wxs"),
199 Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
200 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
201 "-intermediateFolder", intermediateFolder,
202 "-o", bundlePath
203 });
204
205 result.AssertSuccess();
206
207 Assert.True(File.Exists(bundlePath));
208
209 var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath);
210 extractResult.AssertSuccess();
211
212 var bundleExtensions = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:BundleExtension");
213 Assert.Equal(1, bundleExtensions.Count);
214 Assert.Equal("<BundleExtension Id='ExampleBext' EntryPayloadId='ExampleBext' />", bundleExtensions[0].GetTestXml());
215
216 var bundleExtensionPayloads = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:UX/burn:Payload[@Id='ExampleBext']");
217 Assert.Equal(1, bundleExtensionPayloads.Count);
218 var ignored = new Dictionary<string, List<string>>
219 {
220 { "Payload", new List<string> { "FileSize", "Hash", "SourcePath" } },
221 };
222 Assert.Equal("<Payload Id='ExampleBext' FilePath='fakebext.dll' FileSize='*' Hash='*' Packaging='embedded' SourcePath='*' />", bundleExtensionPayloads[0].GetTestXml(ignored));
223 }
224 }
225
226 [Fact]
227 public void PopulatesManifestWithBundleExtensionSearches()
228 {
229 var extensionPath = Path.GetFullPath(new Uri(typeof(ExampleExtensionFactory).Assembly.CodeBase).LocalPath);
230 var folder = TestData.Get(@"TestData");
231
232 using (var fs = new DisposableFileSystem())
233 {
234 var baseFolder = fs.GetFolder();
235 var intermediateFolder = Path.Combine(baseFolder, "obj");
236 var bundlePath = Path.Combine(baseFolder, @"bin\test.exe");
237 var baFolderPath = Path.Combine(baseFolder, "ba");
238 var extractFolderPath = Path.Combine(baseFolder, "extract");
239
240 var result = WixRunner.Execute(new[]
241 {
242 "build",
243 Path.Combine(folder, "BundleExtension", "BundleExtensionSearches.wxs"),
244 Path.Combine(folder, "BundleExtension", "BundleWithSearches.wxs"),
245 Path.Combine(folder, "BundleWithPackageGroupRef", "MinimalPackageGroup.wxs"),
246 Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
247 "-ext", extensionPath,
248 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
249 "-intermediateFolder", intermediateFolder,
250 "-o", bundlePath
251 });
252
253 result.AssertSuccess();
254
255 Assert.True(File.Exists(bundlePath));
256
257 var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath);
258 extractResult.AssertSuccess();
259
260 var bundleExtensions = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:BundleExtension");
261 Assert.Equal(1, bundleExtensions.Count);
262 Assert.Equal("<BundleExtension Id='ExampleBundleExtension' EntryPayloadId='ExampleBundleExtension' />", bundleExtensions[0].GetTestXml());
263
264 var extensionSearches = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:ExtensionSearch");
265 Assert.Equal(2, extensionSearches.Count);
266 Assert.Equal("<ExtensionSearch Id='ExampleSearchBar' Variable='SearchBar' Condition='WixBundleInstalled' ExtensionId='ExampleBundleExtension' />", extensionSearches[0].GetTestXml());
267 Assert.Equal("<ExtensionSearch Id='ExampleSearchFoo' Variable='SearchFoo' ExtensionId='ExampleBundleExtension' />", extensionSearches[1].GetTestXml());
268
269 var bundleExtensionDatas = extractResult.SelectBundleExtensionDataNodes("/be:BundleExtensionData/be:BundleExtension[@Id='ExampleBundleExtension']");
270 Assert.Equal(1, bundleExtensionDatas.Count);
271 Assert.Equal("<BundleExtension Id='ExampleBundleExtension'>" +
272 "<ExampleSearch Id='ExampleSearchBar' SearchFor='Bar' />" +
273 "<ExampleSearch Id='ExampleSearchFoo' SearchFor='Foo' />" +
274 "</BundleExtension>", bundleExtensionDatas[0].GetTestXml());
275
276 var exampleSearches = extractResult.SelectBundleExtensionDataNodes("/be:BundleExtensionData/be:BundleExtension[@Id='ExampleBundleExtension']/be:ExampleSearch");
277 Assert.Equal(2, exampleSearches.Count);
278 }
279 }
280
281 [Fact]
282 public void PopulatesManifestWithExePackages()
283 {
284 var folder = TestData.Get(@"TestData");
285
286 using (var fs = new DisposableFileSystem())
287 {
288 var baseFolder = fs.GetFolder();
289 var intermediateFolder = Path.Combine(baseFolder, "obj");
290 var bundlePath = Path.Combine(baseFolder, @"bin\test.exe");
291 var baFolderPath = Path.Combine(baseFolder, "ba");
292 var extractFolderPath = Path.Combine(baseFolder, "extract");
293
294 var result = WixRunner.Execute(new[]
295 {
296 "build",
297 Path.Combine(folder, "SharedPayloadsBetweenPackages", "SharedPayloadsBetweenPackages.wxs"),
298 Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
299 "-bindpath", Path.Combine(folder, ".Data"),
300 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
301 "-intermediateFolder", intermediateFolder,
302 "-o", bundlePath
303 });
304
305 result.AssertSuccess();
306
307 Assert.True(File.Exists(bundlePath));
308
309 var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath);
310 extractResult.AssertSuccess();
311
312 var exePackageElements = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Chain/burn:ExePackage");
313 var ignoreAttributesByElementName = new Dictionary<string, List<string>>
314 {
315 { "ExePackage", new List<string> { "CacheId", "InstallSize", "Size" } },
316 };
317 Assert.Equal(2, exePackageElements.Count);
318 Assert.Equal("<ExePackage Id='credwiz.exe' Cache='keep' CacheId='*' InstallSize='*' Size='*' PerMachine='yes' Permanent='yes' Vital='yes' RollbackBoundaryForward='WixDefaultBoundary' LogPathVariable='WixBundleLog_credwiz.exe' RollbackLogPathVariable='WixBundleRollbackLog_credwiz.exe' DetectCondition='none' InstallArguments='' UninstallArguments='' RepairArguments='' Repairable='no'><PayloadRef Id='credwiz.exe' /><PayloadRef Id='SourceFilePayload' /></ExePackage>", exePackageElements[0].GetTestXml(ignoreAttributesByElementName));
319 Assert.Equal("<ExePackage Id='cscript.exe' Cache='keep' CacheId='*' InstallSize='*' Size='*' PerMachine='yes' Permanent='yes' Vital='yes' RollbackBoundaryBackward='WixDefaultBoundary' LogPathVariable='WixBundleLog_cscript.exe' RollbackLogPathVariable='WixBundleRollbackLog_cscript.exe' DetectCondition='none' InstallArguments='' UninstallArguments='' RepairArguments='' Repairable='no'><PayloadRef Id='cscript.exe' /><PayloadRef Id='SourceFilePayload' /></ExePackage>", exePackageElements[1].GetTestXml(ignoreAttributesByElementName));
320 }
321 }
322
323 [Fact]
324 public void PopulatesManifestWithSetVariables()
325 {
326 var folder = TestData.Get(@"TestData");
327
328 using (var fs = new DisposableFileSystem())
329 {
330 var baseFolder = fs.GetFolder();
331 var intermediateFolder = Path.Combine(baseFolder, "obj");
332 var bundlePath = Path.Combine(baseFolder, @"bin\test.exe");
333 var baFolderPath = Path.Combine(baseFolder, "ba");
334 var extractFolderPath = Path.Combine(baseFolder, "extract");
335
336 var result = WixRunner.Execute(new[]
337 {
338 "build",
339 Path.Combine(folder, "SetVariable", "Simple.wxs"),
340 Path.Combine(folder, "BundleWithPackageGroupRef", "MinimalPackageGroup.wxs"),
341 Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
342 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
343 "-intermediateFolder", intermediateFolder,
344 "-o", bundlePath
345 });
346
347 result.AssertSuccess();
348
349 Assert.True(File.Exists(bundlePath));
350
351 var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath);
352 extractResult.AssertSuccess();
353
354 var setVariables = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:SetVariable");
355 Assert.Equal(6, setVariables.Count);
356 Assert.Equal("<SetVariable Id='SetCoercedNumber' Variable='CoercedNumber' Value='2' Type='numeric' />", setVariables[0].GetTestXml());
357 Assert.Equal("<SetVariable Id='SetCoercedString' Variable='CoercedString' Value='Bar' Type='string' />", setVariables[1].GetTestXml());
358 Assert.Equal("<SetVariable Id='SetCoercedVersion' Variable='CoercedVersion' Value='v2.0' Type='version' />", setVariables[2].GetTestXml());
359 Assert.Equal("<SetVariable Id='SetNeedsFormatting' Variable='NeedsFormatting' Value='[One] [Two] [Three]' Type='string' />", setVariables[3].GetTestXml());
360 Assert.Equal("<SetVariable Id='SetVersionString' Variable='VersionString' Value='v1.0' Type='string' />", setVariables[4].GetTestXml());
361 Assert.Equal("<SetVariable Id='SetUnset' Variable='Unset' Condition='VersionString = v2.0' />", setVariables[5].GetTestXml());
362 }
363 }
364 }
365}
diff --git a/src/test/WixToolsetTest.CoreIntegration/CabFixture.cs b/src/test/WixToolsetTest.CoreIntegration/CabFixture.cs
deleted file mode 100644
index ad62dea6..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/CabFixture.cs
+++ /dev/null
@@ -1,107 +0,0 @@
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 WixBuildTools.TestSupport;
9 using WixToolset.Core.TestPackage;
10 using Xunit;
11
12 public class CabFixture
13 {
14 [Fact]
15 public void CabinetFilesSequencedCorrectly()
16 {
17 var folder = TestData.Get(@"TestData\MultiFileCompressed");
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 var cabPath = Path.Combine(baseFolder, @"bin\cab1.cab");
25
26 var result = WixRunner.Execute(new[]
27 {
28 "build",
29 Path.Combine(folder, "Package.wxs"),
30 Path.Combine(folder, "PackageComponents.wxs"),
31 "-d", "MediaTemplateCompressionLevel",
32 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
33 "-bindpath", Path.Combine(folder, "data"),
34 "-intermediateFolder", intermediateFolder,
35 "-o", msiPath
36 });
37
38 result.AssertSuccess();
39 Assert.True(File.Exists(cabPath));
40
41 var fileTable = Query.QueryDatabase(msiPath, new[] { "File" });
42 var fileRows = fileTable.Select(r => new FileRow(r)).OrderBy(f => f.Sequence).ToList();
43
44 Assert.Equal(new[] { 1, 2 }, fileRows.Select(f => f.Sequence).ToArray());
45 Assert.Equal(new[] { "Notepad.exe", "test.txt" }, fileRows.Select(f => f.Name).ToArray());
46
47 var files = Query.GetCabinetFiles(cabPath);
48 Assert.Equal(fileRows.Select(f => f.Id).ToArray(), files.Select(f => f.Name).ToArray());
49 }
50 }
51
52 [Fact(Skip = "Sequence number of file from merge module is 0 but should be 1.")]
53 public void CabinetFilesSequencedCorrectlyUsingMergeModule()
54 {
55 var folder = TestData.Get(@"TestData\SimpleMerge");
56
57 using (var fs = new DisposableFileSystem())
58 {
59 var baseFolder = fs.GetFolder();
60 var intermediateFolder = Path.Combine(baseFolder, "obj");
61 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
62 var cabPath = Path.Combine(baseFolder, @"bin\cab1.cab");
63
64 var result = WixRunner.Execute(new[]
65 {
66 "build",
67 Path.Combine(folder, "Package.wxs"),
68 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
69 "-bindpath", Path.Combine(folder, ".data"),
70 "-intermediateFolder", intermediateFolder,
71 "-o", msiPath
72 });
73
74 result.AssertSuccess();
75 Assert.True(File.Exists(cabPath));
76
77 var fileTable = Query.QueryDatabase(msiPath, new[] { "File" });
78 var fileRows = fileTable.Select(r => new FileRow(r)).OrderBy(f => f.Sequence).ToList();
79
80 Assert.Equal(new[] { 1 }, fileRows.Select(f => f.Sequence).ToArray());
81 Assert.Equal(new[] { "test.txt" }, fileRows.Select(f => f.Name).ToArray());
82
83 var files = Query.GetCabinetFiles(cabPath);
84 Assert.Equal(fileRows.Select(f => f.Id).ToArray(), files.Select(f => f.Name).ToArray());
85 }
86 }
87
88 private class FileRow
89 {
90 public FileRow(string row)
91 {
92 row = row.Substring("File:".Length);
93
94 var split = row.Split('\t');
95 this.Id = split[0];
96 this.Name = split[2];
97 this.Sequence = Convert.ToInt32(split[7]);
98 }
99
100 public string Id { get; set; }
101
102 public string Name { get; set; }
103
104 public int Sequence { get; set; }
105 }
106 }
107}
diff --git a/src/test/WixToolsetTest.CoreIntegration/ComponentFixture.cs b/src/test/WixToolsetTest.CoreIntegration/ComponentFixture.cs
deleted file mode 100644
index d24ba08c..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/ComponentFixture.cs
+++ /dev/null
@@ -1,45 +0,0 @@
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 WixBuildTools.TestSupport;
9 using WixToolset.Core.TestPackage;
10 using WixToolset.Data;
11 using Xunit;
12
13 public class ComponentFixture
14 {
15 [Fact]
16 public void CanDetectDuplicateComponentGuids()
17 {
18 var folder = TestData.Get(@"TestData");
19
20 using (var fs = new DisposableFileSystem())
21 {
22 var baseFolder = fs.GetFolder();
23 var intermediateFolder = Path.Combine(baseFolder, "obj");
24 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
25
26 var result = WixRunner.Execute(new[]
27 {
28 "build",
29 Path.Combine(folder, "Component", "GuidCollision.wxs"),
30 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
31 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
32 "-intermediateFolder", intermediateFolder,
33 "-o", msiPath
34 });
35
36 var errors = result.Messages.Where(m => m.Level == MessageLevel.Error);
37 Array.Equals(new[]
38 {
39 369,
40 369
41 }, errors.Select(e => e.Id).ToArray());
42 }
43 }
44 }
45}
diff --git a/src/test/WixToolsetTest.CoreIntegration/ContainerFixture.cs b/src/test/WixToolsetTest.CoreIntegration/ContainerFixture.cs
deleted file mode 100644
index dd381dfe..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/ContainerFixture.cs
+++ /dev/null
@@ -1,385 +0,0 @@
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.Xml;
10 using WixBuildTools.TestSupport;
11 using WixToolset.Core;
12 using WixToolset.Core.Burn;
13 using WixToolset.Core.TestPackage;
14 using Xunit;
15
16 public class ContainerFixture
17 {
18 [Fact(Skip = "Test demonstrates failure")]
19 public void CanBuildWithCustomAttachedContainer()
20 {
21 var folder = TestData.Get(@"TestData");
22
23 using (var fs = new DisposableFileSystem())
24 {
25 var baseFolder = fs.GetFolder();
26 var intermediateFolder = Path.Combine(baseFolder, "obj");
27 var binFolder = Path.Combine(baseFolder, "bin");
28 var bundlePath = Path.Combine(binFolder, "test.exe");
29 var baFolderPath = Path.Combine(baseFolder, "ba");
30 var extractFolderPath = Path.Combine(baseFolder, "extract");
31
32 this.BuildMsis(folder, intermediateFolder, binFolder, buildToSubfolder: true);
33
34 var result = WixRunner.Execute(new[]
35 {
36 "build",
37 Path.Combine(folder, "Container", "HarvestIntoAttachedContainer.wxs"),
38 Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
39 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
40 "-bindpath", binFolder,
41 "-intermediateFolder", intermediateFolder,
42 "-o", bundlePath
43 });
44
45 result.AssertSuccess();
46
47 Assert.True(File.Exists(bundlePath));
48
49 var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath);
50 extractResult.AssertSuccess();
51
52 var payloads = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Payload");
53 Assert.Equal(4, payloads.Count);
54 var ignoreAttributes = new Dictionary<string, List<string>> { { "Payload", new List<string> { "FileSize", "Hash" } } };
55 Assert.Equal(@"<Payload Id='FirstX64' FilePath='FirstX64\FirstX64.msi' FileSize='*' Hash='*' DownloadUrl='http://example.com//FirstX64/FirstX64/FirstX64.msi' Packaging='embedded' SourcePath='a0' Container='BundlePackages' />", payloads[0].GetTestXml(ignoreAttributes));
56 Assert.Equal(@"<Payload Id='FirstX86.msi' FilePath='FirstX86\FirstX86.msi' FileSize='*' Hash='*' DownloadUrl='http://example.com//FirstX86.msi/FirstX86/FirstX86.msi' Packaging='embedded' SourcePath='a1' Container='BundlePackages' />", payloads[1].GetTestXml(ignoreAttributes));
57 Assert.Equal(@"<Payload Id='fk1m38Cf9RZ2Bx_ipinRY6BftelU' FilePath='FirstX86\PFiles\MsiPackage\test.txt' FileSize='*' Hash='*' DownloadUrl='http://example.com/FirstX86/fk1m38Cf9RZ2Bx_ipinRY6BftelU/FirstX86/PFiles/MsiPackage/test.txt' Packaging='embedded' SourcePath='a2' Container='BundlePackages' />", payloads[2].GetTestXml(ignoreAttributes));
58 Assert.Equal(@"<Payload Id='ff2L_N_DLQ.nSUi.l8LxG14gd2V4' FilePath='FirstX64\PFiles\MsiPackage\test.txt' FileSize='*' Hash='*' DownloadUrl='http://example.com/FirstX64/ff2L_N_DLQ.nSUi.l8LxG14gd2V4/FirstX64/PFiles/MsiPackage/test.txt' Packaging='embedded' SourcePath='a3' Container='BundlePackages' />", payloads[3].GetTestXml(ignoreAttributes));
59 }
60 }
61
62 [Fact]
63 public void HarvestedPayloadsArePutInCorrectContainer()
64 {
65 var folder = TestData.Get(@"TestData");
66
67 using (var fs = new DisposableFileSystem())
68 {
69 var baseFolder = fs.GetFolder();
70 var intermediateFolder = Path.Combine(baseFolder, "obj");
71 var binFolder = Path.Combine(baseFolder, "bin");
72 var bundlePath = Path.Combine(binFolder, "test.exe");
73 var baFolderPath = Path.Combine(baseFolder, "ba");
74 var extractFolderPath = Path.Combine(baseFolder, "extract");
75
76 this.BuildMsis(folder, intermediateFolder, binFolder);
77
78 var result = WixRunner.Execute(new[]
79 {
80 "build",
81 Path.Combine(folder, "Container", "HarvestIntoDetachedContainer.wxs"),
82 Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
83 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
84 "-bindpath", binFolder,
85 "-intermediateFolder", intermediateFolder,
86 "-o", bundlePath
87 });
88
89 result.AssertSuccess();
90
91 Assert.True(File.Exists(bundlePath));
92
93 var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath);
94 extractResult.AssertSuccess();
95
96 var payloads = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Payload");
97 Assert.Equal(4, payloads.Count);
98 var ignoreAttributes = new Dictionary<string, List<string>> { { "Payload", new List<string> { "FileSize", "Hash" } } };
99 Assert.Equal(@"<Payload Id='FirstX86.msi' FilePath='FirstX86.msi' FileSize='*' Hash='*' Packaging='embedded' SourcePath='a0' Container='WixAttachedContainer' />", payloads[0].GetTestXml(ignoreAttributes));
100 Assert.Equal(@"<Payload Id='FirstX64.msi' FilePath='FirstX64.msi' FileSize='*' Hash='*' Packaging='embedded' SourcePath='a1' Container='FirstX64' />", payloads[1].GetTestXml(ignoreAttributes));
101 Assert.Equal(@"<Payload Id='fk1m38Cf9RZ2Bx_ipinRY6BftelU' FilePath='PFiles\MsiPackage\test.txt' FileSize='*' Hash='*' Packaging='embedded' SourcePath='a2' Container='WixAttachedContainer' />", payloads[2].GetTestXml(ignoreAttributes));
102 Assert.Equal(@"<Payload Id='fC0n41rZK8oW3JK8LzHu6AT3CjdQ' FilePath='PFiles\MsiPackage\test.txt' FileSize='*' Hash='*' Packaging='embedded' SourcePath='a3' Container='FirstX64' />", payloads[3].GetTestXml(ignoreAttributes));
103 }
104 }
105
106 [Fact]
107 public void HarvestedPayloadsArePutInCorrectPackage()
108 {
109 var folder = TestData.Get(@"TestData");
110
111 using (var fs = new DisposableFileSystem())
112 {
113 var baseFolder = fs.GetFolder();
114 var intermediateFolder = Path.Combine(baseFolder, "obj");
115 var binFolder = Path.Combine(baseFolder, "bin");
116 var bundlePath = Path.Combine(binFolder, "test.exe");
117 var baFolderPath = Path.Combine(baseFolder, "ba");
118 var extractFolderPath = Path.Combine(baseFolder, "extract");
119
120 this.BuildMsis(folder, intermediateFolder, binFolder);
121
122 var result = WixRunner.Execute(new[]
123 {
124 "build",
125 Path.Combine(folder, "Container", "HarvestIntoDetachedContainer.wxs"),
126 Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
127 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
128 "-bindpath", binFolder,
129 "-intermediateFolder", intermediateFolder,
130 "-o", bundlePath
131 });
132
133 result.AssertSuccess();
134
135 Assert.True(File.Exists(bundlePath));
136
137 var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath);
138 extractResult.AssertSuccess();
139
140 var ignoreAttributes = new Dictionary<string, List<string>>
141 {
142 { "MsiPackage", new List<string> { "CacheId", "InstallSize", "Size", "ProductCode" } },
143 { "Provides", new List<string> { "Key" } },
144 };
145 var msiPackages = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Chain/burn:MsiPackage")
146 .Cast<XmlElement>()
147 .Select(e => e.GetTestXml(ignoreAttributes))
148 .ToArray();
149 WixAssert.CompareLineByLine(new string[]
150 {
151 "<MsiPackage Id='FirstX86.msi' Cache='keep' CacheId='*' InstallSize='*' Size='*' PerMachine='yes' Permanent='no' Vital='yes' RollbackBoundaryForward='WixDefaultBoundary' LogPathVariable='WixBundleLog_FirstX86.msi' RollbackLogPathVariable='WixBundleRollbackLog_FirstX86.msi' ProductCode='*' Language='1033' Version='1.0.0.0' UpgradeCode='{12E4699F-E774-4D05-8A01-5BDD41BBA127}'>" +
152 "<MsiProperty Id='ARPSYSTEMCOMPONENT' Value='1' />" +
153 "<Provides Key='*' Version='1.0.0.0' DisplayName='MsiPackage' />" +
154 "<RelatedPackage Id='{12E4699F-E774-4D05-8A01-5BDD41BBA127}' MaxVersion='1.0.0.0' MaxInclusive='no' OnlyDetect='no' LangInclusive='no'><Language Id='1033' /></RelatedPackage>" +
155 "<RelatedPackage Id='{12E4699F-E774-4D05-8A01-5BDD41BBA127}' MinVersion='1.0.0.0' MinInclusive='no' OnlyDetect='yes' LangInclusive='no'><Language Id='1033' /></RelatedPackage>" +
156 "<PayloadRef Id='FirstX86.msi' />" +
157 "<PayloadRef Id='fk1m38Cf9RZ2Bx_ipinRY6BftelU' />" +
158 "</MsiPackage>",
159 "<MsiPackage Id='FirstX64.msi' Cache='keep' CacheId='*' InstallSize='*' Size='*' PerMachine='yes' Permanent='no' Vital='yes' RollbackBoundaryBackward='WixDefaultBoundary' LogPathVariable='WixBundleLog_FirstX64.msi' RollbackLogPathVariable='WixBundleRollbackLog_FirstX64.msi' ProductCode='*' Language='1033' Version='1.0.0.0' UpgradeCode='{12E4699F-E774-4D05-8A01-5BDD41BBA127}'>" +
160 "<MsiProperty Id='ARPSYSTEMCOMPONENT' Value='1' />" +
161 "<Provides Key='*' Version='1.0.0.0' DisplayName='MsiPackage' />" +
162 "<RelatedPackage Id='{12E4699F-E774-4D05-8A01-5BDD41BBA127}' MaxVersion='1.0.0.0' MaxInclusive='no' OnlyDetect='no' LangInclusive='no'><Language Id='1033' /></RelatedPackage>" +
163 "<RelatedPackage Id='{12E4699F-E774-4D05-8A01-5BDD41BBA127}' MinVersion='1.0.0.0' MinInclusive='no' OnlyDetect='yes' LangInclusive='no'><Language Id='1033' /></RelatedPackage>" +
164 "<PayloadRef Id='FirstX64.msi' />" +
165 "<PayloadRef Id='fC0n41rZK8oW3JK8LzHu6AT3CjdQ' />" +
166 "</MsiPackage>",
167 }, msiPackages);
168 }
169 }
170
171 [Fact]
172 public void LayoutPayloadIsPutInContainer()
173 {
174 var folder = TestData.Get(@"TestData");
175
176 using (var fs = new DisposableFileSystem())
177 {
178 var baseFolder = fs.GetFolder();
179 var intermediateFolder = Path.Combine(baseFolder, "obj");
180 var binFolder = Path.Combine(baseFolder, "bin");
181 var bundlePath = Path.Combine(binFolder, "test.exe");
182 var baFolderPath = Path.Combine(baseFolder, "ba");
183 var extractFolderPath = Path.Combine(baseFolder, "extract");
184
185 this.BuildMsis(folder, intermediateFolder, binFolder);
186
187 var result = WixRunner.Execute(false, new[]
188 {
189 "build",
190 Path.Combine(folder, "Container", "LayoutPayloadInContainer.wxs"),
191 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
192 "-bindpath", binFolder,
193 "-intermediateFolder", intermediateFolder,
194 "-o", bundlePath
195 });
196
197 WixAssert.CompareLineByLine(new string[]
198 {
199 "The layout-only Payload 'SharedPayload' is being added to Container 'FirstX64'. It will not be extracted during layout.",
200 }, result.Messages.Select(m => m.ToString()).ToArray());
201 result.AssertSuccess();
202
203 Assert.True(File.Exists(bundlePath));
204
205 var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath);
206 extractResult.AssertSuccess();
207
208 var ignoreAttributes = new Dictionary<string, List<string>> { { "Payload", new List<string> { "FileSize", "Hash" } } };
209 var payloads = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Payload[@Id='SharedPayload']")
210 .Cast<XmlElement>()
211 .Select(e => e.GetTestXml(ignoreAttributes))
212 .ToArray();
213 WixAssert.CompareLineByLine(new string[]
214 {
215 "<Payload Id='SharedPayload' FilePath='LayoutPayloadInContainer.wxs' FileSize='*' Hash='*' LayoutOnly='yes' Packaging='embedded' SourcePath='a1' Container='FirstX64' />",
216 }, payloads);
217 }
218 }
219
220 [Fact]
221 public void MultipleAttachedContainersAreNotCurrentlySupported()
222 {
223 var folder = TestData.Get(@"TestData");
224
225 using (var fs = new DisposableFileSystem())
226 {
227 var baseFolder = fs.GetFolder();
228 var intermediateFolder = Path.Combine(baseFolder, "obj");
229 var binFolder = Path.Combine(baseFolder, "bin");
230 var bundlePath = Path.Combine(binFolder, "test.exe");
231 var baFolderPath = Path.Combine(baseFolder, "ba");
232 var extractFolderPath = Path.Combine(baseFolder, "extract");
233
234 this.BuildMsis(folder, intermediateFolder, binFolder);
235
236 var result = WixRunner.Execute(new[]
237 {
238 "build",
239 Path.Combine(folder, "Container", "MultipleAttachedContainers.wxs"),
240 Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
241 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
242 "-bindpath", binFolder,
243 "-intermediateFolder", intermediateFolder,
244 "-o", bundlePath
245 });
246
247 Assert.Equal((int)BurnBackendErrors.Ids.MultipleAttachedContainersUnsupported, result.ExitCode);
248 }
249 }
250
251 [Fact]
252 public void PayloadIsNotPutInMultipleContainers()
253 {
254 var folder = TestData.Get(@"TestData");
255
256 using (var fs = new DisposableFileSystem())
257 {
258 var baseFolder = fs.GetFolder();
259 var intermediateFolder = Path.Combine(baseFolder, "obj");
260 var binFolder = Path.Combine(baseFolder, "bin");
261 var bundlePath = Path.Combine(binFolder, "test.exe");
262 var baFolderPath = Path.Combine(baseFolder, "ba");
263 var extractFolderPath = Path.Combine(baseFolder, "extract");
264
265 this.BuildMsis(folder, intermediateFolder, binFolder);
266
267 var result = WixRunner.Execute(false, new[]
268 {
269 "build",
270 Path.Combine(folder, "Container", "PayloadInMultipleContainers.wxs"),
271 Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
272 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
273 "-bindpath", binFolder,
274 "-intermediateFolder", intermediateFolder,
275 "-o", bundlePath
276 });
277
278 WixAssert.CompareLineByLine(new string[]
279 {
280 "The Payload 'SharedPayload' can't be added to Container 'FirstX64' because it was already added to Container 'FirstX86'.",
281 }, result.Messages.Select(m => m.ToString()).ToArray());
282 result.AssertSuccess();
283
284 Assert.True(File.Exists(bundlePath));
285
286 var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath);
287 extractResult.AssertSuccess();
288
289 var ignoreAttributes = new Dictionary<string, List<string>> { { "Payload", new List<string> { "FileSize", "Hash" } } };
290 var payloads = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Payload[@Id='SharedPayload']")
291 .Cast<XmlElement>()
292 .Select(e => e.GetTestXml(ignoreAttributes))
293 .ToArray();
294 WixAssert.CompareLineByLine(new string[]
295 {
296 "<Payload Id='SharedPayload' FilePath='PayloadInMultipleContainers.wxs' FileSize='*' Hash='*' Packaging='embedded' SourcePath='a2' Container='FirstX86' />",
297 }, payloads);
298 }
299 }
300
301 [Fact]
302 public void PopulatesBAManifestWithLayoutOnlyPayloads()
303 {
304 var folder = TestData.Get(@"TestData");
305
306 using (var fs = new DisposableFileSystem())
307 {
308 var baseFolder = fs.GetFolder();
309 var intermediateFolder = Path.Combine(baseFolder, "obj");
310 var binFolder = Path.Combine(baseFolder, "bin");
311 var bundlePath = Path.Combine(binFolder, "test.exe");
312 var baFolderPath = Path.Combine(baseFolder, "ba");
313 var extractFolderPath = Path.Combine(baseFolder, "extract");
314
315 this.BuildMsis(folder, intermediateFolder, binFolder);
316
317 var result = WixRunner.Execute(false, new[]
318 {
319 "build",
320 Path.Combine(folder, "Container", "LayoutPayloadInContainer.wxs"),
321 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
322 "-bindpath", binFolder,
323 "-intermediateFolder", intermediateFolder,
324 "-o", bundlePath
325 });
326
327 WixAssert.CompareLineByLine(new string[]
328 {
329 "The layout-only Payload 'SharedPayload' is being added to Container 'FirstX64'. It will not be extracted during layout.",
330 }, result.Messages.Select(m => m.ToString()).ToArray());
331 result.AssertSuccess();
332
333 Assert.True(File.Exists(bundlePath));
334
335 var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath);
336 extractResult.AssertSuccess();
337
338 var ignoreAttributesByElementName = new Dictionary<string, List<string>>
339 {
340 { "WixPayloadProperties", new List<string> { "Size" } },
341 };
342 var payloads = extractResult.SelectBADataNodes("/ba:BootstrapperApplicationData/ba:WixPayloadProperties")
343 .Cast<XmlElement>()
344 .Select(e => e.GetTestXml(ignoreAttributesByElementName))
345 .ToArray();
346 WixAssert.CompareLineByLine(new string[]
347 {
348 "<WixPayloadProperties Package='FirstX64.msi' Payload='FirstX64.msi' Container='FirstX64' Name='FirstX64.msi' Size='*' />",
349 "<WixPayloadProperties Package='FirstX64.msi' Payload='SharedPayload' Container='FirstX64' Name='LayoutPayloadInContainer.wxs' Size='*' />",
350 "<WixPayloadProperties Package='FirstX64.msi' Payload='fC0n41rZK8oW3JK8LzHu6AT3CjdQ' Container='FirstX64' Name='PFiles\\MsiPackage\\test.txt' Size='*' />",
351 "<WixPayloadProperties Payload='SharedPayload' Container='FirstX64' Name='LayoutPayloadInContainer.wxs' Size='*' />",
352 }, payloads);
353 }
354 }
355
356 private void BuildMsis(string folder, string intermediateFolder, string binFolder, bool buildToSubfolder = false)
357 {
358 var result = WixRunner.Execute(new[]
359 {
360 "build",
361 Path.Combine(folder, "MsiTransaction", "FirstX86.wxs"),
362 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
363 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
364 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
365 "-intermediateFolder", intermediateFolder,
366 "-o", Path.Combine(binFolder, buildToSubfolder ? "FirstX86" : ".", "FirstX86.msi"),
367 });
368
369 result.AssertSuccess();
370
371 result = WixRunner.Execute(new[]
372 {
373 "build",
374 Path.Combine(folder, "MsiTransaction", "FirstX64.wxs"),
375 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
376 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
377 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
378 "-intermediateFolder", intermediateFolder,
379 "-o", Path.Combine(binFolder, buildToSubfolder ? "FirstX64" : ".", "FirstX64.msi"),
380 });
381
382 result.AssertSuccess();
383 }
384 }
385}
diff --git a/src/test/WixToolsetTest.CoreIntegration/CopyFileFixture.cs b/src/test/WixToolsetTest.CoreIntegration/CopyFileFixture.cs
deleted file mode 100644
index c6fa602b..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/CopyFileFixture.cs
+++ /dev/null
@@ -1,48 +0,0 @@
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 CopyFileFixture
14 {
15 [Fact]
16 public void CanBuildCopyFile()
17 {
18 var folder = TestData.Get(@"TestData");
19
20 using (var fs = new DisposableFileSystem())
21 {
22 var baseFolder = fs.GetFolder();
23 var intermediateFolder = Path.Combine(baseFolder, "obj");
24 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
25
26 var result = WixRunner.Execute(new[]
27 {
28 "build",
29 Path.Combine(folder, "CopyFile", "CopyFile.wxs"),
30 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
31 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
32 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
33 "-intermediateFolder", intermediateFolder,
34 "-o", msiPath
35 });
36
37 result.AssertSuccess();
38
39 var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
40 var section = intermediate.Sections.Single();
41 var copyFileSymbol = section.Symbols.OfType<MoveFileSymbol>().Single();
42 Assert.Equal("MoveText", copyFileSymbol.Id.Id);
43 Assert.True(copyFileSymbol.Delete);
44 Assert.Equal("OtherFolder", copyFileSymbol.DestFolder);
45 }
46 }
47 }
48}
diff --git a/src/test/WixToolsetTest.CoreIntegration/CustomActionFixture.cs b/src/test/WixToolsetTest.CoreIntegration/CustomActionFixture.cs
deleted file mode 100644
index 636b86a6..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/CustomActionFixture.cs
+++ /dev/null
@@ -1,169 +0,0 @@
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 Xunit;
10
11 public class CustomActionFixture
12 {
13 [Fact]
14 public void CanDetectCustomActionCycle()
15 {
16 var folder = TestData.Get(@"TestData");
17
18 using (var fs = new DisposableFileSystem())
19 {
20 var baseFolder = fs.GetFolder();
21 var intermediateFolder = Path.Combine(baseFolder, "obj");
22 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
23
24 var result = WixRunner.Execute(new[]
25 {
26 "build",
27 Path.Combine(folder, "CustomAction", "CustomActionCycle.wxs"),
28 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
29 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
30 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
31 "-intermediateFolder", intermediateFolder,
32 "-o", msiPath
33 });
34
35 Assert.Equal(176, result.ExitCode);
36 Assert.Equal("The InstallExecuteSequence table contains an action 'Action1' that is scheduled to come before or after action 'Action3', which is also scheduled to come before or after action 'Action1'. Please remove this circular dependency by changing the Before or After attribute for one of the actions.", result.Messages[0].ToString());
37 }
38 }
39
40 [Fact]
41 public void CanDetectCustomActionCycleWithTail()
42 {
43 var folder = TestData.Get(@"TestData");
44
45 using (var fs = new DisposableFileSystem())
46 {
47 var baseFolder = fs.GetFolder();
48 var intermediateFolder = Path.Combine(baseFolder, "obj");
49 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
50
51 var result = WixRunner.Execute(new[]
52 {
53 "build",
54 Path.Combine(folder, "CustomAction", "CustomActionCycleWithTail.wxs"),
55 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
56 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
57 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
58 "-intermediateFolder", intermediateFolder,
59 "-o", msiPath
60 });
61
62 Assert.Equal(176, result.ExitCode);
63 Assert.Equal("The InstallExecuteSequence table contains an action 'Action2' that is scheduled to come before or after action 'Action4', which is also scheduled to come before or after action 'Action2'. Please remove this circular dependency by changing the Before or After attribute for one of the actions.", result.Messages[0].ToString());
64 }
65 }
66
67 [Fact]
68 public void PopulatesCustomActionTable()
69 {
70 var folder = TestData.Get(@"TestData");
71
72 using (var fs = new DisposableFileSystem())
73 {
74 var baseFolder = fs.GetFolder();
75 var intermediateFolder = Path.Combine(baseFolder, "obj");
76 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
77
78 var result = WixRunner.Execute(new[]
79 {
80 "build",
81 Path.Combine(folder, "CustomAction", "UnscheduledCustomAction.wxs"),
82 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
83 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
84 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
85 "-intermediateFolder", intermediateFolder,
86 "-o", msiPath
87 });
88
89 result.AssertSuccess();
90
91 Assert.True(File.Exists(msiPath));
92 var results = Query.QueryDatabase(msiPath, new[] {
93 "ActionText",
94 "AdminExecuteSequence",
95 "AdminUISequence",
96 "AdvtExecuteSequence",
97 "Binary",
98 "CustomAction",
99 "InstallExecuteSequence",
100 "InstallUISequence",
101 "Property",
102 }).Where(x => !x.StartsWith("Property:") || x.StartsWith("Property:MsiHiddenProperties\t")).ToArray();
103 Assert.Equal(new[]
104 {
105 "ActionText:CustomAction2\tProgess2Text\t",
106 "AdminExecuteSequence:CostFinalize\t\t1000",
107 "AdminExecuteSequence:CostInitialize\t\t800",
108 "AdminExecuteSequence:CustomAction2\t\t801",
109 "AdminExecuteSequence:FileCost\t\t900",
110 "AdminExecuteSequence:InstallAdminPackage\t\t3900",
111 "AdminExecuteSequence:InstallFiles\t\t4000",
112 "AdminExecuteSequence:InstallFinalize\t\t6600",
113 "AdminExecuteSequence:InstallInitialize\t\t1500",
114 "AdminExecuteSequence:InstallValidate\t\t1400",
115 "AdminUISequence:CostFinalize\t\t1000",
116 "AdminUISequence:CostInitialize\t\t800",
117 "AdminUISequence:CustomAction2\t\t801",
118 "AdminUISequence:ExecuteAction\t\t1300",
119 "AdminUISequence:FileCost\t\t900",
120 "AdvtExecuteSequence:CostFinalize\t\t1000",
121 "AdvtExecuteSequence:CostInitialize\t\t800",
122 "AdvtExecuteSequence:CustomAction2\t\t801",
123 "AdvtExecuteSequence:InstallFinalize\t\t6600",
124 "AdvtExecuteSequence:InstallInitialize\t\t1500",
125 "AdvtExecuteSequence:InstallValidate\t\t1400",
126 "AdvtExecuteSequence:PublishFeatures\t\t6300",
127 "AdvtExecuteSequence:PublishProduct\t\t6400",
128 "Binary:Binary1\t[Binary data]",
129 "CustomAction:CustomAction1\t1\tBinary1\tInvalidEntryPoint\t",
130 "CustomAction:CustomAction2\t51\tTestAdvtExecuteSequenceProperty\t1\t",
131 "CustomAction:CustomActionWithHiddenTarget\t9217\tBinary1\tInvalidEntryPoint\t",
132 "CustomAction:DiscardOptimismAllBeingsWhoProceed\t19\t\tAbandon hope all ye who enter here.\t",
133 "InstallExecuteSequence:CostFinalize\t\t1000",
134 "InstallExecuteSequence:CostInitialize\t\t800",
135 "InstallExecuteSequence:CreateFolders\t\t3700",
136 "InstallExecuteSequence:CustomAction2\t\t801",
137 "InstallExecuteSequence:FileCost\t\t900",
138 "InstallExecuteSequence:FindRelatedProducts\t\t25",
139 "InstallExecuteSequence:InstallFiles\t\t4000",
140 "InstallExecuteSequence:InstallFinalize\t\t6600",
141 "InstallExecuteSequence:InstallInitialize\t\t1500",
142 "InstallExecuteSequence:InstallValidate\t\t1400",
143 "InstallExecuteSequence:LaunchConditions\t\t100",
144 "InstallExecuteSequence:MigrateFeatureStates\t\t1200",
145 "InstallExecuteSequence:ProcessComponents\t\t1600",
146 "InstallExecuteSequence:PublishFeatures\t\t6300",
147 "InstallExecuteSequence:PublishProduct\t\t6400",
148 "InstallExecuteSequence:RegisterProduct\t\t6100",
149 "InstallExecuteSequence:RegisterUser\t\t6000",
150 "InstallExecuteSequence:RemoveExistingProducts\t\t1401",
151 "InstallExecuteSequence:RemoveFiles\t\t3500",
152 "InstallExecuteSequence:RemoveFolders\t\t3600",
153 "InstallExecuteSequence:UnpublishFeatures\t\t1800",
154 "InstallExecuteSequence:ValidateProductID\t\t700",
155 "InstallUISequence:CostFinalize\t\t1000",
156 "InstallUISequence:CostInitialize\t\t800",
157 "InstallUISequence:CustomAction2\t\t801",
158 "InstallUISequence:ExecuteAction\t\t1300",
159 "InstallUISequence:FileCost\t\t900",
160 "InstallUISequence:FindRelatedProducts\t\t25",
161 "InstallUISequence:LaunchConditions\t\t100",
162 "InstallUISequence:MigrateFeatureStates\t\t1200",
163 "InstallUISequence:ValidateProductID\t\t700",
164 "Property:MsiHiddenProperties\tCustomActionWithHiddenTarget",
165 }, results);
166 }
167 }
168 }
169}
diff --git a/src/test/WixToolsetTest.CoreIntegration/CustomTableFixture.cs b/src/test/WixToolsetTest.CoreIntegration/CustomTableFixture.cs
deleted file mode 100644
index ee93b03a..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/CustomTableFixture.cs
+++ /dev/null
@@ -1,234 +0,0 @@
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.Xml.Linq;
7 using WixBuildTools.TestSupport;
8 using WixToolset.Core.TestPackage;
9 using Xunit;
10
11 public class CustomTableFixture
12 {
13 [Fact]
14 public void PopulatesCustomTable1()
15 {
16 var folder = TestData.Get(@"TestData");
17
18 using (var fs = new DisposableFileSystem())
19 {
20 var baseFolder = fs.GetFolder();
21 var intermediateFolder = Path.Combine(baseFolder, "obj");
22 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
23
24 var result = WixRunner.Execute(new[]
25 {
26 "build",
27 Path.Combine(folder, "CustomTable", "CustomTable.wxs"),
28 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
29 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
30 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
31 "-intermediateFolder", intermediateFolder,
32 "-o", msiPath
33 });
34
35 result.AssertSuccess();
36
37 Assert.True(File.Exists(msiPath));
38 var results = Query.QueryDatabase(msiPath, new[] { "CustomTable1" });
39 Assert.Equal(new[]
40 {
41 "CustomTable1:Row1\ttest.txt",
42 "CustomTable1:Row2\ttest.txt",
43 }, results);
44 }
45 }
46
47 [Fact]
48 public void PopulatesCustomTableWithLocalization()
49 {
50 var folder = TestData.Get(@"TestData");
51
52 using (var fs = new DisposableFileSystem())
53 {
54 var baseFolder = fs.GetFolder();
55 var intermediateFolder = Path.Combine(baseFolder, "obj");
56 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
57
58 var result = WixRunner.Execute(new[]
59 {
60 "build",
61 Path.Combine(folder, "CustomTable", "LocalizedCustomTable.wxs"),
62 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
63 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
64 "-loc", Path.Combine(folder, "CustomTable", "LocalizedCustomTable.en-us.wxl"),
65 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
66 "-intermediateFolder", intermediateFolder,
67 "-o", msiPath
68 });
69
70 result.AssertSuccess();
71
72 Assert.True(File.Exists(msiPath));
73 var results = Query.QueryDatabase(msiPath, new[] { "CustomTableLocalized" });
74 Assert.Equal(new[]
75 {
76 "CustomTableLocalized:Row1\tThis is row one",
77 "CustomTableLocalized:Row2\tThis is row two",
78 }, results);
79 }
80 }
81
82 [Fact]
83 public void PopulatesCustomTableWithFilePath()
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, "CustomTable", "CustomTableWithFile.wxs"),
97 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
98 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
99 "-bindpath", Path.Combine(folder, "CustomTable", "data"),
100 "-intermediateFolder", intermediateFolder,
101 "-o", msiPath
102 });
103
104 result.AssertSuccess();
105
106 Assert.True(File.Exists(msiPath));
107 var results = Query.QueryDatabase(msiPath, new[] { "CustomTableWithFile" });
108 Assert.Equal(new[]
109 {
110 "CustomTableWithFile:Row1\t[Binary data]",
111 "CustomTableWithFile:Row2\t[Binary data]",
112 }, results);
113 }
114 }
115
116 [Fact]
117 public void PopulatesCustomTableWithFilePathSerialized()
118 {
119 var folder = TestData.Get(@"TestData");
120
121 using (var fs = new DisposableFileSystem())
122 {
123 var baseFolder = fs.GetFolder();
124 var intermediateFolder = Path.Combine(baseFolder, "obj");
125 var wixlibPath = Path.Combine(baseFolder, @"bin\test.wixlib");
126 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
127
128 var result = WixRunner.Execute(new[]
129 {
130 "build",
131 Path.Combine(folder, "CustomTable", "CustomTableWithFile.wxs"),
132 "-bindpath", Path.Combine(folder, "CustomTable", "data"),
133 "-intermediateFolder", intermediateFolder,
134 "-o", wixlibPath
135 });
136
137 result.AssertSuccess();
138
139 result = WixRunner.Execute(new[]
140 {
141 "build",
142 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
143 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
144 "-lib", wixlibPath,
145 "-bindpath", Path.Combine(folder, "CustomTable", "data"),
146 "-intermediateFolder", intermediateFolder,
147 "-o", msiPath
148 });
149
150 result.AssertSuccess();
151
152 Assert.True(File.Exists(msiPath));
153 var results = Query.QueryDatabase(msiPath, new[] { "CustomTableWithFile" });
154 Assert.Equal(new[]
155 {
156 "CustomTableWithFile:Row1\t[Binary data]",
157 "CustomTableWithFile:Row2\t[Binary data]",
158 }, results);
159 }
160 }
161
162 [Fact]
163 public void UnrealCustomTableIsNotPresentInMsi()
164 {
165 var folder = TestData.Get(@"TestData");
166
167 using (var fs = new DisposableFileSystem())
168 {
169 var baseFolder = fs.GetFolder();
170 var intermediateFolder = Path.Combine(baseFolder, "obj");
171 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
172
173 var result = WixRunner.Execute(new[]
174 {
175 "build",
176 Path.Combine(folder, "CustomTable", "CustomTable.wxs"),
177 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
178 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
179 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
180 "-intermediateFolder", intermediateFolder,
181 "-o", msiPath
182 });
183
184 result.AssertSuccess();
185
186 Assert.True(File.Exists(msiPath));
187 var results = Query.QueryDatabase(msiPath, new[] { "CustomTable2" });
188 Assert.Empty(results);
189 }
190 }
191
192 [Fact]
193 public void CanCompileAndDecompile()
194 {
195 var folder = TestData.Get(@"TestData");
196 var expectedFile = Path.Combine(folder, "CustomTable", "CustomTable-Expected.wxs");
197
198 using (var fs = new DisposableFileSystem())
199 {
200 var baseFolder = fs.GetFolder();
201 var intermediateFolder = Path.Combine(baseFolder, "obj");
202 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
203 var decompiledWxsPath = Path.Combine(baseFolder, @"decompiled.wxs");
204
205 var result = WixRunner.Execute(new[]
206 {
207 "build",
208 "-d", "ProductCode=83f9c623-26fe-42ab-951e-170022117f54",
209 Path.Combine(folder, "CustomTable", "CustomTable.wxs"),
210 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
211 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
212 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
213 "-intermediateFolder", intermediateFolder,
214 "-o", msiPath
215 });
216
217 result.AssertSuccess();
218 Assert.True(File.Exists(msiPath));
219
220 result = WixRunner.Execute(new[]
221 {
222 "decompile", msiPath,
223 "-sw1060",
224 "-intermediateFolder", intermediateFolder,
225 "-o", decompiledWxsPath
226 });
227
228 result.AssertSuccess();
229
230 WixAssert.CompareXml(expectedFile, decompiledWxsPath);
231 }
232 }
233 }
234}
diff --git a/src/test/WixToolsetTest.CoreIntegration/DecompileFixture.cs b/src/test/WixToolsetTest.CoreIntegration/DecompileFixture.cs
deleted file mode 100644
index ab04da15..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/DecompileFixture.cs
+++ /dev/null
@@ -1,86 +0,0 @@
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 WixBuildTools.TestSupport;
7 using WixToolset.Core.TestPackage;
8 using Xunit;
9
10 public class DecompileFixture
11 {
12 private static void DecompileAndCompare(string sourceFolder, string msiName, string expectedWxsName)
13 {
14 var folder = TestData.Get(sourceFolder);
15
16 using (var fs = new DisposableFileSystem())
17 {
18 var intermediateFolder = fs.GetFolder();
19 var outputPath = Path.Combine(intermediateFolder, @"Actual.wxs");
20
21 var result = WixRunner.Execute(new[]
22 {
23 "decompile",
24 Path.Combine(folder, msiName),
25 "-intermediateFolder", intermediateFolder,
26 "-o", outputPath
27 });
28
29 result.AssertSuccess();
30
31 WixAssert.CompareXml(Path.Combine(folder, expectedWxsName), outputPath);
32 }
33 }
34
35 [Fact]
36 public void CanDecompileSingleFileCompressed()
37 {
38 DecompileAndCompare(@"TestData\DecompileSingleFileCompressed", "example.msi", "Expected.wxs");
39 }
40
41 [Fact]
42 public void CanDecompile64BitSingleFileCompressed()
43 {
44 DecompileAndCompare(@"TestData\DecompileSingleFileCompressed64", "example.msi", "Expected.wxs");
45 }
46
47 [Fact]
48 public void CanDecompileNestedDirSearchUnderRegSearch()
49 {
50 DecompileAndCompare(@"TestData\AppSearch", "NestedDirSearchUnderRegSearch.msi", "DecompiledNestedDirSearchUnderRegSearch.wxs");
51 }
52
53 [Fact]
54 public void CanDecompileOldClassTableDefinition()
55 {
56 // The input MSI was not created using standard methods, it is an example of a real world database that needs to be decompiled.
57 // The Class/@Feature_ column has length of 32, the File/@Attributes has length of 2,
58 // and numerous foreign key relationships are missing.
59 DecompileAndCompare(@"TestData\Class", "OldClassTableDef.msi", "DecompiledOldClassTableDef.wxs");
60 }
61
62 [Fact]
63 public void CanDecompileSequenceTables()
64 {
65 DecompileAndCompare(@"TestData\SequenceTables", "SequenceTables.msi", "DecompiledSequenceTables.wxs");
66 }
67
68 [Fact]
69 public void CanDecompileShortcuts()
70 {
71 DecompileAndCompare(@"TestData\Shortcut", "shortcuts.msi", "DecompiledShortcuts.wxs");
72 }
73
74 [Fact]
75 public void CanDecompileNullComponent()
76 {
77 DecompileAndCompare(@"TestData\DecompileNullComponent", "example.msi", "Expected.wxs");
78 }
79
80 [Fact]
81 public void CanDecompileMergeModuleWithTargetDirComponent()
82 {
83 DecompileAndCompare(@"TestData\DecompileTargetDirMergeModule", "MergeModule1.msm", "Expected.wxs");
84 }
85 }
86}
diff --git a/src/test/WixToolsetTest.CoreIntegration/DependencyExtensionFixture.cs b/src/test/WixToolsetTest.CoreIntegration/DependencyExtensionFixture.cs
deleted file mode 100644
index 840b411e..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/DependencyExtensionFixture.cs
+++ /dev/null
@@ -1,180 +0,0 @@
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.Collections.Generic;
6 using System.IO;
7 using System.Linq;
8 using System.Xml;
9 using WixBuildTools.TestSupport;
10 using WixToolset.Core.TestPackage;
11 using Xunit;
12
13 public class DependencyExtensionFixture
14 {
15 [Fact]
16 public void CanBuildBundleUsingExePackageWithProvides()
17 {
18 var folder = TestData.Get(@"TestData");
19
20 using (var fs = new DisposableFileSystem())
21 {
22 var baseFolder = fs.GetFolder();
23 var intermediateFolder = Path.Combine(baseFolder, "obj");
24 var binFolder = Path.Combine(baseFolder, "bin");
25 var bundlePath = Path.Combine(binFolder, "test.exe");
26 var baFolderPath = Path.Combine(baseFolder, "ba");
27 var extractFolderPath = Path.Combine(baseFolder, "extract");
28
29 var result = WixRunner.Execute(new[]
30 {
31 "build",
32 Path.Combine(folder, "Dependency", "ExePackageProvidesBundle.wxs"),
33 Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
34 "-bindpath", Path.Combine(folder, ".Data"),
35 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
36 "-intermediateFolder", intermediateFolder,
37 "-o", bundlePath,
38 });
39
40 result.AssertSuccess();
41
42 Assert.True(File.Exists(bundlePath));
43
44 var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath);
45 extractResult.AssertSuccess();
46
47 var provides = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Chain/burn:ExePackage/burn:Provides")
48 .Cast<XmlElement>()
49 .Select(e => e.GetTestXml())
50 .ToArray();
51 WixAssert.CompareLineByLine(new string[]
52 {
53 "<Provides Key='DependencyTests_ExeA,v1.0' Version='1.0.0.0' DisplayName='Windows Installer XML Toolset' />",
54 }, provides);
55 }
56 }
57
58 [Fact]
59 public void CanBuildBundleUsingMsiWithProvides()
60 {
61 var folder = TestData.Get(@"TestData");
62
63 using (var fs = new DisposableFileSystem())
64 {
65 var baseFolder = fs.GetFolder();
66 var intermediateFolder = Path.Combine(baseFolder, "obj");
67 var binFolder = Path.Combine(baseFolder, "bin");
68 var bundlePath = Path.Combine(binFolder, "test.exe");
69 var baFolderPath = Path.Combine(baseFolder, "ba");
70 var extractFolderPath = Path.Combine(baseFolder, "extract");
71
72 var result = WixRunner.Execute(new[]
73 {
74 "build",
75 Path.Combine(folder, "UsingProvides", "Package.wxs"),
76 Path.Combine(folder, "UsingProvides", "PackageComponents.wxs"),
77 "-loc", Path.Combine(folder, "UsingProvides", "Package.en-us.wxl"),
78 "-bindpath", Path.Combine(folder, "UsingProvides"),
79 "-intermediateFolder", intermediateFolder,
80 "-o", Path.Combine(binFolder, "UsingProvides.msi"),
81 });
82
83 result.AssertSuccess();
84
85 result = WixRunner.Execute(new[]
86 {
87 "build",
88 Path.Combine(folder, "Dependency", "UsingProvidesBundle.wxs"),
89 Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
90 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
91 "-bindpath", binFolder,
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 provides = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Chain/burn:MsiPackage/burn:Provides")
104 .Cast<XmlElement>()
105 .Select(e => e.GetTestXml())
106 .ToArray();
107 WixAssert.CompareLineByLine(new string[]
108 {
109 "<Provides Key='UsingProvides' Version='1.0.0.0' DisplayName='MsiPackage' Imported='yes' />",
110 "<Provides Key='{A81D50F9-B696-4F3D-ABE0-E64D61590E5F}' Version='1.0.0.0' DisplayName='MsiPackage' />",
111 }, provides);
112 }
113 }
114
115 [Fact]
116 public void CanBuildBundleWithCustomProviderKey()
117 {
118 var folder = TestData.Get(@"TestData");
119
120 using (var fs = new DisposableFileSystem())
121 {
122 var baseFolder = fs.GetFolder();
123 var intermediateFolder = Path.Combine(baseFolder, "obj");
124 var binFolder = Path.Combine(baseFolder, "bin");
125 var bundlePath = Path.Combine(binFolder, "test.exe");
126 var baFolderPath = Path.Combine(baseFolder, "ba");
127 var extractFolderPath = Path.Combine(baseFolder, "extract");
128
129 var result = WixRunner.Execute(new[]
130 {
131 "build",
132 Path.Combine(folder, "Dependency", "CustomProviderKeyBundle.wxs"),
133 Path.Combine(folder, "BundleWithPackageGroupRef", "MinimalPackageGroup.wxs"),
134 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
135 "-intermediateFolder", intermediateFolder,
136 "-o", bundlePath,
137 });
138
139 result.AssertSuccess();
140
141 Assert.True(File.Exists(bundlePath));
142
143 var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath);
144 extractResult.AssertSuccess();
145
146 var ignoreAttributesByElementName = new Dictionary<string, List<string>>
147 {
148 { "Registration", new List<string> { "Id" } },
149 };
150 var registration = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Registration")
151 .Cast<XmlElement>()
152 .Select(e => e.GetTestXml(ignoreAttributesByElementName))
153 .ToArray();
154 WixAssert.CompareLineByLine(new string[]
155 {
156 "<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>",
157 }, registration);
158 }
159 }
160
161 [Fact]
162 public void CanBuildPackageUsingProvides()
163 {
164 var folder = TestData.Get(@"TestData\UsingProvides");
165 var build = new Builder(folder, null, new[] { folder });
166
167 var results = build.BuildAndQuery(Build, "WixDependencyProvider");
168 Assert.Equal(new[]
169 {
170 "WixDependencyProvider:dep74OfIcniaqxA7EprRGBw4Oyy3r8\tfilF5_pLhBuF5b4N9XEo52g_hUM5Lo\tUsingProvides\t\t\t",
171 }, results);
172 }
173
174 private static void Build(string[] args)
175 {
176 var result = WixRunner.Execute(args)
177 .AssertSuccess();
178 }
179 }
180}
diff --git a/src/test/WixToolsetTest.CoreIntegration/DirectoryFixture.cs b/src/test/WixToolsetTest.CoreIntegration/DirectoryFixture.cs
deleted file mode 100644
index a61bdff3..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/DirectoryFixture.cs
+++ /dev/null
@@ -1,271 +0,0 @@
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 WixBuildTools.TestSupport;
9 using WixToolset.Core.TestPackage;
10 using WixToolset.Data;
11 using WixToolset.Data.WindowsInstaller;
12 using Xunit;
13
14 public class DirectoryFixture
15 {
16 [Fact]
17 public void CanGet32bitProgramFiles6432Folder()
18 {
19 var folder = TestData.Get(@"TestData");
20
21 using (var fs = new DisposableFileSystem())
22 {
23 var baseFolder = fs.GetFolder();
24 var intermediateFolder = Path.Combine(baseFolder, "obj");
25 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
26
27 var result = WixRunner.Execute(new[]
28 {
29 "build",
30 Path.Combine(folder, "Directory", "Empty.wxs"),
31 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
32 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
33 "-intermediateFolder", intermediateFolder,
34 "-o", msiPath
35 });
36
37 result.AssertSuccess();
38
39 var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
40 var section = intermediate.Sections.Single();
41
42 var dirSymbols = section.Symbols.OfType<WixToolset.Data.Symbols.DirectorySymbol>().ToList();
43 Assert.Equal(new[]
44 {
45 "INSTALLFOLDER:ProgramFiles6432Folder:MsiPackage",
46 "ProgramFiles6432Folder:ProgramFilesFolder:.",
47 "ProgramFilesFolder:TARGETDIR:PFiles",
48 "TARGETDIR::SourceDir"
49 }, dirSymbols.OrderBy(d => d.Id.Id).Select(d => d.Id.Id + ":" + d.ParentDirectoryRef + ":" + d.Name).ToArray());
50 }
51 }
52
53 [Fact]
54 public void CanGet64bitProgramFiles6432Folder()
55 {
56 var folder = TestData.Get(@"TestData");
57
58 using (var fs = new DisposableFileSystem())
59 {
60 var baseFolder = fs.GetFolder();
61 var intermediateFolder = Path.Combine(baseFolder, "obj");
62 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
63
64 var result = WixRunner.Execute(new[]
65 {
66 "build",
67 "-arch", "x64",
68 Path.Combine(folder, "Directory", "Empty.wxs"),
69 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
70 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
71 "-intermediateFolder", intermediateFolder,
72 "-o", msiPath
73 });
74
75 result.AssertSuccess();
76
77 var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
78 var section = intermediate.Sections.Single();
79
80 var dirSymbols = section.Symbols.OfType<WixToolset.Data.Symbols.DirectorySymbol>().ToList();
81 Assert.Equal(new[]
82 {
83 "INSTALLFOLDER:ProgramFiles6432Folder:MsiPackage",
84 "ProgramFiles6432Folder:ProgramFiles64Folder:.",
85 "ProgramFiles64Folder:TARGETDIR:PFiles64",
86 "TARGETDIR::SourceDir"
87 }, dirSymbols.OrderBy(d => d.Id.Id).Select(d => d.Id.Id + ":" + d.ParentDirectoryRef + ":" + d.Name).ToArray());
88 }
89 }
90
91 [Fact]
92 public void CanGetDefaultName()
93 {
94 var folder = TestData.Get(@"TestData");
95
96 using (var fs = new DisposableFileSystem())
97 {
98 var baseFolder = fs.GetFolder();
99 var intermediateFolder = Path.Combine(baseFolder, "obj");
100 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
101
102 var result = WixRunner.Execute(new[]
103 {
104 "build",
105 Path.Combine(folder, "Directory", "DefaultName.wxs"),
106 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
107 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
108 "-intermediateFolder", intermediateFolder,
109 "-o", msiPath
110 });
111
112 result.AssertSuccess();
113
114 var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
115 var section = intermediate.Sections.Single();
116
117 var dirSymbols = section.Symbols.OfType<WixToolset.Data.Symbols.DirectorySymbol>().ToList();
118 WixAssert.CompareLineByLine(new[]
119 {
120 "BinFolder\tCompanyFolder\t.",
121 "CompanyFolder\tProgramFilesFolder\tExample Corporation",
122 "ProgramFilesFolder\tTARGETDIR\tPFiles",
123 "TARGETDIR\t\tSourceDir"
124 }, dirSymbols.OrderBy(d => d.Id.Id).Select(d => String.Join('\t', d.Id.Id, d.ParentDirectoryRef, d.Name)).ToArray());
125
126 var data = WindowsInstallerData.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
127 var directoryRows = data.Tables["Directory"].Rows;
128 WixAssert.CompareLineByLine(new[]
129 {
130 "BinFolder\tCompanyFolder\t.",
131 "CompanyFolder\tProgramFilesFolder\tu7-b4gch|Example Corporation",
132 "ProgramFilesFolder\tTARGETDIR\tPFiles",
133 "TARGETDIR\t\tSourceDir"
134 }, directoryRows.Select(r => String.Join('\t', r.FieldAsString(0), r.FieldAsString(1), r.FieldAsString(2))).ToArray());
135 }
136 }
137
138 [Fact]
139 public void CanGetDuplicateDir()
140 {
141 var folder = TestData.Get(@"TestData");
142
143 using (var fs = new DisposableFileSystem())
144 {
145 var baseFolder = fs.GetFolder();
146 var intermediateFolder = Path.Combine(baseFolder, "obj");
147 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
148
149 var result = WixRunner.Execute(new[]
150 {
151 "build",
152 "-arch", "x64",
153 Path.Combine(folder, "DuplicateDir", "DuplicateDir.wxs"),
154 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
155 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
156 "-intermediateFolder", intermediateFolder,
157 "-o", msiPath
158 });
159
160 result.AssertSuccess();
161
162 var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
163 var section = intermediate.Sections.Single();
164
165 var dirSymbols = section.Symbols.OfType<WixToolset.Data.Symbols.DirectorySymbol>().ToList();
166 Assert.Equal(new[]
167 {
168 "dZsSsu81KcG46xXTwc4mTSZO5Zx4:INSTALLFOLDER:dupe",
169 "INSTALLFOLDER:ProgramFiles6432Folder:MsiPackage",
170 "ProgramFiles6432Folder:ProgramFiles64Folder:.",
171 "ProgramFiles64Folder:TARGETDIR:PFiles64",
172 "TARGETDIR::SourceDir"
173 }, dirSymbols.OrderBy(d => d.Id.Id).Select(d => d.Id.Id + ":" + d.ParentDirectoryRef + ":" + d.Name).ToArray());
174 }
175 }
176
177 [Fact]
178 public void CanGetWithMultiNestedSubdirectory()
179 {
180 var folder = TestData.Get(@"TestData");
181
182 using (var fs = new DisposableFileSystem())
183 {
184 var baseFolder = fs.GetFolder();
185 var intermediateFolder = Path.Combine(baseFolder, "obj");
186 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
187
188 var result = WixRunner.Execute(new[]
189 {
190 "build",
191 "-arch", "x64",
192 Path.Combine(folder, "Directory", "Nested.wxs"),
193 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
194 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
195 "-intermediateFolder", intermediateFolder,
196 "-o", msiPath
197 });
198
199 result.AssertSuccess();
200
201 var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
202 var section = intermediate.Sections.Single();
203
204 var dirSymbols = section.Symbols.OfType<WixToolset.Data.Symbols.DirectorySymbol>().ToList();
205 Assert.Equal(new[]
206 {
207 "BinFolder:ProgramFilesFolder:Example Corporation\\Test Product\\bin",
208 "ProgramFilesFolder:TARGETDIR:PFiles",
209 "TARGETDIR::SourceDir"
210 }, dirSymbols.OrderBy(d => d.Id.Id).Select(d => d.Id.Id + ":" + d.ParentDirectoryRef + ":" + d.Name).ToArray());
211
212 var data = WindowsInstallerData.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
213 var directoryRows = data.Tables["Directory"].Rows;
214 Assert.Equal(new[]
215 {
216 "d4EceYatXTyy8HXPt5B6DT9Rj.wE:ProgramFilesFolder:u7-b4gch|Example Corporation",
217 "dSJ1pgiASlW7kJTu0wqsGBklJsS0:d4EceYatXTyy8HXPt5B6DT9Rj.wE:vjj-gxay|Test Product",
218 "BinFolder:dSJ1pgiASlW7kJTu0wqsGBklJsS0:bin",
219 "ProgramFilesFolder:TARGETDIR:PFiles",
220 "TARGETDIR::SourceDir"
221 }, directoryRows.Select(r => r.FieldAsString(0) + ":" + r.FieldAsString(1) + ":" + r.FieldAsString(2)).ToArray());
222 }
223 }
224
225 [Fact]
226 public void CanGetDuplicateTargetSourceName()
227 {
228 var folder = TestData.Get(@"TestData");
229
230 using (var fs = new DisposableFileSystem())
231 {
232 var baseFolder = fs.GetFolder();
233 var intermediateFolder = Path.Combine(baseFolder, "obj");
234 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
235
236 var result = WixRunner.Execute(new[]
237 {
238 "build",
239 "-arch", "x64",
240 Path.Combine(folder, "Directory", "DuplicateTargetSourceName.wxs"),
241 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
242 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
243 "-intermediateFolder", intermediateFolder,
244 "-o", msiPath
245 });
246
247 result.AssertSuccess();
248
249 var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
250 var section = intermediate.Sections.Single();
251
252 var dirSymbols = section.Symbols.OfType<WixToolset.Data.Symbols.DirectorySymbol>().ToList();
253 Assert.Equal(new[]
254 {
255 "BinFolder\tProgramFilesFolder\tbin",
256 "ProgramFilesFolder\tTARGETDIR\tPFiles",
257 "TARGETDIR\t\tSourceDir"
258 }, dirSymbols.OrderBy(d => d.Id.Id).Select(d => String.Join('\t', d.Id.Id, d.ParentDirectoryRef, d.Name)).ToArray());
259
260 var data = WindowsInstallerData.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
261 var directoryRows = data.Tables["Directory"].Rows;
262 Assert.Equal(new[]
263 {
264 "BinFolder\tProgramFilesFolder\tbin",
265 "ProgramFilesFolder\tTARGETDIR\tPFiles",
266 "TARGETDIR\t\tSourceDir"
267 }, directoryRows.Select(r => String.Join('\t', r.FieldAsString(0), r.FieldAsString(1), r.FieldAsString(2))).ToArray());
268 }
269 }
270 }
271}
diff --git a/src/test/WixToolsetTest.CoreIntegration/ExePackageFixture.cs b/src/test/WixToolsetTest.CoreIntegration/ExePackageFixture.cs
deleted file mode 100644
index e2306dcd..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/ExePackageFixture.cs
+++ /dev/null
@@ -1,52 +0,0 @@
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 WixBuildTools.TestSupport;
7 using WixToolset.Core.TestPackage;
8 using Xunit;
9
10 public class ExePackageFixture
11 {
12 [Fact]
13 public void ErrorWhenMissingDetectCondition()
14 {
15 var folder = TestData.Get(@"TestData", "ExePackage");
16
17 using (var fs = new DisposableFileSystem())
18 {
19 var baseFolder = fs.GetFolder();
20
21 var result = WixRunner.Execute(new[]
22 {
23 "build",
24 Path.Combine(folder, "MissingDetectCondition.wxs"),
25 "-o", Path.Combine(baseFolder, "test.wixlib")
26 });
27
28 Assert.Equal(1153, result.ExitCode);
29 }
30 }
31
32 [Fact]
33 public void ErrorWhenRequireDetectCondition()
34 {
35 var folder = TestData.Get(@"TestData", "ExePackage");
36
37 using (var fs = new DisposableFileSystem())
38 {
39 var baseFolder = fs.GetFolder();
40
41 var result = WixRunner.Execute(new[]
42 {
43 "build",
44 Path.Combine(folder, "RequireDetectCondition.wxs"),
45 "-o", Path.Combine(baseFolder, "test.wixlib")
46 });
47
48 Assert.Equal(401, result.ExitCode);
49 }
50 }
51 }
52}
diff --git a/src/test/WixToolsetTest.CoreIntegration/ExtensionFixture.cs b/src/test/WixToolsetTest.CoreIntegration/ExtensionFixture.cs
deleted file mode 100644
index 089658e6..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/ExtensionFixture.cs
+++ /dev/null
@@ -1,153 +0,0 @@
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 WixBuildTools.TestSupport;
10 using WixToolset.Core.TestPackage;
11 using WixToolset.Data;
12 using WixToolset.Data.Symbols;
13 using Xunit;
14
15 public class ExtensionFixture
16 {
17 [Fact]
18 public void CanBuildAndQuery()
19 {
20 var folder = TestData.Get(@"TestData\ExampleExtension");
21 var build = new Builder(folder, typeof(ExampleExtensionFactory), new[] { Path.Combine(folder, "data") });
22
23 var results = build.BuildAndQuery(Build, "Wix4Example");
24 Assert.Equal(new[]
25 {
26 "Wix4Example:Foo\tBar"
27 }, results);
28 }
29
30 [Fact]
31 public void CanBuildWithExampleExtension()
32 {
33 var folder = TestData.Get(@"TestData\ExampleExtension");
34 var extensionPath = Path.GetFullPath(new Uri(typeof(ExampleExtensionFactory).Assembly.CodeBase).LocalPath);
35
36 using (var fs = new DisposableFileSystem())
37 {
38 var intermediateFolder = fs.GetFolder();
39
40 var result = WixRunner.Execute(new[]
41 {
42 "build",
43 Path.Combine(folder, "Package.wxs"),
44 Path.Combine(folder, "PackageComponents.wxs"),
45 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
46 "-ext", extensionPath,
47 "-bindpath", Path.Combine(folder, "data"),
48 "-intermediateFolder", intermediateFolder,
49 "-o", Path.Combine(intermediateFolder, @"bin\extest.msi")
50 });
51
52 result.AssertSuccess();
53
54 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\extest.msi")));
55 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\extest.wixpdb")));
56 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\PFiles\MsiPackage\example.txt")));
57
58 var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"bin\extest.wixpdb"));
59 var section = intermediate.Sections.Single();
60
61 var fileSymbol = section.Symbols.OfType<FileSymbol>().Single();
62 Assert.Equal(Path.Combine(folder, @"data\example.txt"), fileSymbol[FileSymbolFields.Source].AsPath().Path);
63 Assert.Equal(@"example.txt", fileSymbol[FileSymbolFields.Source].PreviousValue.AsPath().Path);
64
65 var example = section.Symbols.Where(t => t.Definition.Type == SymbolDefinitionType.MustBeFromAnExtension).Single();
66 Assert.Equal("Foo", example.Id?.Id);
67 Assert.Equal("Bar", example[0].AsString());
68 }
69 }
70
71 [Fact]
72 public void CanParseCommandLineWithExtension()
73 {
74 var folder = TestData.Get(@"TestData\ExampleExtension");
75 var extensionPath = Path.GetFullPath(new Uri(typeof(ExampleExtensionFactory).Assembly.CodeBase).LocalPath);
76
77 using (var fs = new DisposableFileSystem())
78 {
79 var intermediateFolder = fs.GetFolder();
80
81 var result = WixRunner.Execute(new[]
82 {
83 "build",
84 Path.Combine(folder, "Package.wxs"),
85 Path.Combine(folder, "PackageComponents.wxs"),
86 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
87 "-ext", extensionPath,
88 "-bindpath", Path.Combine(folder, "data"),
89 "-intermediateFolder", intermediateFolder,
90 "-example", "test",
91 "-o", Path.Combine(intermediateFolder, @"bin\extest.msi")
92 });
93
94 result.AssertSuccess();
95
96 var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"bin\extest.wixpdb"));
97 var section = intermediate.Sections.Single();
98
99 var property = section.Symbols.OfType<PropertySymbol>().Where(p => p.Id.Id == "ExampleProperty").Single();
100 Assert.Equal("ExampleProperty", property.Id.Id);
101 Assert.Equal("test", property.Value);
102 }
103 }
104
105 [Fact]
106 public void CannotBuildWithMissingExtension()
107 {
108 var folder = TestData.Get(@"TestData\ExampleExtension");
109
110 using (var fs = new DisposableFileSystem())
111 {
112 var intermediateFolder = fs.GetFolder();
113
114 var exception = Assert.Throws<WixException>(() =>
115 WixRunner.Execute(new[]
116 {
117 "build",
118 Path.Combine(folder, "Package.wxs"),
119 "-ext", "ExampleExtension.DoesNotExist"
120 }));
121
122 Assert.StartsWith("The extension 'ExampleExtension.DoesNotExist' could not be found. Checked paths: ", exception.Message);
123 }
124 }
125
126 [Fact]
127 public void CannotBuildWithMissingVersionedExtension()
128 {
129 var folder = TestData.Get(@"TestData\ExampleExtension");
130
131 using (var fs = new DisposableFileSystem())
132 {
133 var intermediateFolder = fs.GetFolder();
134
135 var exception = Assert.Throws<WixException>(() =>
136 WixRunner.Execute(new[]
137 {
138 "build",
139 Path.Combine(folder, "Package.wxs"),
140 "-ext", "ExampleExtension.DoesNotExist/1.0.0"
141 }));
142
143 Assert.StartsWith("The extension 'ExampleExtension.DoesNotExist/1.0.0' could not be found. Checked paths: ", exception.Message);
144 }
145 }
146
147 private static void Build(string[] args)
148 {
149 var result = WixRunner.Execute(args)
150 .AssertSuccess();
151 }
152 }
153}
diff --git a/src/test/WixToolsetTest.CoreIntegration/LanguageFixture.cs b/src/test/WixToolsetTest.CoreIntegration/LanguageFixture.cs
deleted file mode 100644
index db9708a7..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/LanguageFixture.cs
+++ /dev/null
@@ -1,174 +0,0 @@
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 WixToolset.Data.WindowsInstaller;
12 using Xunit;
13
14 public class LanguageFixture
15 {
16 [Fact]
17 public void CanBuildWithDefaultProductLanguage()
18 {
19 var folder = TestData.Get(@"TestData", "Language");
20
21 using (var fs = new DisposableFileSystem())
22 {
23 var baseFolder = fs.GetFolder();
24
25 var result = WixRunner.Execute(new[]
26 {
27 "build",
28 Path.Combine(folder, "Package.wxs"),
29 "-loc", Path.Combine(folder, "Package.wxl"),
30 "-bindpath", Path.Combine(folder, "data"),
31 "-intermediateFolder", Path.Combine(baseFolder, "obj"),
32 "-o", Path.Combine(baseFolder, @"bin\test.msi")
33 });
34
35 result.AssertSuccess();
36
37 var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
38 var section = intermediate.Sections.Single();
39
40 var directorySymbols = section.Symbols.OfType<DirectorySymbol>();
41 WixAssert.CompareLineByLine(new[]
42 {
43 "INSTALLFOLDER:Example Corporation\\MsiPackage",
44 "ProgramFilesFolder:PFiles",
45 "TARGETDIR:SourceDir"
46 }, directorySymbols.OrderBy(s => s.Id.Id).Select(s => s.Id.Id + ":" + s.Name).ToArray());
47
48 var propertySymbol = section.Symbols.OfType<PropertySymbol>().Single(p => p.Id.Id == "ProductLanguage");
49 Assert.Equal("0", propertySymbol.Value);
50
51 var summaryPlatform = section.Symbols.OfType<SummaryInformationSymbol>().Single(s => s.PropertyId == SummaryInformationType.PlatformAndLanguage);
52 Assert.Equal("Intel;0", summaryPlatform.Value);
53
54 var summaryCodepage = section.Symbols.OfType<SummaryInformationSymbol>().Single(s => s.PropertyId == SummaryInformationType.Codepage);
55 Assert.Equal("1252", summaryCodepage.Value);
56
57 var data = WindowsInstallerData.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
58 var directoryRows = data.Tables["Directory"].Rows;
59 WixAssert.CompareLineByLine(new[]
60 {
61 "d4EceYatXTyy8HXPt5B6DT9Rj.wE:u7-b4gch|Example Corporation",
62 "INSTALLFOLDER:oekcr5lq|MsiPackage",
63 "ProgramFilesFolder:PFiles",
64 "TARGETDIR:SourceDir"
65 }, directoryRows.Select(r => r.FieldAsString(0) + ":" + r.FieldAsString(2)).ToArray());
66 }
67 }
68
69 [Fact]
70 public void CanBuildEnuWxl()
71 {
72 var folder = TestData.Get(@"TestData", "Language");
73
74 using (var fs = new DisposableFileSystem())
75 {
76 var baseFolder = fs.GetFolder();
77
78 var result = WixRunner.Execute(new[]
79 {
80 "build",
81 Path.Combine(folder, "Package.wxs"),
82 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
83 "-bindpath", Path.Combine(folder, "data"),
84 "-intermediateFolder", Path.Combine(baseFolder, "obj"),
85 "-o", Path.Combine(baseFolder, @"bin\test.msi")
86 });
87
88 result.AssertSuccess();
89
90 var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
91 var section = intermediate.Sections.Single();
92
93 var propertySymbol = section.Symbols.OfType<PropertySymbol>().Single(p => p.Id.Id == "ProductLanguage");
94 Assert.Equal("1033", propertySymbol.Value);
95
96 var summaryPlatform = section.Symbols.OfType<SummaryInformationSymbol>().Single(s => s.PropertyId == SummaryInformationType.PlatformAndLanguage);
97 Assert.Equal("Intel;1033", summaryPlatform.Value);
98
99 var summaryCodepage = section.Symbols.OfType<SummaryInformationSymbol>().Single(s => s.PropertyId == SummaryInformationType.Codepage);
100 Assert.Equal("1252", summaryCodepage.Value);
101 }
102 }
103
104 [Fact]
105 public void CanBuildJpnWxl()
106 {
107 var folder = TestData.Get(@"TestData", "Language");
108
109 using (var fs = new DisposableFileSystem())
110 {
111 var baseFolder = fs.GetFolder();
112
113 var result = WixRunner.Execute(new[]
114 {
115 "build",
116 Path.Combine(folder, "Package.wxs"),
117 "-loc", Path.Combine(folder, "Package.ja-jp.wxl"),
118 "-bindpath", Path.Combine(folder, "data"),
119 "-intermediateFolder", Path.Combine(baseFolder, "obj"),
120 "-o", Path.Combine(baseFolder, @"bin\test.msi")
121 });
122
123 result.AssertSuccess();
124
125 var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
126 var section = intermediate.Sections.Single();
127
128 var propertySymbol = section.Symbols.OfType<PropertySymbol>().Single(p => p.Id.Id == "ProductLanguage");
129 Assert.Equal("1041", propertySymbol.Value);
130
131 var summaryPlatform = section.Symbols.OfType<SummaryInformationSymbol>().Single(s => s.PropertyId == SummaryInformationType.PlatformAndLanguage);
132 Assert.Equal("Intel;1041", summaryPlatform.Value);
133
134 var summaryCodepage = section.Symbols.OfType<SummaryInformationSymbol>().Single(s => s.PropertyId == SummaryInformationType.Codepage);
135 Assert.Equal("932", summaryCodepage.Value);
136 }
137 }
138
139 [Fact]
140 public void CanBuildJpnWxlWithEnuSummaryInfo()
141 {
142 var folder = TestData.Get(@"TestData", "Language");
143
144 using (var fs = new DisposableFileSystem())
145 {
146 var baseFolder = fs.GetFolder();
147
148 var result = WixRunner.Execute(new[]
149 {
150 "build",
151 Path.Combine(folder, "Package.wxs"),
152 "-loc", Path.Combine(folder, "PackageWithEnSummaryInfo.ja-jp.wxl"),
153 "-bindpath", Path.Combine(folder, "data"),
154 "-intermediateFolder", Path.Combine(baseFolder, "obj"),
155 "-o", Path.Combine(baseFolder, @"bin\test.msi")
156 });
157
158 result.AssertSuccess();
159
160 var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
161 var section = intermediate.Sections.Single();
162
163 var propertySymbol = section.Symbols.OfType<PropertySymbol>().Single(p => p.Id.Id == "ProductLanguage");
164 Assert.Equal("1041", propertySymbol.Value);
165
166 var summaryPlatform = section.Symbols.OfType<SummaryInformationSymbol>().Single(s => s.PropertyId == SummaryInformationType.PlatformAndLanguage);
167 Assert.Equal("Intel;1041", summaryPlatform.Value);
168
169 var summaryCodepage = section.Symbols.OfType<SummaryInformationSymbol>().Single(s => s.PropertyId == SummaryInformationType.Codepage);
170 Assert.Equal("1252", summaryCodepage.Value);
171 }
172 }
173 }
174}
diff --git a/src/test/WixToolsetTest.CoreIntegration/LinkerFixture.cs b/src/test/WixToolsetTest.CoreIntegration/LinkerFixture.cs
deleted file mode 100644
index cfe4d3f1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/LinkerFixture.cs
+++ /dev/null
@@ -1,174 +0,0 @@
1
2// 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.
3
4namespace WixToolsetTest.CoreIntegration
5{
6 using System;
7 using System.IO;
8 using System.Linq;
9 using WixBuildTools.TestSupport;
10 using WixToolset.Core;
11 using WixToolset.Core.TestPackage;
12 using WixToolset.Data;
13 using WixToolset.Data.Symbols;
14 using WixToolset.Extensibility.Data;
15 using WixToolset.Extensibility.Services;
16 using Xunit;
17
18 public class LinkerFixture
19 {
20 [Fact]
21 public void MustCompileBeforeLinking()
22 {
23 var intermediate1 = new Intermediate("TestIntermediate1", new[] { new IntermediateSection("test1", SectionType.Product) }, null);
24 var intermediate2 = new Intermediate("TestIntermediate2", new[] { new IntermediateSection("test2", SectionType.Fragment) }, null);
25 var serviceProvider = WixToolsetServiceProviderFactory.CreateServiceProvider();
26
27 var listener = new TestMessageListener();
28 var messaging = serviceProvider.GetService<IMessaging>();
29 messaging.SetListener(listener);
30
31 var creator = serviceProvider.GetService<ISymbolDefinitionCreator>();
32 var context = serviceProvider.GetService<ILinkContext>();
33 context.Extensions = Array.Empty<WixToolset.Extensibility.ILinkerExtension>();
34 context.ExtensionData = Array.Empty<WixToolset.Extensibility.IExtensionData>();
35 context.Intermediates = new[] { intermediate1, intermediate2 };
36 context.SymbolDefinitionCreator = creator;
37
38 var linker = serviceProvider.GetService<ILinker>();
39 linker.Link(context);
40
41 Assert.Equal((int)ErrorMessages.Ids.IntermediatesMustBeCompiled, messaging.LastErrorNumber);
42 Assert.Single(listener.Messages);
43 Assert.EndsWith("TestIntermediate1, TestIntermediate2", listener.Messages[0].ToString());
44 }
45
46 [Fact]
47 public void CanBuildWithOverridableActions()
48 {
49 var folder = TestData.Get(@"TestData\OverridableActions");
50
51 using (var fs = new DisposableFileSystem())
52 {
53 var baseFolder = fs.GetFolder();
54 var intermediateFolder = Path.Combine(baseFolder, "obj");
55
56 var result = WixRunner.Execute(new[]
57 {
58 "build",
59 "-sw1008", // this is expected for this test
60 Path.Combine(folder, "Package.wxs"),
61 Path.Combine(folder, "PackageComponents.wxs"),
62 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
63 "-bindpath", Path.Combine(folder, "data"),
64 "-intermediateFolder", intermediateFolder,
65 "-o", Path.Combine(baseFolder, @"bin\test.msi")
66 });
67
68 result.AssertSuccess();
69
70 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.msi")));
71 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.wixpdb")));
72 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\PFiles\MsiPackage\test.txt")));
73
74 var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
75 var section = intermediate.Sections.Single();
76
77 var actions = section.Symbols.OfType<WixActionSymbol>().Where(wat => wat.Action.StartsWith("Set")).ToList();
78 Assert.Equal(2, actions.Count);
79 //Assert.Equal(Path.Combine(folder, @"data\test.txt"), wixFile[WixFileSymbolFields.Source].AsPath().Path);
80 //Assert.Equal(@"test.txt", wixFile[WixFileSymbolFields.Source].PreviousValue.AsPath().Path);
81 }
82 }
83
84 [Fact]
85 public void MissingEntrySectionDetectedProduct()
86 {
87 var folder = TestData.Get(@"TestData\OverridableActions");
88
89 using (var fs = new DisposableFileSystem())
90 {
91 var baseFolder = fs.GetFolder();
92 var intermediateFolder = Path.Combine(baseFolder, "obj");
93
94 try
95 {
96 WixRunner.Execute(new[]
97 {
98 "build",
99 Path.Combine(folder, "PackageComponents.wxs"),
100 "-intermediateFolder", intermediateFolder,
101 "-o", Path.Combine(baseFolder, @"bin\test.msi")
102 });
103 }
104 catch (WixException we)
105 {
106 Assert.Equal("Could not find entry section in provided list of intermediates. Expected section of type 'Product'.", we.Message);
107 return;
108 }
109
110 Assert.True(false, "Expected WixException for missing entry section but expectations were not met.");
111 }
112 }
113
114 [Fact]
115 public void MissingEntrySectionDetectedWixipl()
116 {
117 var folder = TestData.Get(@"TestData\OverridableActions");
118
119 using (var fs = new DisposableFileSystem())
120 {
121 var baseFolder = fs.GetFolder();
122 var intermediateFolder = Path.Combine(baseFolder, "obj");
123
124 try
125 {
126 WixRunner.Execute(new[]
127 {
128 "build",
129 Path.Combine(folder, "PackageComponents.wxs"),
130 "-intermediateFolder", intermediateFolder,
131 "-o", Path.Combine(baseFolder, @"bin\test.wixipl")
132 });
133 }
134 catch (WixException we)
135 {
136 Assert.Equal("Could not find entry section in provided list of intermediates. Supported entry section types are: Product, Bundle, Patch, PatchCreation, Module.", we.Message);
137 return;
138 }
139
140 Assert.True(false, "Expected WixException for missing entry section but expectations were not met.");
141 }
142 }
143
144 [Fact]
145 public void MissingEntrySectionDetectedUnknown()
146 {
147 var folder = TestData.Get(@"TestData\OverridableActions");
148
149 using (var fs = new DisposableFileSystem())
150 {
151 var baseFolder = fs.GetFolder();
152 var intermediateFolder = Path.Combine(baseFolder, "obj");
153
154 try
155 {
156 WixRunner.Execute(new[]
157 {
158 "build",
159 Path.Combine(folder, "PackageComponents.wxs"),
160 "-intermediateFolder", intermediateFolder,
161 "-o", Path.Combine(baseFolder, @"bin\test.bob")
162 });
163 }
164 catch (WixException we)
165 {
166 Assert.Equal("Could not find entry section in provided list of intermediates. Supported entry section types are: Product, Bundle, Patch, PatchCreation, Module.", we.Message);
167 return;
168 }
169
170 Assert.True(false, "Expected WixException for missing entry section but expectations were not met.");
171 }
172 }
173 }
174}
diff --git a/src/test/WixToolsetTest.CoreIntegration/MediaFixture.cs b/src/test/WixToolsetTest.CoreIntegration/MediaFixture.cs
deleted file mode 100644
index de18e30c..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/MediaFixture.cs
+++ /dev/null
@@ -1,62 +0,0 @@
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/ModuleFixture.cs b/src/test/WixToolsetTest.CoreIntegration/ModuleFixture.cs
deleted file mode 100644
index 17e91692..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/ModuleFixture.cs
+++ /dev/null
@@ -1,113 +0,0 @@
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 WixBuildTools.TestSupport;
9 using WixToolset.Core.TestPackage;
10 using WixToolset.Data;
11 using WixToolset.Data.Symbols;
12 using WixToolset.Data.WindowsInstaller;
13 using Xunit;
14
15 public class ModuleFixture
16 {
17 [Fact]
18 public void CanBuildSimpleModule()
19 {
20 var folder = TestData.Get(@"TestData\SimpleModule");
21
22 using (var fs = new DisposableFileSystem())
23 {
24 var intermediateFolder = fs.GetFolder();
25
26 var result = WixRunner.Execute(new[]
27 {
28 "build",
29 Path.Combine(folder, "Module.wxs"),
30 "-loc", Path.Combine(folder, "Module.en-us.wxl"),
31 "-bindpath", Path.Combine(folder, "data"),
32 "-intermediateFolder", intermediateFolder,
33 "-o", Path.Combine(intermediateFolder, @"bin\test.msm")
34 });
35
36 result.AssertSuccess();
37
38 var msmPath = Path.Combine(intermediateFolder, @"bin\test.msm");
39 Assert.True(File.Exists(msmPath));
40 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.wixpdb")));
41
42 var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"bin\test.wixpdb"));
43 var section = intermediate.Sections.Single();
44
45 var dirSymbols = section.Symbols.OfType<DirectorySymbol>().OrderBy(d => d.Id.Id).ToList();
46 WixAssert.CompareLineByLine(new[]
47 {
48 "MergeRedirectFolder\tTARGETDIR\t.",
49 "NotTheMergeRedirectFolder\tTARGETDIR\t.",
50 "TARGETDIR\t\tSourceDir"
51 }, dirSymbols.Select(d => String.Join("\t", d.Id.Id, d.ParentDirectoryRef, d.Name)).ToArray());
52
53 var fileSymbols = section.Symbols.OfType<FileSymbol>().OrderBy(d => d.Id.Id).ToList();
54 WixAssert.CompareLineByLine(new[]
55 {
56 $"File1\t{Path.Combine(folder, @"data\test.txt")}\ttest.txt",
57 $"File2\t{Path.Combine(folder, @"data\test.txt")}\ttest.txt",
58 }, fileSymbols.Select(fileSymbol => String.Join("\t", fileSymbol.Id.Id, fileSymbol[FileSymbolFields.Source].AsPath().Path, fileSymbol[FileSymbolFields.Source].PreviousValue.AsPath().Path)).ToArray());
59
60 var data = WindowsInstallerData.Load(Path.Combine(intermediateFolder, @"bin\test.wixpdb"));
61 var fileRows = data.Tables["File"].Rows;
62 Assert.Equal(new[]
63 {
64 "File1.243FB739_4D05_472F_9CFB_EF6B1017B6DE",
65 "File2.243FB739_4D05_472F_9CFB_EF6B1017B6DE",
66 }, fileRows.Select(r => r.FieldAsString(0)).ToArray());
67
68 var cabPath = Path.Combine(intermediateFolder, "msm-test.cab");
69 Query.ExtractStream(msmPath, "MergeModule.CABinet", cabPath);
70 var files = Query.GetCabinetFiles(cabPath);
71 Assert.Equal(new[]
72 {
73 "File1.243FB739_4D05_472F_9CFB_EF6B1017B6DE",
74 "File2.243FB739_4D05_472F_9CFB_EF6B1017B6DE",
75 }, files.Select(f => Path.Combine(f.Path, f.Name)).ToArray());
76 }
77 }
78
79 [Fact]
80 public void CanSuppressModularization()
81 {
82 var folder = TestData.Get(@"TestData\SuppressModularization");
83
84 using (var fs = new DisposableFileSystem())
85 {
86 var intermediateFolder = fs.GetFolder();
87
88 var result = WixRunner.Execute(new[]
89 {
90 "build",
91 Path.Combine(folder, "Module.wxs"),
92 "-loc", Path.Combine(folder, "Module.en-us.wxl"),
93 "-bindpath", Path.Combine(folder, "data"),
94 "-intermediateFolder", intermediateFolder,
95 "-sw1079",
96 "-sw1086",
97 "-o", Path.Combine(intermediateFolder, @"bin\test.msm")
98 });
99
100 result.AssertSuccess();
101
102 var msmPath = Path.Combine(intermediateFolder, @"bin\test.msm");
103
104 var rows = Query.QueryDatabase(msmPath, new[] { "CustomAction", "Property" });
105 WixAssert.CompareLineByLine(new[]
106 {
107 "CustomAction:Test\t11265\tFakeCA.243FB739_4D05_472F_9CFB_EF6B1017B6DE\tTestEntry\t",
108 "Property:MsiHiddenProperties\tTest"
109 }, rows);
110 }
111 }
112 }
113}
diff --git a/src/test/WixToolsetTest.CoreIntegration/MsiFixture.cs b/src/test/WixToolsetTest.CoreIntegration/MsiFixture.cs
deleted file mode 100644
index 3bdfa0ef..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/MsiFixture.cs
+++ /dev/null
@@ -1,838 +0,0 @@
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 WixBuildTools.TestSupport;
10 using WixToolset.Core.TestPackage;
11 using WixToolset.Data;
12 using WixToolset.Data.Symbols;
13 using WixToolset.Data.WindowsInstaller;
14 using Xunit;
15
16 public class MsiFixture
17 {
18 [Fact]
19 public void CanBuildSingleFile()
20 {
21 var folder = TestData.Get(@"TestData\SingleFile");
22
23 using (var fs = new DisposableFileSystem())
24 {
25 var baseFolder = fs.GetFolder();
26 var intermediateFolder = Path.Combine(baseFolder, "obj");
27
28 var result = WixRunner.Execute(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 "-bindpath", Path.Combine(folder, "data"),
35 "-intermediateFolder", intermediateFolder,
36 "-o", Path.Combine(baseFolder, @"bin\test.msi")
37 });
38
39 result.AssertSuccess();
40
41 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.msi")));
42 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.wixpdb")));
43 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\PFiles\MsiPackage\test.txt")));
44
45 var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
46
47 Assert.False(intermediate.HasLevel(WixToolset.Data.IntermediateLevels.Compiled));
48 Assert.True(intermediate.HasLevel(WixToolset.Data.IntermediateLevels.Linked));
49 Assert.True(intermediate.HasLevel(WixToolset.Data.IntermediateLevels.Resolved));
50 Assert.True(intermediate.HasLevel(WixToolset.Data.WindowsInstaller.IntermediateLevels.FullyBound));
51
52 var section = intermediate.Sections.Single();
53
54 var fileSymbol = section.Symbols.OfType<FileSymbol>().First();
55 Assert.Equal(Path.Combine(folder, @"data\test.txt"), fileSymbol[FileSymbolFields.Source].AsPath().Path);
56 Assert.Equal(@"test.txt", fileSymbol[FileSymbolFields.Source].PreviousValue.AsPath().Path);
57 }
58 }
59
60 [Fact]
61 public void CanBuildSingleFileCompressed()
62 {
63 var folder = TestData.Get(@"TestData\SingleFileCompressed");
64
65 using (var fs = new DisposableFileSystem())
66 {
67 var intermediateFolder = fs.GetFolder();
68
69 var result = WixRunner.Execute(new[]
70 {
71 "build",
72 Path.Combine(folder, "Package.wxs"),
73 Path.Combine(folder, "PackageComponents.wxs"),
74 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
75 "-bindpath", Path.Combine(folder, "data"),
76 "-intermediateFolder", intermediateFolder,
77 "-o", Path.Combine(intermediateFolder, @"bin\test.msi")
78 });
79
80 result.AssertSuccess();
81
82 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.msi")));
83 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\example.cab")));
84 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.wixpdb")));
85
86 var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"bin\test.wixpdb"));
87 var section = intermediate.Sections.Single();
88
89 var fileSymbol = section.Symbols.OfType<FileSymbol>().Single();
90 Assert.Equal(Path.Combine(folder, @"data\test.txt"), fileSymbol[FileSymbolFields.Source].AsPath().Path);
91 Assert.Equal(@"test.txt", fileSymbol[FileSymbolFields.Source].PreviousValue.AsPath().Path);
92 }
93 }
94
95 [Fact]
96 public void CanBuildSingleFileCompressedWithMediaTemplate()
97 {
98 var folder = TestData.Get(@"TestData\SingleFileCompressed");
99
100 using (var fs = new DisposableFileSystem())
101 {
102 var intermediateFolder = fs.GetFolder();
103
104 var result = WixRunner.Execute(new[]
105 {
106 "build",
107 Path.Combine(folder, "Package.wxs"),
108 Path.Combine(folder, "PackageComponents.wxs"),
109 "-d", "MediaTemplateCompressionLevel",
110 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
111 "-bindpath", Path.Combine(folder, "data"),
112 "-intermediateFolder", intermediateFolder,
113 "-o", Path.Combine(intermediateFolder, @"bin\test.msi")
114 });
115
116 result.AssertSuccess();
117
118 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.msi")));
119 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\cab1.cab")));
120 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.wixpdb")));
121 }
122 }
123
124 [Fact]
125 public void CanBuildSingleFileCompressedWithMediaTemplateWithLowCompression()
126 {
127 var folder = TestData.Get(@"TestData\SingleFileCompressed");
128
129 using (var fs = new DisposableFileSystem())
130 {
131 var intermediateFolder = fs.GetFolder();
132
133 var result = WixRunner.Execute(new[]
134 {
135 "build",
136 Path.Combine(folder, "Package.wxs"),
137 Path.Combine(folder, "PackageComponents.wxs"),
138 "-d", "MediaTemplateCompressionLevel=low",
139 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
140 "-bindpath", Path.Combine(folder, "data"),
141 "-intermediateFolder", intermediateFolder,
142 "-o", Path.Combine(intermediateFolder, @"bin\test.msi")
143 });
144
145 result.AssertSuccess();
146
147 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.msi")));
148 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\low1.cab")));
149 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.wixpdb")));
150 }
151 }
152
153 [Fact]
154 public void CanBuildMultipleFilesCompressed()
155 {
156 var folder = TestData.Get(@"TestData\MultiFileCompressed");
157
158 using (var fs = new DisposableFileSystem())
159 {
160 var intermediateFolder = fs.GetFolder();
161
162 var result = WixRunner.Execute(new[]
163 {
164 "build",
165 "-sw1079", // TODO: why does this test need to create a second cab which is empty?
166 Path.Combine(folder, "Package.wxs"),
167 Path.Combine(folder, "PackageComponents.wxs"),
168 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
169 "-bindpath", Path.Combine(folder, "data"),
170 "-intermediateFolder", intermediateFolder,
171 "-o", Path.Combine(intermediateFolder, @"bin\test.msi")
172 });
173
174 result.AssertSuccess();
175
176 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.msi")));
177 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\example1.cab")));
178 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\example2.cab")));
179 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.wixpdb")));
180 }
181 }
182
183 [Fact]
184 public void CanFailBuildMissingFile()
185 {
186 var folder = TestData.Get(@"TestData\SingleFile");
187
188 using (var fs = new DisposableFileSystem())
189 {
190 var baseFolder = fs.GetFolder();
191 var intermediateFolder = Path.Combine(baseFolder, "obj");
192
193 var result = WixRunner.Execute(new[]
194 {
195 "build",
196 Path.Combine(folder, "Package.wxs"),
197 Path.Combine(folder, "PackageComponents.wxs"),
198 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
199 "-bindpath", Path.Combine(folder, "does-not-exist"),
200 "-bindpath", Path.Combine(folder, "also-does-not-exist"),
201 "-intermediateFolder", intermediateFolder,
202 "-o", Path.Combine(baseFolder, @"bin\test.msi")
203 }, out var messages);
204 Assert.Equal(103, result);
205
206 var error = messages.Single(m => m.Level == MessageLevel.Error);
207 var errorMessage = error.ToString();
208 var checkedPaths = errorMessage.Substring(errorMessage.IndexOf(':') + 1).Split(new[] { ',' }).Select(s => s.Trim()).ToArray();
209 Assert.Equal(new[]
210 {
211 "test.txt",
212 Path.Combine(folder, "does-not-exist", "test.txt"),
213 Path.Combine(folder, "also-does-not-exist", "test.txt"),
214 }, checkedPaths);
215 }
216 }
217
218 [Fact]
219 public void CanBuildWithErrorTable()
220 {
221 var folder = TestData.Get(@"TestData\ErrorsInUI");
222
223 using (var fs = new DisposableFileSystem())
224 {
225 var baseFolder = fs.GetFolder();
226 var intermediateFolder = Path.Combine(baseFolder, "obj");
227
228 var result = WixRunner.Execute(new[]
229 {
230 "build",
231 Path.Combine(folder, "Package.wxs"),
232 Path.Combine(folder, "PackageComponents.wxs"),
233 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
234 "-bindpath", Path.Combine(folder, "data"),
235 "-intermediateFolder", intermediateFolder,
236 "-o", Path.Combine(baseFolder, @"bin\test.msi")
237 });
238
239 result.AssertSuccess();
240
241 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.msi")));
242 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.wixpdb")));
243 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\PFiles\MsiPackage\test.txt")));
244
245 var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
246 var section = intermediate.Sections.Single();
247
248 var errors = section.Symbols.OfType<ErrorSymbol>().ToDictionary(t => t.Id.Id);
249 Assert.Equal("Category 55 Emergency Doomsday Crisis", errors["1234"].Message.Trim());
250 Assert.Equal(" ", errors["5678"].Message);
251
252 var customAction1 = section.Symbols.OfType<CustomActionSymbol>().Where(t => t.Id.Id == "CanWeReferenceAnError_YesWeCan").Single();
253 Assert.Equal("1234", customAction1.Target);
254
255 var customAction2 = section.Symbols.OfType<CustomActionSymbol>().Where(t => t.Id.Id == "TextErrorsWorkOKToo").Single();
256 Assert.Equal("If you see this, something went wrong.", customAction2.Target);
257 }
258 }
259
260 [Fact]
261 public void CanLoadPdbGeneratedByBuild()
262 {
263 var folder = TestData.Get(@"TestData\MultiFileCompressed");
264
265 using (var fs = new DisposableFileSystem())
266 {
267 var intermediateFolder = fs.GetFolder();
268
269 var result = WixRunner.Execute(new[]
270 {
271 "build",
272 Path.Combine(folder, "Package.wxs"),
273 Path.Combine(folder, "PackageComponents.wxs"),
274 "-d", "MediaTemplateCompressionLevel",
275 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
276 "-bindpath", Path.Combine(folder, "data"),
277 "-intermediateFolder", intermediateFolder,
278 "-o", Path.Combine(intermediateFolder, @"bin\test.msi")
279 });
280
281 result.AssertSuccess();
282
283 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.msi")));
284 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\cab1.cab")));
285
286 var pdbPath = Path.Combine(intermediateFolder, @"bin\test.wixpdb");
287 Assert.True(File.Exists(pdbPath));
288
289 var output = WindowsInstallerData.Load(pdbPath, suppressVersionCheck: true);
290 Assert.NotNull(output);
291 }
292 }
293
294 [Fact]
295 public void CanLoadPdbGeneratedByBuildViaWixOutput()
296 {
297 var folder = TestData.Get(@"TestData\MultiFileCompressed");
298
299 using (var fs = new DisposableFileSystem())
300 {
301 var intermediateFolder = fs.GetFolder();
302
303 var result = WixRunner.Execute(new[]
304 {
305 "build",
306 Path.Combine(folder, "Package.wxs"),
307 Path.Combine(folder, "PackageComponents.wxs"),
308 "-d", "MediaTemplateCompressionLevel",
309 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
310 "-bindpath", Path.Combine(folder, "data"),
311 "-intermediateFolder", intermediateFolder,
312 "-o", Path.Combine(intermediateFolder, @"bin\test.msi")
313 });
314
315 result.AssertSuccess();
316
317 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.msi")));
318 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\cab1.cab")));
319
320 var pdbPath = Path.Combine(intermediateFolder, @"bin\test.wixpdb");
321 Assert.True(File.Exists(pdbPath));
322
323 var wixOutput = WixOutput.Read(pdbPath);
324 var output = WindowsInstallerData.Load(wixOutput, suppressVersionCheck: true);
325 Assert.NotNull(output);
326 }
327 }
328
329 [Fact]
330 public void CanBuildManualUpgrade()
331 {
332 var folder = TestData.Get(@"TestData\ManualUpgrade");
333
334 using (var fs = new DisposableFileSystem())
335 {
336 var intermediateFolder = fs.GetFolder();
337
338 var result = WixRunner.Execute(new[]
339 {
340 "build",
341 Path.Combine(folder, "Package.wxs"),
342 Path.Combine(folder, "PackageComponents.wxs"),
343 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
344 "-bindpath", Path.Combine(folder, "data"),
345 "-intermediateFolder", intermediateFolder,
346 "-o", Path.Combine(intermediateFolder, @"bin\test.msi")
347 }, out var messages);
348
349 Assert.Equal(0, result);
350
351 var pdbPath = Path.Combine(intermediateFolder, @"bin\test.wixpdb");
352 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.msi")));
353 Assert.True(File.Exists(pdbPath));
354 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\PFiles\MsiPackage\test.txt")));
355
356 var intermediate = Intermediate.Load(pdbPath);
357 var section = intermediate.Sections.Single();
358
359 var upgradeSymbol = section.Symbols.OfType<UpgradeSymbol>().Single();
360 Assert.False(upgradeSymbol.ExcludeLanguages);
361 Assert.True(upgradeSymbol.IgnoreRemoveFailures);
362 Assert.False(upgradeSymbol.VersionMaxInclusive);
363 Assert.True(upgradeSymbol.VersionMinInclusive);
364 Assert.Equal("13.0.0", upgradeSymbol.VersionMax);
365 Assert.Equal("12.0.0", upgradeSymbol.VersionMin);
366 Assert.False(upgradeSymbol.OnlyDetect);
367 Assert.Equal("BLAHBLAHBLAH", upgradeSymbol.ActionProperty);
368
369 var pdb = WindowsInstallerData.Load(pdbPath, suppressVersionCheck: false);
370 var secureProperties = pdb.Tables["Property"].Rows.Where(row => row.GetKey() == "SecureCustomProperties").Single();
371 Assert.Contains("BLAHBLAHBLAH", secureProperties.FieldAsString(1));
372 }
373 }
374
375 [Fact]
376 public void CanBuildWixipl()
377 {
378 var folder = TestData.Get(@"TestData\SingleFile");
379
380 using (var fs = new DisposableFileSystem())
381 {
382 var baseFolder = fs.GetFolder();
383 var intermediateFolder = Path.Combine(baseFolder, "obj");
384
385 var result = WixRunner.Execute(new[]
386 {
387 "build",
388 Path.Combine(folder, "Package.wxs"),
389 Path.Combine(folder, "PackageComponents.wxs"),
390 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
391 "-bindpath", Path.Combine(folder, "data"),
392 "-intermediateFolder", intermediateFolder,
393 "-o", Path.Combine(baseFolder, @"bin\test.wixipl")
394 }, out var messages);
395
396 Assert.Equal(0, result);
397
398 var builtFiles = Directory.GetFiles(Path.Combine(baseFolder, @"bin"));
399
400 Assert.Equal(new[]{
401 "test.wixipl"
402 }, builtFiles.Select(Path.GetFileName).ToArray());
403 }
404 }
405
406 [Fact]
407 public void CanBuildWixlib()
408 {
409 var folder = TestData.Get(@"TestData\SingleFile");
410
411 using (var fs = new DisposableFileSystem())
412 {
413 var baseFolder = fs.GetFolder();
414 var intermediateFolder = Path.Combine(baseFolder, "obj");
415
416 var result = WixRunner.Execute(new[]
417 {
418 "build",
419 Path.Combine(folder, "Package.wxs"),
420 Path.Combine(folder, "PackageComponents.wxs"),
421 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
422 "-bindpath", Path.Combine(folder, "data"),
423 "-intermediateFolder", intermediateFolder,
424 "-o", Path.Combine(baseFolder, @"bin\test.wixlib")
425 }, out var messages);
426
427 Assert.Equal(0, result);
428
429 var builtFiles = Directory.GetFiles(Path.Combine(baseFolder, @"bin"));
430
431 Assert.Equal(new[]{
432 "test.wixlib"
433 }, builtFiles.Select(Path.GetFileName).ToArray());
434 }
435 }
436
437 [Fact]
438 public void CanBuildBinaryWixlib()
439 {
440 var folder = TestData.Get(@"TestData\SingleFile");
441
442 using (var fs = new DisposableFileSystem())
443 {
444 var baseFolder = fs.GetFolder();
445 var intermediateFolder = Path.Combine(baseFolder, "obj");
446
447 var result = WixRunner.Execute(
448 "build",
449 Path.Combine(folder, "Package.wxs"),
450 Path.Combine(folder, "PackageComponents.wxs"),
451 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
452 "-bindpath", Path.Combine(folder, "data"),
453 "-intermediateFolder", intermediateFolder,
454 "-bindfiles",
455 "-o", Path.Combine(baseFolder, @"bin\test.wixlib"));
456
457 result.AssertSuccess();
458
459 using (var wixout = WixOutput.Read(Path.Combine(baseFolder, @"bin\test.wixlib")))
460 {
461 Assert.NotNull(wixout.GetDataStream("wix-ir.json"));
462
463 var text = wixout.GetData("wix-ir/test.txt");
464 Assert.Equal("This is test.txt.", text);
465 }
466 }
467 }
468
469 [Fact]
470 public void CanBuildBinaryWixlibWithCollidingFilenames()
471 {
472 var folder = TestData.Get(@"TestData\SameFileFolders");
473
474 using (var fs = new DisposableFileSystem())
475 {
476 var baseFolder = fs.GetFolder();
477 var intermediateFolder = Path.Combine(baseFolder, "obj");
478
479 var result = WixRunner.Execute(
480 "build",
481 Path.Combine(folder, "TestComponents.wxs"),
482 "-bindpath", Path.Combine(folder, "data"),
483 "-intermediateFolder", intermediateFolder,
484 "-bindfiles",
485 "-o", Path.Combine(baseFolder, @"bin\test.wixlib"));
486
487 result.AssertSuccess();
488
489 using (var wixout = WixOutput.Read(Path.Combine(baseFolder, @"bin\test.wixlib")))
490 {
491 Assert.NotNull(wixout.GetDataStream("wix-ir.json"));
492
493 var text = wixout.GetData("wix-ir/test.txt");
494 Assert.Equal(@"This is a\test.txt.", text);
495
496 var text2 = wixout.GetData("wix-ir/test.txt-1");
497 Assert.Equal(@"This is b\test.txt.", text2);
498
499 var text3 = wixout.GetData("wix-ir/test.txt-2");
500 Assert.Equal(@"This is c\test.txt.", text3);
501 }
502 }
503 }
504
505 [Fact]
506 public void CanBuildWithIncludePath()
507 {
508 var folder = TestData.Get(@"TestData\IncludePath");
509 var bindpath = Path.Combine(folder, "data");
510
511 using (var fs = new DisposableFileSystem())
512 {
513 var baseFolder = fs.GetFolder();
514 var intermediateFolder = Path.Combine(baseFolder, "obj");
515
516 var result = WixRunner.Execute(
517 "build",
518 Path.Combine(folder, "Package.wxs"),
519 Path.Combine(folder, "PackageComponents.wxs"),
520 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
521 "-bindpath", bindpath,
522 "-intermediateFolder", intermediateFolder,
523 "-o", Path.Combine(baseFolder, @"bin\test.msi"),
524 "-i", bindpath);
525
526 result.AssertSuccess();
527
528 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.msi")));
529 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.wixpdb")));
530 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\PFiles\MsiPackage\test.txt")));
531
532 var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
533 var section = intermediate.Sections.Single();
534
535 var fileSymbol = section.Symbols.OfType<FileSymbol>().Single();
536 Assert.Equal(Path.Combine(folder, @"data\test.txt"), fileSymbol[FileSymbolFields.Source].AsPath().Path);
537 Assert.Equal(@"test.txt", fileSymbol[FileSymbolFields.Source].PreviousValue.AsPath().Path);
538 }
539 }
540
541 [Fact]
542 public void CanBuildWithAssembly()
543 {
544 var folder = TestData.Get(@"TestData\Assembly");
545
546 using (var fs = new DisposableFileSystem())
547 {
548 var baseFolder = fs.GetFolder();
549 var intermediateFolder = Path.Combine(baseFolder, "obj");
550
551 var result = WixRunner.Execute(new[]
552 {
553 "build",
554 Path.Combine(folder, "Package.wxs"),
555 Path.Combine(folder, "PackageComponents.wxs"),
556 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
557 "-bindpath", Path.Combine(folder, "data"),
558 "-intermediateFolder", intermediateFolder,
559 "-o", Path.Combine(baseFolder, @"bin\test.msi")
560 });
561
562 result.AssertSuccess();
563
564 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.msi")));
565 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.wixpdb")));
566 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\PFiles\AssemblyMsiPackage\candle.exe")));
567
568 var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
569 var section = intermediate.Sections.Single();
570
571 var fileSymbol = section.Symbols.OfType<FileSymbol>().Single();
572 Assert.Equal(Path.Combine(folder, @"data\candle.exe"), fileSymbol[FileSymbolFields.Source].AsPath().Path);
573 Assert.Equal(@"candle.exe", fileSymbol[FileSymbolFields.Source].PreviousValue.AsPath().Path);
574
575 var msiAssemblyNameSymbols = section.Symbols.OfType<MsiAssemblyNameSymbol>();
576 Assert.Equal(new[]
577 {
578 "culture",
579 "fileVersion",
580 "name",
581 "processorArchitecture",
582 "publicKeyToken",
583 "version"
584 }, msiAssemblyNameSymbols.OrderBy(a => a.Name).Select(a => a.Name).ToArray());
585
586 Assert.Equal(new[]
587 {
588 "neutral",
589 "3.11.11810.0",
590 "candle",
591 "x86",
592 "256B3414DFA97718",
593 "3.0.0.0"
594 }, msiAssemblyNameSymbols.OrderBy(a => a.Name).Select(a => a.Value).ToArray());
595 }
596 }
597
598 [Fact]
599 public void CanBuild64bit()
600 {
601 var folder = TestData.Get(@"TestData\SingleFile");
602
603 using (var fs = new DisposableFileSystem())
604 {
605 var baseFolder = fs.GetFolder();
606 var intermediateFolder = Path.Combine(baseFolder, "obj");
607
608 var result = WixRunner.Execute(new[]
609 {
610 "build",
611 Path.Combine(folder, "Package.wxs"),
612 Path.Combine(folder, "PackageComponents.wxs"),
613 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
614 "-bindpath", Path.Combine(folder, "data"),
615 "-intermediateFolder", intermediateFolder,
616 "-arch", "x64",
617 "-o", Path.Combine(baseFolder, @"bin\test.msi")
618 });
619
620 result.AssertSuccess();
621
622 var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
623 var section = intermediate.Sections.Single();
624
625 var platformSummary = section.Symbols.OfType<SummaryInformationSymbol>().Single(s => s.PropertyId == SummaryInformationType.PlatformAndLanguage);
626 Assert.Equal("x64;1033", platformSummary.Value);
627 }
628 }
629
630 [Fact]
631 public void CanBuildSharedComponent()
632 {
633 var folder = TestData.Get(@"TestData\SingleFile");
634
635 using (var fs = new DisposableFileSystem())
636 {
637 var baseFolder = fs.GetFolder();
638 var intermediateFolder = Path.Combine(baseFolder, "obj");
639
640 var result = WixRunner.Execute(new[]
641 {
642 "build",
643 Path.Combine(folder, "Package.wxs"),
644 Path.Combine(folder, "PackageComponents.wxs"),
645 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
646 "-bindpath", Path.Combine(folder, "data"),
647 "-intermediateFolder", intermediateFolder,
648 "-arch", "x64",
649 "-o", Path.Combine(baseFolder, @"bin\test.msi")
650 });
651
652 result.AssertSuccess();
653
654 var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
655 var section = intermediate.Sections.Single();
656
657 // Only one component is shared.
658 var sharedComponentSymbols = section.Symbols.OfType<ComponentSymbol>();
659 Assert.Equal(1, sharedComponentSymbols.Sum(t => t.Shared ? 1 : 0));
660
661 // And it is this one.
662 var sharedComponentSymbol = sharedComponentSymbols.Single(t => t.Id.Id == "Shared.dll");
663 Assert.True(sharedComponentSymbol.Shared);
664 }
665 }
666
667 [Fact]
668 public void CanBuildSetProperty()
669 {
670 var folder = TestData.Get(@"TestData\SetProperty");
671
672 using (var fs = new DisposableFileSystem())
673 {
674 var baseFolder = fs.GetFolder();
675 var intermediateFolder = Path.Combine(baseFolder, "obj");
676
677 var result = WixRunner.Execute(new[]
678 {
679 "build",
680 Path.Combine(folder, "Package.wxs"),
681 Path.Combine(folder, "PackageComponents.wxs"),
682 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
683 "-bindpath", Path.Combine(folder, "data"),
684 "-intermediateFolder", intermediateFolder,
685 "-o", Path.Combine(baseFolder, @"bin\test.msi")
686 });
687
688 result.AssertSuccess();
689
690 var output = WindowsInstallerData.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"), false);
691 var caRows = output.Tables["CustomAction"].Rows.Single();
692 Assert.Equal("SetINSTALLLOCATION", caRows.FieldAsString(0));
693 Assert.Equal("51", caRows.FieldAsString(1));
694 Assert.Equal("INSTALLLOCATION", caRows.FieldAsString(2));
695 Assert.Equal("[INSTALLFOLDER]", caRows.FieldAsString(3));
696 }
697 }
698
699 [Fact]
700 public void CanBuildVersionIndependentProgId()
701 {
702 var folder = TestData.Get(@"TestData\ProgId");
703
704 using (var fs = new DisposableFileSystem())
705 {
706 var baseFolder = fs.GetFolder();
707 var intermediateFolder = Path.Combine(baseFolder, "obj");
708
709 var result = WixRunner.Execute(new[]
710 {
711 "build",
712 Path.Combine(folder, "Package.wxs"),
713 Path.Combine(folder, "PackageComponents.wxs"),
714 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
715 "-bindpath", Path.Combine(folder, "data"),
716 "-intermediateFolder", intermediateFolder,
717 "-o", Path.Combine(baseFolder, @"bin\test.msi")
718 });
719
720 result.AssertSuccess();
721
722 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.msi")));
723 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.wixpdb")));
724 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\PFiles\MsiPackage\Foo.exe")));
725
726 var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
727 var section = intermediate.Sections.Single();
728
729 var progids = section.Symbols.OfType<ProgIdSymbol>().OrderBy(symbol => symbol.ProgId).ToList();
730 Assert.Equal(new[]
731 {
732 "Foo.File.hol",
733 "Foo.File.hol.15"
734 }, progids.Select(p => p.ProgId).ToArray());
735
736 Assert.Equal(new[]
737 {
738 "Foo.File.hol.15",
739 null
740 }, progids.Select(p => p.ParentProgIdRef).ToArray());
741 }
742 }
743
744 [Fact]
745 public void CanBuildInstanceTransform()
746 {
747 var folder = TestData.Get(@"TestData\InstanceTransform");
748
749 using (var fs = new DisposableFileSystem())
750 {
751 var intermediateFolder = fs.GetFolder();
752
753 var result = WixRunner.Execute(new[]
754 {
755 "build",
756 Path.Combine(folder, "Package.wxs"),
757 Path.Combine(folder, "PackageComponents.wxs"),
758 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
759 "-bindpath", Path.Combine(folder, "data"),
760 "-intermediateFolder", intermediateFolder,
761 "-o", Path.Combine(intermediateFolder, @"bin\test.msi")
762 });
763
764 result.AssertSuccess();
765
766 var output = WindowsInstallerData.Load(Path.Combine(intermediateFolder, @"bin\test.wixpdb"), false);
767 var substorage = output.SubStorages.Single();
768 Assert.Equal("I1", substorage.Name);
769
770 var data = substorage.Data;
771 Assert.Equal(new[]
772 {
773 "_SummaryInformation",
774 "Property",
775 "Upgrade"
776 }, data.Tables.Select(t => t.Name).ToArray());
777
778 Assert.Equal(new[]
779 {
780 "INSTANCEPROPERTY\tI1",
781 "ProductName\tMsiPackage (Instance 1)",
782 }, JoinRows(data.Tables["Property"]));
783
784 Assert.Equal(new[]
785 {
786 "{047730A5-30FE-4A62-A520-DA9381B8226A}\t\t1.0.0.0\t1033\t1\t\tWIX_UPGRADE_DETECTED",
787 "{047730A5-30FE-4A62-A520-DA9381B8226A}\t\t1.0.0.0\t1033\t1\t0\t0",
788 "{047730A5-30FE-4A62-A520-DA9381B8226A}\t1.0.0.0\t\t1033\t2\t\tWIX_DOWNGRADE_DETECTED",
789 "{047730A5-30FE-4A62-A520-DA9381B8226A}\t1.0.0.0\t\t1033\t2\t0\t0"
790 }, JoinRows(data.Tables["Upgrade"]));
791 }
792 }
793
794 [Fact(Skip = "Test demonstrates failure")]
795 public void FailsBuildAtLinkTimeForMissingEnsureTable()
796 {
797 var folder = TestData.Get(@"TestData");
798 var extensionPath = Path.GetFullPath(new Uri(typeof(ExampleExtensionFactory).Assembly.CodeBase).LocalPath);
799
800 using (var fs = new DisposableFileSystem())
801 {
802 var baseFolder = fs.GetFolder();
803 var intermediateFolder = Path.Combine(baseFolder, "obj");
804 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
805
806 var result = WixRunner.Execute(new[]
807 {
808 "build",
809 Path.Combine(folder, "BadEnsureTable", "BadEnsureTable.wxs"),
810 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
811 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
812 "-ext", extensionPath,
813 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
814 "-intermediateFolder", intermediateFolder,
815 "-o", msiPath
816 });
817 Assert.Collection(result.Messages,
818 first =>
819 {
820 Assert.Equal(MessageLevel.Error, first.Level);
821 Assert.Equal("The identifier 'WixCustomTable:TableDefinitionNotExposedByExtension' could not be found. Ensure you have typed the reference correctly and that all the necessary inputs are provided to the linker.", first.ToString());
822 });
823
824 Assert.False(File.Exists(msiPath));
825 }
826 }
827
828 private static string[] JoinRows(Table table)
829 {
830 return table.Rows.Select(r => JoinFields(r.Fields)).ToArray();
831
832 string JoinFields(Field[] fields)
833 {
834 return String.Join('\t', fields.Select(f => f.ToString()));
835 }
836 }
837 }
838}
diff --git a/src/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs b/src/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs
deleted file mode 100644
index 71edddc6..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs
+++ /dev/null
@@ -1,1040 +0,0 @@
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 WixBuildTools.TestSupport;
10 using WixToolset.Core.TestPackage;
11 using WixToolset.Data;
12 using WixToolset.Data.Symbols;
13 using WixToolset.Data.WindowsInstaller;
14 using Xunit;
15
16 public class MsiQueryFixture
17 {
18 [Fact]
19 public void PopulatesAppIdTableWhenAdvertised()
20 {
21 var folder = TestData.Get(@"TestData");
22
23 using (var fs = new DisposableFileSystem())
24 {
25 var baseFolder = fs.GetFolder();
26 var intermediateFolder = Path.Combine(baseFolder, "obj");
27 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
28
29 var result = WixRunner.Execute(new[]
30 {
31 "build",
32 Path.Combine(folder, "AppId", "Advertised.wxs"),
33 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
34 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
35 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
36 "-intermediateFolder", intermediateFolder,
37 "-o", msiPath
38 });
39
40 result.AssertSuccess();
41
42 Assert.True(File.Exists(msiPath));
43 var results = Query.QueryDatabase(msiPath, new[] { "AppId" });
44 WixAssert.CompareLineByLine(new[]
45 {
46 "AppId:{D6040299-B15C-4C94-AE26-0C9B60D14C35}\t\t\t\t\t\t",
47 }, results);
48 }
49 }
50
51 [Fact]
52 public void PopulatesAppSearchTablesFromComponentSearch()
53 {
54 var folder = TestData.Get(@"TestData");
55
56 using (var fs = new DisposableFileSystem())
57 {
58 var baseFolder = fs.GetFolder();
59 var intermediateFolder = Path.Combine(baseFolder, "obj");
60 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
61
62 var result = WixRunner.Execute(new[]
63 {
64 "build",
65 Path.Combine(folder, "AppSearch", "ComponentSearch.wxs"),
66 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
67 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
68 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
69 "-intermediateFolder", intermediateFolder,
70 "-o", msiPath
71 });
72
73 result.AssertSuccess();
74
75 Assert.True(File.Exists(msiPath));
76 var results = Query.QueryDatabase(msiPath, new[] { "AppSearch", "CompLocator" });
77 WixAssert.CompareLineByLine(new[]
78 {
79 "AppSearch:SAMPLECOMPFOUND\tSampleCompSearch",
80 "CompLocator:SampleCompSearch\t{4D9A0D20-D0CC-40DE-B580-EAD38B985217}\t1",
81 }, results);
82 }
83 }
84
85 [Fact]
86 public void PopulatesAppSearchTablesFromDirectorySearch()
87 {
88 var folder = TestData.Get(@"TestData");
89
90 using (var fs = new DisposableFileSystem())
91 {
92 var baseFolder = fs.GetFolder();
93 var intermediateFolder = Path.Combine(baseFolder, "obj");
94 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
95
96 var result = WixRunner.Execute(new[]
97 {
98 "build",
99 Path.Combine(folder, "AppSearch", "DirectorySearch.wxs"),
100 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
101 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
102 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
103 "-intermediateFolder", intermediateFolder,
104 "-o", msiPath
105 });
106
107 result.AssertSuccess();
108
109 Assert.True(File.Exists(msiPath));
110 var results = Query.QueryDatabase(msiPath, new[] { "AppSearch", "DrLocator" });
111 WixAssert.CompareLineByLine(new[]
112 {
113 "AppSearch:SAMPLEDIRFOUND\tSampleDirSearch",
114 "DrLocator:SampleDirSearch\t\tC:\\SampleDir\t",
115 }, results);
116 }
117 }
118
119 [Fact]
120 public void PopulatesAppSearchTablesFromFileSearch()
121 {
122 var folder = TestData.Get(@"TestData");
123
124 using (var fs = new DisposableFileSystem())
125 {
126 var baseFolder = fs.GetFolder();
127 var intermediateFolder = Path.Combine(baseFolder, "obj");
128 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
129
130 var result = WixRunner.Execute(new[]
131 {
132 "build",
133 Path.Combine(folder, "AppSearch", "FileSearch.wxs"),
134 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
135 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
136 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
137 "-intermediateFolder", intermediateFolder,
138 "-o", msiPath
139 });
140
141 result.AssertSuccess();
142
143 Assert.True(File.Exists(msiPath));
144 var results = Query.QueryDatabase(msiPath, new[] { "AppSearch", "DrLocator", "IniLocator" });
145 WixAssert.CompareLineByLine(new[]
146 {
147 "AppSearch:SAMPLEFILEFOUND\tSampleFileSearch",
148 "DrLocator:SampleFileSearch\tSampleIniFileSearch\t\t",
149 "IniLocator:SampleFileSearch\tsample.fil\tMySection\tMyKey\t\t1",
150 }, results);
151 }
152 }
153
154 [Fact]
155 public void PopulatesAppSearchTablesFromRegistrySearch()
156 {
157 var folder = TestData.Get(@"TestData");
158
159 using (var fs = new DisposableFileSystem())
160 {
161 var baseFolder = fs.GetFolder();
162 var intermediateFolder = Path.Combine(baseFolder, "obj");
163 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
164
165 var result = WixRunner.Execute(new[]
166 {
167 "build",
168 Path.Combine(folder, "AppSearch", "RegistrySearch.wxs"),
169 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
170 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
171 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
172 "-intermediateFolder", intermediateFolder,
173 "-o", msiPath
174 });
175
176 result.AssertSuccess();
177
178 Assert.True(File.Exists(msiPath));
179 var results = Query.QueryDatabase(msiPath, new[] { "AppSearch", "RegLocator" });
180 WixAssert.CompareLineByLine(new[]
181 {
182 "AppSearch:SAMPLEREGFOUND\tSampleRegSearch",
183 "RegLocator:SampleRegSearch\t2\tSampleReg\t\t2",
184 }, results);
185 }
186 }
187
188 [Fact]
189 public void PopulatesAppSearchTablesFromRegistrySearch64()
190 {
191 var folder = TestData.Get(@"TestData");
192
193 using (var fs = new DisposableFileSystem())
194 {
195 var baseFolder = fs.GetFolder();
196 var intermediateFolder = Path.Combine(baseFolder, "obj");
197 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
198
199 var result = WixRunner.Execute(new[]
200 {
201 "build",
202 Path.Combine(folder, "AppSearch", "RegistrySearch64.wxs"),
203 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
204 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
205 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
206 "-intermediateFolder", intermediateFolder,
207 "-o", msiPath
208 });
209
210 result.AssertSuccess();
211
212 Assert.True(File.Exists(msiPath));
213 var results = Query.QueryDatabase(msiPath, new[] { "AppSearch", "RegLocator" });
214 WixAssert.CompareLineByLine(new[]
215 {
216 "AppSearch:SAMPLEREGFOUND\tSampleRegSearch",
217 "RegLocator:SampleRegSearch\t2\tSampleReg\t\t18",
218 }, results);
219 }
220 }
221
222 [Fact]
223 public void PopulatesClassTablesWhenIconIndexIsZero()
224 {
225 var folder = TestData.Get(@"TestData");
226
227 using (var fs = new DisposableFileSystem())
228 {
229 var baseFolder = fs.GetFolder();
230 var intermediateFolder = Path.Combine(baseFolder, "obj");
231 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
232
233 var result = WixRunner.Execute(new[]
234 {
235 "build",
236 Path.Combine(folder, "Class", "IconIndex0.wxs"),
237 Path.Combine(folder, "Icon", "SampleIcon.wxs"),
238 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
239 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
240 "-bindpath", Path.Combine(folder, ".Data"),
241 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
242 "-intermediateFolder", intermediateFolder,
243 "-o", msiPath
244 });
245
246 result.AssertSuccess();
247
248 Assert.True(File.Exists(msiPath));
249 var results = Query.QueryDatabase(msiPath, new[] { "Class" });
250 WixAssert.CompareLineByLine(new[]
251 {
252 "Class:{3FAED4CC-C473-4B8A-BE8B-303871377A4A}\tLocalServer32\tClassComp\t\tFakeClass3FAE\t\t\tSampleIcon\t0\t\t\tProductFeature\t",
253 }, results);
254 }
255 }
256
257 [Fact]
258 public void PopulatesClassTablesWhenProgIdIsNestedUnderAdvertisedClass()
259 {
260 var folder = TestData.Get(@"TestData");
261
262 using (var fs = new DisposableFileSystem())
263 {
264 var baseFolder = fs.GetFolder();
265 var intermediateFolder = Path.Combine(baseFolder, "obj");
266 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
267
268 var result = WixRunner.Execute(new[]
269 {
270 "build",
271 Path.Combine(folder, "ProgId", "NestedUnderClass.wxs"),
272 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
273 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
274 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
275 "-intermediateFolder", intermediateFolder,
276 "-o", msiPath
277 });
278
279 result.AssertSuccess();
280
281 Assert.True(File.Exists(msiPath));
282 var results = Query.QueryDatabase(msiPath, new[] { "Class", "ProgId", "Registry" });
283 WixAssert.CompareLineByLine(new[]
284 {
285 "Class:{F12A6F69-117F-471F-AE73-F8E74218F498}\tLocalServer32\tProgIdComp\t73E7DF7E-EFAC-4E11-90E2-6EBAEB8DE58D\tFakeClassF12A\t\t\t\t\t\t\tProductFeature\t",
286 "ProgId:73E7DF7E-EFAC-4E11-90E2-6EBAEB8DE58D\t\t{F12A6F69-117F-471F-AE73-F8E74218F498}\tFakeClassF12A\t\t",
287 "Registry:regUIIK326nDZpkWHuexeF58EikQvA\t0\t73E7DF7E-EFAC-4E11-90E2-6EBAEB8DE58D\tNoOpen\tNoOpen73E7\tProgIdComp",
288 "Registry:regvrhMurMp98anbQJkpgA8yJCefdM\t0\tCLSID\\{F12A6F69-117F-471F-AE73-F8E74218F498}\\Version\t\t0.0.0.1\tProgIdComp",
289 "Registry:regY1F4E2lvu_Up6gV6c3jeN5ukn8s\t0\tCLSID\\{F12A6F69-117F-471F-AE73-F8E74218F498}\\LocalServer32\tThreadingModel\tApartment\tProgIdComp",
290 }, results);
291 }
292 }
293
294 [Fact]
295 public void PopulatesControlTables()
296 {
297 var folder = TestData.Get(@"TestData");
298
299 using (var fs = new DisposableFileSystem())
300 {
301 var baseFolder = fs.GetFolder();
302 var intermediateFolder = Path.Combine(baseFolder, "obj");
303 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
304
305 var result = WixRunner.Execute(new[]
306 {
307 "build",
308 Path.Combine(folder, "DialogsInInstallUISequence", "PackageComponents.wxs"),
309 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
310 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
311 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
312 "-intermediateFolder", intermediateFolder,
313 "-o", msiPath,
314 });
315
316 result.AssertSuccess();
317
318 Assert.True(File.Exists(msiPath));
319
320 var results = Query.QueryDatabase(msiPath, new[] { "CheckBox", "Control", "ControlCondition", "InstallUISequence" });
321 WixAssert.CompareLineByLine(new[]
322 {
323 "CheckBox:WIXUI_EXITDIALOGOPTIONALCHECKBOX\t1",
324 "Control:FirstDialog\tHeader\tText\t0\t13\t90\t13\t3\t\tFirstDialogHeader\tTitle\t",
325 "Control:FirstDialog\tTitle\tText\t0\t0\t90\t13\t3\t\tFirstDialogTitle\tHeader\t",
326 "Control:SecondDialog\tOptionalCheckBox\tCheckBox\t0\t13\t100\t40\t2\tWIXUI_EXITDIALOGOPTIONALCHECKBOX\t[WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT]\tTitle\tOptional checkbox|Check this box for fun",
327 "Control:SecondDialog\tTitle\tText\t0\t0\t90\t13\t3\t\tSecondDialogTitle\tOptionalCheckBox\t",
328 "ControlCondition:FirstDialog\tHeader\tDisable\tInstalled",
329 "ControlCondition:FirstDialog\tHeader\tHide\tInstalled",
330 "ControlCondition:SecondDialog\tOptionalCheckBox\tShow\tWIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT AND NOT Installed",
331 "InstallUISequence:CostFinalize\t\t1000",
332 "InstallUISequence:CostInitialize\t\t800",
333 "InstallUISequence:ExecuteAction\t\t1300",
334 "InstallUISequence:FileCost\t\t900",
335 "InstallUISequence:FindRelatedProducts\t\t25",
336 "InstallUISequence:FirstDialog\tInstalled AND PATCH\t1298",
337 "InstallUISequence:LaunchConditions\t\t100",
338 "InstallUISequence:MigrateFeatureStates\t\t1200",
339 "InstallUISequence:SecondDialog\tNOT Installed\t1299",
340 "InstallUISequence:ValidateProductID\t\t700",
341 }, results);
342 }
343 }
344
345 [Fact]
346 public void PopulatesCreateFolderTableForNullKeypathComponents()
347 {
348 var folder = TestData.Get(@"TestData\Components");
349
350 using (var fs = new DisposableFileSystem())
351 {
352 var baseFolder = fs.GetFolder();
353 var intermediateFolder = Path.Combine(baseFolder, "obj");
354 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
355
356 var result = WixRunner.Execute(new[]
357 {
358 "build",
359 Path.Combine(folder, "Package.wxs"),
360 Path.Combine(folder, "PackageComponents.wxs"),
361 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
362 "-bindpath", Path.Combine(folder, "data"),
363 "-intermediateFolder", intermediateFolder,
364 "-o", msiPath
365 });
366
367 result.AssertSuccess();
368
369 Assert.True(File.Exists(msiPath));
370 var results = Query.QueryDatabase(msiPath, new[] { "CreateFolder" });
371 WixAssert.CompareLineByLine(new[]
372 {
373 "CreateFolder:INSTALLFOLDER\tNullKeypathComponent",
374 }, results);
375 }
376 }
377
378 [Fact]
379 public void PopulatesDirectoryTableWithValidDefaultDir()
380 {
381 var folder = TestData.Get(@"TestData");
382
383 using (var fs = new DisposableFileSystem())
384 {
385 var baseFolder = fs.GetFolder();
386 var intermediateFolder = Path.Combine(baseFolder, "obj");
387 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
388
389 var result = WixRunner.Execute(new[]
390 {
391 "build",
392 "-sw1031", // this is expected for this test
393 Path.Combine(folder, "DefaultDir", "DefaultDir.wxs"),
394 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
395 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
396 "-intermediateFolder", intermediateFolder,
397 "-o", msiPath
398 });
399
400 result.AssertSuccess();
401
402 Assert.True(File.Exists(msiPath));
403 var results = Query.QueryDatabase(msiPath, new[] { "Directory" });
404 WixAssert.CompareLineByLine(new[]
405 {
406 "Directory:DUPLICATENAMEANDSHORTNAME\tINSTALLFOLDER\tduplicat",
407 "Directory:Folder1\tINSTALLFOLDER\tFolder.1",
408 "Directory:Folder12\tINSTALLFOLDER\tFolder.12",
409 "Directory:Folder123\tINSTALLFOLDER\tFolder.123",
410 "Directory:Folder1234\tINSTALLFOLDER\tyakwclwy|Folder.1234",
411 "Directory:INSTALLFOLDER\tProgramFiles6432Folder\t1egc1laj|MsiPackage",
412 "Directory:NAMEANDSHORTNAME\tINSTALLFOLDER\tSHORTNAM|NameAndShortName",
413 "Directory:NAMEANDSHORTSOURCENAME\tINSTALLFOLDER\tNAMEASSN|NameAndShortSourceName",
414 "Directory:NAMEWITHSHORTVALUE\tINSTALLFOLDER\tSHORTVAL",
415 "Directory:ProgramFiles6432Folder\tProgramFilesFolder\t.",
416 "Directory:ProgramFilesFolder\tTARGETDIR\tPFiles",
417 "Directory:SHORTNAMEANDLONGSOURCENAME\tINSTALLFOLDER\tSHNALSNM:6ukthv5q|ShortNameAndLongSourceName",
418 "Directory:SHORTNAMEONLY\tINSTALLFOLDER\tSHORTONL",
419 "Directory:SOURCENAME\tINSTALLFOLDER\ts2s5bq-i|NameAndSourceName:dhnqygng|SourceNameWithName",
420 "Directory:SOURCENAMESONLY\tINSTALLFOLDER\t.:SRCNAMON|SourceNameOnly",
421 "Directory:SOURCENAMEWITHSHORTVALUE\tINSTALLFOLDER\t.:SRTSRCVL",
422 "Directory:TARGETDIR\t\tSourceDir",
423 }, results);
424 }
425 }
426
427 [Fact]
428 public void PopulatesEnvironmentTable()
429 {
430 var folder = TestData.Get(@"TestData");
431
432 using (var fs = new DisposableFileSystem())
433 {
434 var baseFolder = fs.GetFolder();
435 var intermediateFolder = Path.Combine(baseFolder, "obj");
436 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
437
438 var result = WixRunner.Execute(new[]
439 {
440 "build",
441 Path.Combine(folder, "Environment", "Environment.wxs"),
442 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
443 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
444 "-intermediateFolder", intermediateFolder,
445 "-o", msiPath
446 });
447
448 result.AssertSuccess();
449
450 Assert.True(File.Exists(msiPath));
451 var results = Query.QueryDatabase(msiPath, new[] { "Environment" });
452 WixAssert.CompareLineByLine(new[]
453 {
454 "Environment:PATH\t=-*PATH\t[INSTALLFOLDER]; ;[~]\tWixEnvironmentTest",
455 "Environment:WixEnvironmentTest1\t=-WixEnvTest1\t\tWixEnvironmentTest",
456 "Environment:WixEnvironmentTest2\t+-WixEnvTest1\t\tWixEnvironmentTest",
457 "Environment:WixEnvironmentTest3\t!-WixEnvTest1\t\tWixEnvironmentTest",
458 "Environment:WixEnvironmentTest4\t=-*WIX\t[INSTALLFOLDER]\tWixEnvironmentTest",
459 }, results);
460 }
461 }
462
463 [Fact(Skip = "Test demonstrates failure")]
464 public void PopulatesExampleTableBecauseOfEnsureTable()
465 {
466 var folder = TestData.Get(@"TestData");
467 var extensionPath = Path.GetFullPath(new Uri(typeof(ExampleExtensionFactory).Assembly.CodeBase).LocalPath);
468
469 using (var fs = new DisposableFileSystem())
470 {
471 var baseFolder = fs.GetFolder();
472 var intermediateFolder = Path.Combine(baseFolder, "obj");
473 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
474
475 var result = WixRunner.Execute(new[]
476 {
477 "build",
478 Path.Combine(folder, "EnsureTable", "EnsureTable.wxs"),
479 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
480 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
481 "-ext", extensionPath,
482 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
483 "-intermediateFolder", intermediateFolder,
484 "-o", msiPath
485 });
486
487 result.AssertSuccess();
488
489 Assert.True(File.Exists(msiPath));
490 var results = Query.QueryDatabaseByTable(msiPath, new[] { "Wix4Example" });
491 Assert.Empty(results["Wix4Example"]);
492 }
493 }
494
495 [Fact]
496 public void PopulatesFeatureTableWithParent()
497 {
498 var folder = TestData.Get(@"TestData");
499
500 using (var fs = new DisposableFileSystem())
501 {
502 var baseFolder = fs.GetFolder();
503 var intermediateFolder = Path.Combine(baseFolder, "obj");
504 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
505
506 var result = WixRunner.Execute(new[]
507 {
508 "build",
509 Path.Combine(folder, "FeatureGroup", "FeatureGroup.wxs"),
510 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
511 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
512 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
513 "-intermediateFolder", intermediateFolder,
514 "-o", msiPath
515 });
516
517 result.AssertSuccess();
518
519 Assert.True(File.Exists(msiPath));
520 var results = Query.QueryDatabase(msiPath, new[] { "Feature" });
521 WixAssert.CompareLineByLine(new[]
522 {
523 "Feature:ChildFeature\tParentFeature\tChildFeatureTitle\t\t2\t1\t\t0",
524 "Feature:ParentFeature\t\tParentFeatureTitle\t\t2\t1\t\t0",
525 "Feature:ProductFeature\t\tMsiPackageTitle\t\t2\t1\t\t0",
526 }, results);
527 }
528 }
529
530 [Fact]
531 public void PopulatesFontTableFromFontTitle()
532 {
533 var folder = TestData.Get(@"TestData");
534
535 using (var fs = new DisposableFileSystem())
536 {
537 var baseFolder = fs.GetFolder();
538 var intermediateFolder = Path.Combine(baseFolder, "obj");
539 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
540
541 var result = WixRunner.Execute(new[]
542 {
543 "build",
544 Path.Combine(folder, "Font", "FontTitle.wxs"),
545 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
546 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
547 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
548 "-intermediateFolder", intermediateFolder,
549 "-o", msiPath
550 });
551
552 result.AssertSuccess();
553
554 Assert.True(File.Exists(msiPath));
555 var results = Query.QueryDatabase(msiPath, new[] { "Font" });
556 WixAssert.CompareLineByLine(new[]
557 {
558 "Font:test.txt\tFakeFont",
559 }, results);
560 }
561 }
562
563 [Fact]
564 public void PopulatesFontTableFromTrueType()
565 {
566 var folder = TestData.Get(@"TestData");
567
568 using (var fs = new DisposableFileSystem())
569 {
570 var baseFolder = fs.GetFolder();
571 var intermediateFolder = Path.Combine(baseFolder, "obj");
572 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
573
574 var result = WixRunner.Execute(new[]
575 {
576 "build",
577 Path.Combine(folder, "Font", "TrueType.wxs"),
578 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
579 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
580 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
581 "-intermediateFolder", intermediateFolder,
582 "-o", msiPath
583 });
584
585 result.AssertSuccess();
586
587 Assert.True(File.Exists(msiPath));
588 var results = Query.QueryDatabase(msiPath, new[] { "Font" });
589 WixAssert.CompareLineByLine(new[]
590 {
591 "Font:TrueTypeFontFile\t",
592 }, results);
593 }
594 }
595
596 [Fact]
597 public void PopulatesInstallExecuteSequenceTable()
598 {
599 var folder = TestData.Get(@"TestData");
600
601 using (var fs = new DisposableFileSystem())
602 {
603 var baseFolder = fs.GetFolder();
604 var intermediateFolder = Path.Combine(baseFolder, "obj");
605 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
606
607 var result = WixRunner.Execute(new[]
608 {
609 "build",
610 Path.Combine(folder, "Upgrade", "DetectOnly.wxs"),
611 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
612 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
613 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
614 "-intermediateFolder", intermediateFolder,
615 "-o", msiPath
616 });
617
618 result.AssertSuccess();
619
620 Assert.True(File.Exists(msiPath));
621 var results = Query.QueryDatabase(msiPath, new[] { "InstallExecuteSequence" });
622 WixAssert.CompareLineByLine(new[]
623 {
624 "InstallExecuteSequence:CostFinalize\t\t1000",
625 "InstallExecuteSequence:CostInitialize\t\t800",
626 "InstallExecuteSequence:CreateFolders\t\t3700",
627 "InstallExecuteSequence:FileCost\t\t900",
628 "InstallExecuteSequence:FindRelatedProducts\t\t25",
629 "InstallExecuteSequence:InstallFiles\t\t4000",
630 "InstallExecuteSequence:InstallFinalize\t\t6600",
631 "InstallExecuteSequence:InstallInitialize\t\t1500",
632 "InstallExecuteSequence:InstallValidate\t\t1400",
633 "InstallExecuteSequence:LaunchConditions\t\t100",
634 "InstallExecuteSequence:MigrateFeatureStates\t\t1200",
635 "InstallExecuteSequence:ProcessComponents\t\t1600",
636 "InstallExecuteSequence:PublishFeatures\t\t6300",
637 "InstallExecuteSequence:PublishProduct\t\t6400",
638 "InstallExecuteSequence:RegisterProduct\t\t6100",
639 "InstallExecuteSequence:RegisterUser\t\t6000",
640 "InstallExecuteSequence:RemoveExistingProducts\t\t1401",
641 "InstallExecuteSequence:RemoveFiles\t\t3500",
642 "InstallExecuteSequence:RemoveFolders\t\t3600",
643 "InstallExecuteSequence:UnpublishFeatures\t\t1800",
644 "InstallExecuteSequence:ValidateProductID\t\t700",
645 }, results);
646 }
647 }
648
649 [Fact]
650 public void PopulatesLockPermissionsTableWithEmptyPermissions()
651 {
652 var folder = TestData.Get(@"TestData");
653
654 using (var fs = new DisposableFileSystem())
655 {
656 var baseFolder = fs.GetFolder();
657 var intermediateFolder = Path.Combine(baseFolder, "obj");
658 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
659
660 var result = WixRunner.Execute(new[]
661 {
662 "build",
663 Path.Combine(folder, "LockPermissions", "EmptyPermissions.wxs"),
664 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
665 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
666 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
667 "-intermediateFolder", intermediateFolder,
668 "-o", msiPath
669 });
670
671 result.AssertSuccess();
672
673 Assert.True(File.Exists(msiPath));
674 var results = Query.QueryDatabase(msiPath, new[] { "LockPermissions" });
675 WixAssert.CompareLineByLine(new[]
676 {
677 "LockPermissions:INSTALLFOLDER\tCreateFolder\t\tAdministrator\t0",
678 }, results);
679 }
680 }
681
682 [Fact]
683 public void PopulatesMsiAssemblyTables()
684 {
685 var folder = TestData.Get(@"TestData");
686
687 using (var fs = new DisposableFileSystem())
688 {
689 var baseFolder = fs.GetFolder();
690 var intermediateFolder = Path.Combine(baseFolder, "obj");
691 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
692
693 var result = WixRunner.Execute(new[]
694 {
695 "build",
696 Path.Combine(folder, "Assembly", "Win32Assembly.wxs"),
697 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
698 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
699 "-bindpath", Path.Combine(folder, "Assembly", "data"),
700 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
701 "-intermediateFolder", intermediateFolder,
702 "-o", msiPath
703 });
704
705 result.AssertSuccess();
706
707 Assert.True(File.Exists(msiPath));
708 var results = Query.QueryDatabase(msiPath, new[] { "MsiAssembly", "MsiAssemblyName" });
709 WixAssert.CompareLineByLine(new[]
710 {
711 "MsiAssembly:test.txt\tProductFeature\ttest.dll.manifest\t\t1",
712 "MsiAssemblyName:test.txt\tname\tMyApplication.app",
713 "MsiAssemblyName:test.txt\tversion\t1.0.0.0",
714 }, results);
715 }
716 }
717
718 [Fact]
719 public void PopulatesReserveCostTable()
720 {
721 var folder = TestData.Get(@"TestData");
722
723 using (var fs = new DisposableFileSystem())
724 {
725 var baseFolder = fs.GetFolder();
726 var intermediateFolder = Path.Combine(baseFolder, "obj");
727 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
728
729 var result = WixRunner.Execute(new[]
730 {
731 "build",
732 Path.Combine(folder, "ReserveCost", "ReserveCost.wxs"),
733 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
734 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
735 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
736 "-intermediateFolder", intermediateFolder,
737 "-o", msiPath
738 });
739
740 result.AssertSuccess();
741
742 Assert.True(File.Exists(msiPath));
743 var results = Query.QueryDatabase(msiPath, new[] { "ReserveCost" });
744 WixAssert.CompareLineByLine(new[]
745 {
746 "ReserveCost:TestCost\tReserveCostComp\tINSTALLFOLDER\t100\t200",
747 }, results);
748 }
749 }
750
751 [Fact]
752 public void PopulatesServiceTables()
753 {
754 var folder = TestData.Get(@"TestData");
755
756 using (var fs = new DisposableFileSystem())
757 {
758 var baseFolder = fs.GetFolder();
759 var intermediateFolder = Path.Combine(baseFolder, "obj");
760 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
761
762 var result = WixRunner.Execute(new[]
763 {
764 "build",
765 Path.Combine(folder, "ServiceInstall", "OwnProcess.wxs"),
766 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
767 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
768 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
769 "-intermediateFolder", intermediateFolder,
770 "-o", msiPath
771 });
772
773 result.AssertSuccess();
774
775 Assert.True(File.Exists(msiPath));
776 var results = Query.QueryDatabase(msiPath, new[] { "ServiceInstall", "ServiceControl" });
777 WixAssert.CompareLineByLine(new[]
778 {
779 "ServiceControl:SampleService\tSampleService\t161\t\t1\ttest.txt",
780 "ServiceInstall:SampleService\tSampleService\t\t16\t4\t0\t\t\t\t\t\ttest.txt\t",
781 }, results);
782 }
783 }
784
785 [Fact]
786 public void PopulatesTextStyleTableWhenColorIsNull()
787 {
788 var folder = TestData.Get(@"TestData");
789
790 using (var fs = new DisposableFileSystem())
791 {
792 var baseFolder = fs.GetFolder();
793 var intermediateFolder = Path.Combine(baseFolder, "obj");
794 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
795
796 var result = WixRunner.Execute(new[]
797 {
798 "build",
799 Path.Combine(folder, "TextStyle", "ColorNull.wxs"),
800 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
801 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
802 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
803 "-intermediateFolder", intermediateFolder,
804 "-o", msiPath
805 });
806
807 result.AssertSuccess();
808
809 Assert.True(File.Exists(msiPath));
810 var results = Query.QueryDatabase(msiPath, new[] { "TextStyle" });
811 WixAssert.CompareLineByLine(new[]
812 {
813 "TextStyle:FirstTextStyle\tArial\t2\t\t",
814 }, results);
815 }
816 }
817
818 [Fact]
819 public void PopulatesTextStyleTableWhenSizeIsLocalized()
820 {
821 var folder = TestData.Get(@"TestData");
822
823 using (var fs = new DisposableFileSystem())
824 {
825 var baseFolder = fs.GetFolder();
826 var intermediateFolder = Path.Combine(baseFolder, "obj");
827 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
828
829 var result = WixRunner.Execute(new[]
830 {
831 "build",
832 Path.Combine(folder, "TextStyle", "SizeLocalized.wxs"),
833 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
834 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
835 "-loc", Path.Combine(folder, "TextStyle", "SizeLocalized.en-us.wxl"),
836 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
837 "-intermediateFolder", intermediateFolder,
838 "-o", msiPath,
839 });
840
841 result.AssertSuccess();
842
843 Assert.True(File.Exists(msiPath));
844 var results = Query.QueryDatabase(msiPath, new[] { "TextStyle" });
845 WixAssert.CompareLineByLine(new[]
846 {
847 "TextStyle:CustomFont\tTahoma\t8\t\t",
848 }, results);
849 }
850 }
851
852 [Fact]
853 public void PopulatesTypeLibTableWhenLanguageIsZero()
854 {
855 var folder = TestData.Get(@"TestData");
856
857 using (var fs = new DisposableFileSystem())
858 {
859 var baseFolder = fs.GetFolder();
860 var intermediateFolder = Path.Combine(baseFolder, "obj");
861 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
862
863 var result = WixRunner.Execute(new[]
864 {
865 "build",
866 Path.Combine(folder, "TypeLib", "Language0.wxs"),
867 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
868 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
869 "-intermediateFolder", intermediateFolder,
870 "-o", msiPath
871 });
872
873 result.AssertSuccess();
874
875 Assert.True(File.Exists(msiPath));
876 var results = Query.QueryDatabase(msiPath, new[] { "TypeLib" });
877 WixAssert.CompareLineByLine(new[]
878 {
879 "TypeLib:{765BE8EE-BD7F-491E-90D2-C5A972462B50}\t0\tTypeLibComp\t\t\t\tProductFeature\t",
880 }, results);
881 }
882 }
883
884 [Fact]
885 public void PopulatesUpgradeTableFromManualUpgrade()
886 {
887 var folder = TestData.Get(@"TestData\ManualUpgrade");
888
889 using (var fs = new DisposableFileSystem())
890 {
891 var intermediateFolder = fs.GetFolder();
892 var msiPath = Path.Combine(intermediateFolder, @"bin\test.msi");
893
894 var result = WixRunner.Execute(new[]
895 {
896 "build",
897 Path.Combine(folder, "Package.wxs"),
898 Path.Combine(folder, "PackageComponents.wxs"),
899 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
900 "-bindpath", Path.Combine(folder, "data"),
901 "-intermediateFolder", intermediateFolder,
902 "-o", msiPath
903 }, out var messages);
904
905 Assert.Equal(0, result);
906
907 Assert.True(File.Exists(msiPath));
908 var results = Query.QueryDatabase(msiPath, new[] { "Upgrade" });
909 WixAssert.CompareLineByLine(new[]
910 {
911 "Upgrade:{01120000-00E0-0000-0000-0000000FF1CE}\t12.0.0\t13.0.0\t\t260\t\tBLAHBLAHBLAH",
912 }, results);
913 }
914 }
915
916 [Fact]
917 public void PopulatesUpgradeTableFromDetectOnlyUpgrade()
918 {
919 var folder = TestData.Get(@"TestData");
920
921 using (var fs = new DisposableFileSystem())
922 {
923 var baseFolder = fs.GetFolder();
924 var intermediateFolder = Path.Combine(baseFolder, "obj");
925 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
926
927 var result = WixRunner.Execute(new[]
928 {
929 "build",
930 Path.Combine(folder, "Upgrade", "DetectOnly.wxs"),
931 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
932 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
933 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
934 "-intermediateFolder", intermediateFolder,
935 "-o", msiPath
936 });
937
938 result.AssertSuccess();
939
940 Assert.True(File.Exists(msiPath));
941 var results = Query.QueryDatabase(msiPath, new[] { "Upgrade" });
942 WixAssert.CompareLineByLine(new[]
943 {
944 "Upgrade:{12E4699F-E774-4D05-8A01-5BDD41BBA127}\t\t1.0.0.0\t1033\t1\t\tWIX_UPGRADE_DETECTED",
945 "Upgrade:{12E4699F-E774-4D05-8A01-5BDD41BBA127}\t1.0.0.0\t\t1033\t2\t\tWIX_DOWNGRADE_DETECTED",
946 "Upgrade:{B05772EA-82B8-4DE0-B7EB-45B5F0CCFE6D}\t1.0.0\t\t\t256\t\tRELPRODFOUND",
947 }, results);
948
949 var prefix = "Property:SecureCustomProperties\t";
950 var secureProperties = Query.QueryDatabase(msiPath, new[] { "Property" }).Where(p => p.StartsWith(prefix)).Single();
951 WixAssert.CompareLineByLine(new[]
952 {
953 "RELPRODFOUND",
954 "WIX_DOWNGRADE_DETECTED",
955 "WIX_UPGRADE_DETECTED",
956 }, secureProperties.Substring(prefix.Length).Split(';').OrderBy(p => p).ToArray());
957 }
958 }
959
960 [Fact]
961 public void CanMergeModule()
962 {
963 var folder = TestData.Get(@"TestData\SimpleMerge");
964
965 using (var fs = new DisposableFileSystem())
966 {
967 var intermediateFolder = fs.GetFolder();
968 var msiPath = Path.Combine(intermediateFolder, @"bin\test.msi");
969 var cabPath = Path.Combine(intermediateFolder, @"bin\cab1.cab");
970
971 var result = WixRunner.Execute(new[]
972 {
973 "build",
974 Path.Combine(folder, "Package.wxs"),
975 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
976 "-bindpath", Path.Combine(folder, ".data"),
977 "-intermediateFolder", intermediateFolder,
978 "-o", msiPath
979 });
980
981 result.AssertSuccess();
982
983 Assert.True(File.Exists(msiPath));
984 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.wixpdb")));
985
986 var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"bin\test.wixpdb"));
987 var section = intermediate.Sections.Single();
988 Assert.Empty(section.Symbols.OfType<FileSymbol>());
989
990 var data = WindowsInstallerData.Load(Path.Combine(intermediateFolder, @"bin\test.wixpdb"));
991 Assert.Empty(data.Tables["File"].Rows);
992
993 var results = Query.QueryDatabase(msiPath, new[] { "File" });
994 WixAssert.CompareLineByLine(new[]
995 {
996 "File:filyIq8rqcxxf903Hsn5K9L0SWV73g.243FB739_4D05_472F_9CFB_EF6B1017B6DE\tModuleComponent.243FB739_4D05_472F_9CFB_EF6B1017B6DE\ttest.txt\t17\t\t\t512\t0"
997 }, results);
998
999 var files = Query.GetCabinetFiles(cabPath);
1000 WixAssert.CompareLineByLine(new[]
1001 {
1002 "filyIq8rqcxxf903Hsn5K9L0SWV73g.243FB739_4D05_472F_9CFB_EF6B1017B6DE"
1003 }, files.Select(f => f.Name).ToArray());
1004 }
1005 }
1006
1007 [Fact]
1008 public void CanPublishComponentWithMultipleFeatureComponents()
1009 {
1010 var folder = TestData.Get(@"TestData\PublishComponent");
1011
1012 using (var fs = new DisposableFileSystem())
1013 {
1014 var baseFolder = fs.GetFolder();
1015 var intermediateFolder = Path.Combine(baseFolder, "obj");
1016 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
1017
1018 var result = WixRunner.Execute(new[]
1019 {
1020 "build",
1021 Path.Combine(folder, "Package.wxs"),
1022 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
1023 "-bindpath", Path.Combine(folder, "data"),
1024 "-intermediateFolder", intermediateFolder,
1025 "-o", msiPath
1026 });
1027
1028 result.AssertSuccess();
1029
1030 Assert.True(File.Exists(msiPath));
1031 var results = Query.QueryDatabase(msiPath, new[] { "PublishComponent" });
1032 WixAssert.CompareLineByLine(new[]
1033 {
1034 "PublishComponent:{0A82C8F6-9CE9-4336-B8BE-91A39B5F7081} Qualifier2 Component2 AppData2 ProductFeature2",
1035 "PublishComponent:{BD245B5A-EC33-46ED-98FF-E9D3D416AD04} Qualifier1 Component1 AppData1 ProductFeature1",
1036 }, results);
1037 }
1038 }
1039 }
1040}
diff --git a/src/test/WixToolsetTest.CoreIntegration/MsiTransactionFixture.cs b/src/test/WixToolsetTest.CoreIntegration/MsiTransactionFixture.cs
deleted file mode 100644
index a566b490..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/MsiTransactionFixture.cs
+++ /dev/null
@@ -1,131 +0,0 @@
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 WixBuildTools.TestSupport;
7 using WixToolset.Core.TestPackage;
8 using Xunit;
9
10 public class MsiTransactionFixture
11 {
12 [Fact]
13 public void CantBuildX64AfterX86Bundle()
14 {
15 var folder = TestData.Get(@"TestData");
16
17 using (var fs = new DisposableFileSystem())
18 {
19 var baseFolder = fs.GetFolder();
20 var intermediateFolder = Path.Combine(baseFolder, "obj");
21 var binFolder = Path.Combine(baseFolder, "bin");
22 var exePath = Path.Combine(binFolder, "test.exe");
23
24 BuildMsiPackages(folder, intermediateFolder, binFolder);
25
26 var result = WixRunner.Execute(new[]
27 {
28 "build",
29 "-sw1151", // this is expected for this test
30 Path.Combine(folder, "MsiTransaction", "X64AfterX86Bundle.wxs"),
31 Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
32 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
33 "-bindpath", binFolder,
34 "-intermediateFolder", intermediateFolder,
35 "-o", exePath,
36 });
37
38 Assert.Equal(390, result.ExitCode);
39 }
40 }
41
42 [Fact]
43 public void CanBuildX86AfterX64Bundle()
44 {
45 var folder = TestData.Get(@"TestData");
46
47 using (var fs = new DisposableFileSystem())
48 {
49 var baseFolder = fs.GetFolder();
50 var intermediateFolder = Path.Combine(baseFolder, "obj");
51 var binFolder = Path.Combine(baseFolder, "bin");
52 var exePath = Path.Combine(binFolder, "test.exe");
53
54 BuildMsiPackages(folder, intermediateFolder, binFolder);
55
56 var result = WixRunner.Execute(new[]
57 {
58 "build",
59 "-sw1151", // this is expected for this test
60 Path.Combine(folder, "MsiTransaction", "X86AfterX64Bundle.wxs"),
61 Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
62 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
63 "-bindpath", binFolder,
64 "-intermediateFolder", intermediateFolder,
65 "-o", exePath,
66 });
67
68 result.AssertSuccess();
69
70 Assert.True(File.Exists(exePath));
71 }
72 }
73
74 private static void BuildMsiPackages(string folder, string intermediateFolder, string binFolder)
75 {
76 var result = WixRunner.Execute(new[]
77 {
78 "build",
79 Path.Combine(folder, "MsiTransaction", "FirstX86.wxs"),
80 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
81 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
82 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
83 "-intermediateFolder", intermediateFolder,
84 "-o", Path.Combine(binFolder, "FirstX86", "FirstX86.msi"),
85 });
86
87 result.AssertSuccess();
88
89 result = WixRunner.Execute(new[]
90 {
91 "build",
92 Path.Combine(folder, "MsiTransaction", "SecondX86.wxs"),
93 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
94 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
95 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
96 "-intermediateFolder", intermediateFolder,
97 "-o", Path.Combine(binFolder, "SecondX86", "SecondX86.msi"),
98 });
99
100 result.AssertSuccess();
101
102 result = WixRunner.Execute(new[]
103 {
104 "build",
105 Path.Combine(folder, "MsiTransaction", "FirstX64.wxs"),
106 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
107 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
108 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
109 "-intermediateFolder", intermediateFolder,
110 "-arch", "x64",
111 "-o", Path.Combine(binFolder, "FirstX64", "FirstX64.msi"),
112 });
113
114 result.AssertSuccess();
115
116 result = WixRunner.Execute(new[]
117 {
118 "build",
119 Path.Combine(folder, "MsiTransaction", "SecondX64.wxs"),
120 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
121 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
122 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
123 "-intermediateFolder", intermediateFolder,
124 "-arch", "x64",
125 "-o", Path.Combine(binFolder, "SecondX64", "SecondX64.msi"),
126 });
127
128 result.AssertSuccess();
129 }
130 }
131}
diff --git a/src/test/WixToolsetTest.CoreIntegration/MsuPackageFixture.cs b/src/test/WixToolsetTest.CoreIntegration/MsuPackageFixture.cs
deleted file mode 100644
index 475afcf0..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/MsuPackageFixture.cs
+++ /dev/null
@@ -1,36 +0,0 @@
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 WixBuildTools.TestSupport;
7 using WixToolset.Core.TestPackage;
8 using Xunit;
9
10 public class MsuPackageFixture
11 {
12 [Fact]
13 public void CanBuildBundleWithMsuPackage()
14 {
15 var folder = TestData.Get(@"TestData", "MsuPackage");
16
17 using (var fs = new DisposableFileSystem())
18 {
19 var baseFolder = fs.GetFolder();
20 var intermediateFolder = Path.Combine(baseFolder, "obj");
21
22 var result = WixRunner.Execute(new[]
23 {
24 "build",
25 Path.Combine(folder, "Bundle.wxs"),
26 "-bindpath", Path.Combine(folder, "data"),
27 "-intermediateFolder", intermediateFolder,
28 "-o", Path.Combine(baseFolder, "bin", "test.exe")
29 });
30
31 result.AssertSuccess();
32 Assert.True(File.Exists(Path.Combine(baseFolder, "bin", "test.exe")));
33 }
34 }
35 }
36}
diff --git a/src/test/WixToolsetTest.CoreIntegration/PackagePayloadFixture.cs b/src/test/WixToolsetTest.CoreIntegration/PackagePayloadFixture.cs
deleted file mode 100644
index 6b2d8bfa..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/PackagePayloadFixture.cs
+++ /dev/null
@@ -1,211 +0,0 @@
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.Collections.Generic;
6 using System.IO;
7 using System.Linq;
8 using WixBuildTools.TestSupport;
9 using WixToolset.Core.TestPackage;
10 using Xunit;
11
12 public class PackagePayloadFixture
13 {
14 [Fact]
15 public void CanSpecifyPackagePayloadInPayloadGroup()
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 bundlePath = Path.Combine(baseFolder, @"bin\test.exe");
24 var baFolderPath = Path.Combine(baseFolder, "ba");
25 var extractFolderPath = Path.Combine(baseFolder, "extract");
26
27 var result = WixRunner.Execute(new[]
28 {
29 "build",
30 Path.Combine(folder, "PackagePayload", "PackagePayloadInPayloadGroup.wxs"),
31 Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
32 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
33 "-bindpath", Path.Combine(folder, ".Data"),
34 "-intermediateFolder", intermediateFolder,
35 "-o", bundlePath,
36 });
37
38 result.AssertSuccess();
39
40 Assert.True(File.Exists(bundlePath));
41
42 var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath);
43 extractResult.AssertSuccess();
44
45 var exePackageElements = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Chain/burn:ExePackage");
46 var ignoreAttributesByElementName = new Dictionary<string, List<string>>
47 {
48 { "ExePackage", new List<string> { "CacheId", "InstallSize", "Size" } },
49 };
50 Assert.Equal(1, exePackageElements.Count);
51 Assert.Equal("<ExePackage Id='PackagePayloadInPayloadGroup' Cache='keep' CacheId='*' InstallSize='*' Size='*' PerMachine='yes' Permanent='yes' Vital='yes' RollbackBoundaryForward='WixDefaultBoundary' RollbackBoundaryBackward='WixDefaultBoundary' LogPathVariable='WixBundleLog_PackagePayloadInPayloadGroup' RollbackLogPathVariable='WixBundleRollbackLog_PackagePayloadInPayloadGroup' DetectCondition='none' InstallArguments='' UninstallArguments='' RepairArguments='' Repairable='no'><PayloadRef Id='burn.exe' /></ExePackage>", exePackageElements[0].GetTestXml(ignoreAttributesByElementName));
52
53 var payloadElements = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Payload[@Id='burn.exe']");
54 Assert.Equal(1, payloadElements.Count);
55 Assert.Equal("<Payload Id='burn.exe' FilePath='burn.exe' FileSize='463360' Hash='F6E722518AC3AB7E31C70099368D5770788C179AA23226110DCF07319B1E1964E246A1E8AE72E2CF23E0138AFC281BAFDE45969204405E114EB20C8195DA7E5E' Packaging='embedded' SourcePath='a0' Container='WixAttachedContainer' />", payloadElements[0].GetTestXml());
56 }
57 }
58
59 [Fact]
60 public void ErrorWhenMissingSourceFileAndHash()
61 {
62 var folder = TestData.Get(@"TestData", "PackagePayload");
63
64 using (var fs = new DisposableFileSystem())
65 {
66 var baseFolder = fs.GetFolder();
67
68 var result = WixRunner.Execute(false, new[]
69 {
70 "build",
71 Path.Combine(folder, "MissingSourceFileAndHash.wxs"),
72 "-o", Path.Combine(baseFolder, "test.wixlib")
73 });
74
75 Assert.Equal(44, result.ExitCode);
76 WixAssert.CompareLineByLine(new[]
77 {
78 "The MsuPackagePayload element's SourceFile or Hash attribute was not found; one of these is required.",
79 }, result.Messages.Select(m => m.ToString()).ToArray());
80 }
81 }
82
83 [Fact]
84 public void ErrorWhenMissingSourceFileAndName()
85 {
86 var folder = TestData.Get(@"TestData", "PackagePayload");
87
88 using (var fs = new DisposableFileSystem())
89 {
90 var baseFolder = fs.GetFolder();
91
92 var result = WixRunner.Execute(false, new[]
93 {
94 "build",
95 Path.Combine(folder, "MissingSourceFileAndName.wxs"),
96 "-o", Path.Combine(baseFolder, "test.wixlib")
97 });
98
99 Assert.Equal(44, result.ExitCode);
100 WixAssert.CompareLineByLine(new[]
101 {
102 "The MsiPackagePayload element's Name or SourceFile attribute was not found; one of these is required.",
103 }, result.Messages.Select(m => m.ToString()).ToArray());
104 }
105 }
106
107 [Fact]
108 public void ErrorWhenSpecifiedHash()
109 {
110 var folder = TestData.Get(@"TestData", "PackagePayload");
111
112 using (var fs = new DisposableFileSystem())
113 {
114 var baseFolder = fs.GetFolder();
115
116 var result = WixRunner.Execute(new[]
117 {
118 "build",
119 Path.Combine(folder, "SpecifiedHash.wxs"),
120 "-o", Path.Combine(baseFolder, "test.wixlib")
121 });
122
123 Assert.Equal(4, result.ExitCode);
124 WixAssert.CompareLineByLine(new[]
125 {
126 "The MspPackagePayload element contains an unexpected attribute 'Hash'.",
127 }, result.Messages.Select(m => m.ToString()).ToArray());
128 }
129 }
130
131 [Fact]
132 public void ErrorWhenSpecifiedHashAndMissingDownloadUrl()
133 {
134 var folder = TestData.Get(@"TestData", "PackagePayload");
135
136 using (var fs = new DisposableFileSystem())
137 {
138 var baseFolder = fs.GetFolder();
139
140 var result = WixRunner.Execute(new[]
141 {
142 "build",
143 Path.Combine(folder, "SpecifiedHashAndMissingDownloadUrl.wxs"),
144 "-o", Path.Combine(baseFolder, "test.wixlib")
145 });
146
147 Assert.Equal(10, result.ExitCode);
148 WixAssert.CompareLineByLine(new[]
149 {
150 "The MsuPackagePayload/@DownloadUrl attribute was not found; it is required when attribute Hash is specified.",
151 }, result.Messages.Select(m => m.ToString()).ToArray());
152 }
153 }
154
155 [Fact]
156 public void ErrorWhenSpecifiedSourceFileAndHash()
157 {
158 var folder = TestData.Get(@"TestData", "PackagePayload");
159
160 using (var fs = new DisposableFileSystem())
161 {
162 var baseFolder = fs.GetFolder();
163
164 var result = WixRunner.Execute(new[]
165 {
166 "build",
167 Path.Combine(folder, "SpecifiedSourceFileAndHash.wxs"),
168 "-o", Path.Combine(baseFolder, "test.wixlib")
169 });
170
171 Assert.Equal(35, result.ExitCode);
172 WixAssert.CompareLineByLine(new[]
173 {
174 "The ExePackagePayload/@Hash attribute cannot be specified when attribute SourceFile is present.",
175 }, result.Messages.Select(m => m.ToString()).ToArray());
176 }
177 }
178
179 [Fact]
180 public void ErrorWhenWrongPackagePayloadInPayloadGroup()
181 {
182 var folder = TestData.Get(@"TestData");
183
184 using (var fs = new DisposableFileSystem())
185 {
186 var baseFolder = fs.GetFolder();
187 var intermediateFolder = Path.Combine(baseFolder, "obj");
188 var bundlePath = Path.Combine(baseFolder, @"bin\test.exe");
189
190 var result = WixRunner.Execute(new[]
191 {
192 "build",
193 Path.Combine(folder, "PackagePayload", "WrongPackagePayloadInPayloadGroup.wxs"),
194 Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
195 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
196 "-bindpath", Path.Combine(folder, ".Data"),
197 "-intermediateFolder", intermediateFolder,
198 "-o", bundlePath,
199 });
200
201 Assert.Equal(407, result.ExitCode);
202 WixAssert.CompareLineByLine(new[]
203 {
204 "The ExePackagePayload element can only be used for ExePackages.",
205 "The location of the package related to previous error.",
206 "There is no payload defined for package 'WrongPackagePayloadInPayloadGroup'. This is specified on the MsiPackage element or a child MsiPackagePayload element.",
207 }, result.Messages.Select(m => m.ToString()).ToArray());
208 }
209 }
210 }
211}
diff --git a/src/test/WixToolsetTest.CoreIntegration/ParseFixture.cs b/src/test/WixToolsetTest.CoreIntegration/ParseFixture.cs
deleted file mode 100644
index cdba85de..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/ParseFixture.cs
+++ /dev/null
@@ -1,36 +0,0 @@
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.Linq;
6 using WixToolset.Core;
7 using WixToolset.Data;
8 using WixToolset.Data.Symbols;
9 using WixToolset.Extensibility.Data;
10 using WixToolset.Extensibility.Services;
11 using Xunit;
12
13 public class ParseFixture
14 {
15 [Fact]
16 public void GeneratesCorrectCustomActionIdentifiers()
17 {
18 var serviceProvider = WixToolsetServiceProviderFactory.CreateServiceProvider();
19 var section = new IntermediateSection("section", SectionType.Fragment);
20 var parseHelper = serviceProvider.GetService<IParseHelper>();
21
22 parseHelper.CreateCustomActionReference(null, section, "CustomAction32", Platform.X86, CustomActionPlatforms.X86);
23 parseHelper.CreateCustomActionReference(null, section, "CustomArmAction", Platform.ARM64, CustomActionPlatforms.X86);
24 parseHelper.CreateCustomActionReference(null, section, "CustomArmAction", Platform.ARM64, CustomActionPlatforms.X86 | CustomActionPlatforms.X64 | CustomActionPlatforms.ARM64);
25 parseHelper.CreateCustomActionReference(null, section, "CustomAction", Platform.X64, CustomActionPlatforms.X86);
26 parseHelper.CreateCustomActionReference(null, section, "CustomAction", Platform.X64, CustomActionPlatforms.X86 | CustomActionPlatforms.X64);
27
28 var simpleReferences = section.Symbols.OfType<WixSimpleReferenceSymbol>();
29 Assert.NotNull(simpleReferences.Where(t => t.SymbolicName == "CustomAction:CustomAction32_X86").FirstOrDefault());
30 Assert.NotNull(simpleReferences.Where(t => t.SymbolicName == "CustomAction:CustomArmAction_X86").FirstOrDefault());
31 Assert.NotNull(simpleReferences.Where(t => t.SymbolicName == "CustomAction:CustomArmAction_A64").FirstOrDefault());
32 Assert.NotNull(simpleReferences.Where(t => t.SymbolicName == "CustomAction:CustomAction_X86").FirstOrDefault());
33 Assert.NotNull(simpleReferences.Where(t => t.SymbolicName == "CustomAction:CustomAction_X64").FirstOrDefault());
34 }
35 }
36}
diff --git a/src/test/WixToolsetTest.CoreIntegration/PatchFixture.cs b/src/test/WixToolsetTest.CoreIntegration/PatchFixture.cs
deleted file mode 100644
index 483e3fd5..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/PatchFixture.cs
+++ /dev/null
@@ -1,279 +0,0 @@
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.ComponentModel;
8 using System.IO;
9 using System.Linq;
10 using System.Runtime.InteropServices;
11 using System.Text;
12 using System.Xml;
13 using System.Xml.Linq;
14 using Example.Extension;
15 using WixBuildTools.TestSupport;
16 using WixToolset.Core.TestPackage;
17 using WixToolset.Data;
18 using WixToolset.Data.Burn;
19 using Xunit;
20
21 public class PatchFixture
22 {
23 private static readonly XNamespace PatchNamespace = "http://www.microsoft.com/msi/patch_applicability.xsd";
24
25 [Fact]
26 public void CanBuildSimplePatch()
27 {
28 var folder = TestData.Get(@"TestData\PatchSingle");
29
30 using (var fs = new DisposableFileSystem())
31 {
32 var tempFolder = fs.GetFolder();
33
34 var baselinePdb = BuildMsi("Baseline.msi", folder, tempFolder, "1.0.0", "1.0.0", "1.0.0");
35 var update1Pdb = BuildMsi("Update.msi", folder, tempFolder, "1.0.1", "1.0.1", "1.0.1");
36 var patchPdb = BuildMsp("Patch1.msp", folder, tempFolder, "1.0.1");
37 var patchPath = Path.ChangeExtension(patchPdb, ".msp");
38
39 Assert.True(File.Exists(baselinePdb));
40 Assert.True(File.Exists(update1Pdb));
41
42 var doc = GetExtractPatchXml(patchPath);
43 Assert.Equal("{7D326855-E790-4A94-8611-5351F8321FCA}", doc.Root.Element(PatchNamespace + "TargetProductCode").Value);
44
45 var names = Query.GetSubStorageNames(patchPath);
46 Assert.Equal(new[] { "#RTM.1", "RTM.1" }, names);
47
48 var cab = Path.Combine(tempFolder, "foo.cab");
49 Query.ExtractStream(patchPath, "foo.cab", cab);
50 Assert.True(File.Exists(cab));
51
52 var files = Query.GetCabinetFiles(cab);
53 Assert.Equal(new[] { "a.txt", "b.txt" }, files.Select(f => f.Name).ToArray());
54 }
55 }
56
57 [Fact]
58 public void CanBuildSimplePatchWithNoFileChanges()
59 {
60 var folder = TestData.Get(@"TestData\PatchNoFileChanges");
61
62 using (var fs = new DisposableFileSystem())
63 {
64 var tempFolder = fs.GetFolder();
65
66 var baselinePdb = BuildMsi("Baseline.msi", folder, tempFolder, "1.0.0", "1.0.0", "1.0.0");
67 var update1Pdb = BuildMsi("Update.msi", folder, tempFolder, "1.0.1", "1.0.1", "1.0.1");
68 var patchPdb = BuildMsp("Patch1.msp", folder, tempFolder, "1.0.1", hasNoFiles: true);
69 var patchPath = Path.ChangeExtension(patchPdb, ".msp");
70
71 Assert.True(File.Exists(baselinePdb));
72 Assert.True(File.Exists(update1Pdb));
73
74 var doc = GetExtractPatchXml(patchPath);
75 Assert.Equal("{7D326855-E790-4A94-8611-5351F8321FCA}", doc.Root.Element(PatchNamespace + "TargetProductCode").Value);
76
77 var names = Query.GetSubStorageNames(patchPath);
78 Assert.Equal(new[] { "#RTM.1", "RTM.1" }, names);
79
80 var cab = Path.Combine(tempFolder, "foo.cab");
81 Query.ExtractStream(patchPath, "foo.cab", cab);
82 Assert.True(File.Exists(cab));
83
84 var files = Query.GetCabinetFiles(cab);
85 Assert.Empty(files);
86 }
87 }
88
89 [Fact(Skip = "https://github.com/wixtoolset/issues/issues/6387")]
90 public void CanBuildPatchFromProductWithFilesFromWixlib()
91 {
92 var folder = TestData.Get(@"TestData\PatchFromWixlib");
93
94 using (var fs = new DisposableFileSystem())
95 {
96 var tempFolderBaseline = fs.GetFolder();
97 var tempFolderUpdate = fs.GetFolder();
98 var tempFolderPatch = fs.GetFolder();
99
100 var baselinePdb = BuildMsi("Baseline.msi", folder, tempFolderBaseline, "1.0.0", "1.0.0", "1.0.0");
101 var update1Pdb = BuildMsi("Update.msi", folder, tempFolderUpdate, "1.0.1", "1.0.1", "1.0.1");
102 var patchPdb = BuildMsp("Patch1.msp", folder, tempFolderPatch, "1.0.1", bindpaths: new[] { Path.GetDirectoryName(baselinePdb), Path.GetDirectoryName(update1Pdb) }, hasNoFiles: true);
103 var patchPath = Path.ChangeExtension(patchPdb, ".msp");
104
105 Assert.True(File.Exists(baselinePdb));
106 Assert.True(File.Exists(update1Pdb));
107 }
108 }
109
110 [Fact]
111 public void CanBuildBundleWithNonSpecificPatches()
112 {
113 var folder = TestData.Get(@"TestData\PatchNonSpecific");
114
115 using (var fs = new DisposableFileSystem())
116 {
117 var tempFolder = fs.GetFolder();
118
119 var baselinePdb = BuildMsi("Baseline.msi", Path.Combine(folder, "PackageA"), tempFolder, "1.0.0", "A", "B");
120 var updatePdb = BuildMsi("Update.msi", Path.Combine(folder, "PackageA"), tempFolder, "1.0.1", "A", "B");
121 var patchAPdb = BuildMsp("PatchA.msp", Path.Combine(folder, "PatchA"), tempFolder, "1.0.1", hasNoFiles: true);
122 var patchBPdb = BuildMsp("PatchB.msp", Path.Combine(folder, "PatchB"), tempFolder, "1.0.1", hasNoFiles: true);
123 var patchCPdb = BuildMsp("PatchC.msp", Path.Combine(folder, "PatchC"), tempFolder, "1.0.1", hasNoFiles: true);
124 var bundleAPdb = BuildBundle("BundleA.exe", Path.Combine(folder, "BundleA"), tempFolder);
125 var bundleBPdb = BuildBundle("BundleB.exe", Path.Combine(folder, "BundleB"), tempFolder);
126 var bundleCPdb = BuildBundle("BundleC.exe", Path.Combine(folder, "BundleC"), tempFolder);
127
128 VerifyPatchTargetCodes(bundleAPdb, new[]
129 {
130 "<PatchTargetCode TargetCode='{26309973-0A5E-4979-B142-98A6E064EDC0}' Product='yes' />",
131 });
132 VerifyPatchTargetCodes(bundleBPdb, new[]
133 {
134 "<PatchTargetCode TargetCode='{26309973-0A5E-4979-B142-98A6E064EDC0}' Product='yes' />",
135 "<PatchTargetCode TargetCode='{32B0396A-CE36-4570-B16E-F88FA42DC409}' Product='no' />",
136 });
137 VerifyPatchTargetCodes(bundleCPdb, new string[0]);
138 }
139 }
140
141 [Fact]
142 public void CanBuildBundleWithSlipstreamPatch()
143 {
144 var folder = TestData.Get(@"TestData\PatchSingle");
145
146 using (var fs = new DisposableFileSystem())
147 {
148 var tempFolder = fs.GetFolder();
149
150 var baselinePdb = BuildMsi("Baseline.msi", folder, tempFolder, "1.0.0", "1.0.0", "1.0.0");
151 var update1Pdb = BuildMsi("Update.msi", folder, tempFolder, "1.0.1", "1.0.1", "1.0.1");
152 var patchPdb = BuildMsp("Patch1.msp", folder, tempFolder, "1.0.1");
153 var bundleAPdb = BuildBundle("BundleA.exe", Path.Combine(folder, "BundleA"), tempFolder);
154
155 using (var wixOutput = WixOutput.Read(bundleAPdb))
156 {
157 var manifestData = wixOutput.GetData(BurnConstants.BurnManifestWixOutputStreamName);
158 var doc = new XmlDocument();
159 doc.LoadXml(manifestData);
160 var nsmgr = BundleExtractor.GetBurnNamespaceManager(doc, "w");
161 var slipstreamMspNodes = doc.SelectNodes("/w:BurnManifest/w:Chain/w:MsiPackage/w:SlipstreamMsp", nsmgr);
162 Assert.Equal(1, slipstreamMspNodes.Count);
163 Assert.Equal("<SlipstreamMsp Id='PatchA' />", slipstreamMspNodes[0].GetTestXml());
164 }
165 }
166 }
167
168 private static void VerifyPatchTargetCodes(string pdbPath, string[] expected)
169 {
170 using (var wixOutput = WixOutput.Read(pdbPath))
171 {
172 var manifestData = wixOutput.GetData(BurnConstants.BurnManifestWixOutputStreamName);
173 var doc = new XmlDocument();
174 doc.LoadXml(manifestData);
175 var nsmgr = BundleExtractor.GetBurnNamespaceManager(doc, "w");
176 var patchTargetCodes = doc.SelectNodes("/w:BurnManifest/w:PatchTargetCode", nsmgr);
177
178 var actual = new List<string>();
179 foreach (XmlNode patchTargetCodeNode in patchTargetCodes)
180 {
181 actual.Add(patchTargetCodeNode.GetTestXml());
182 }
183
184 WixAssert.CompareLineByLine(expected, actual.ToArray());
185 }
186 }
187
188 private static string BuildMsi(string outputName, string sourceFolder, string baseFolder, string defineV, string defineA, string defineB)
189 {
190 var extensionPath = Path.GetFullPath(new Uri(typeof(ExampleExtensionFactory).Assembly.CodeBase).LocalPath);
191 var outputPath = Path.Combine(baseFolder, Path.Combine("bin", outputName));
192
193 var result = WixRunner.Execute(new[]
194 {
195 "build",
196 Path.Combine(sourceFolder, @"Package.wxs"),
197 "-d", "V=" + defineV,
198 "-d", "A=" + defineA,
199 "-d", "B=" + defineB,
200 "-bindpath", Path.Combine(sourceFolder, ".data"),
201 "-intermediateFolder", Path.Combine(baseFolder, "obj"),
202 "-o", outputPath,
203 "-ext", extensionPath,
204 });
205
206 result.AssertSuccess();
207
208 return Path.ChangeExtension(outputPath, ".wixpdb");
209 }
210
211 private static string BuildMsp(string outputName, string sourceFolder, string baseFolder, string defineV, IEnumerable<string> bindpaths = null, bool hasNoFiles = false)
212 {
213 var outputPath = Path.Combine(baseFolder, Path.Combine("bin", outputName));
214
215 var args = new List<string>
216 {
217 "build",
218 hasNoFiles ? "-sw1079" : " ",
219 Path.Combine(sourceFolder, @"Patch.wxs"),
220 "-d", "V=" + defineV,
221 "-bindpath", Path.Combine(baseFolder, "bin"),
222 "-intermediateFolder", Path.Combine(baseFolder, "obj"),
223 "-o", outputPath
224 };
225
226 foreach (var additionaBindPath in bindpaths ?? Enumerable.Empty<string>())
227 {
228 args.Add("-bindpath");
229 args.Add(additionaBindPath);
230 }
231
232 var result = WixRunner.Execute(args.ToArray());
233
234 result.AssertSuccess();
235
236 return Path.ChangeExtension(outputPath, ".wixpdb");
237 }
238
239 private static string BuildBundle(string outputName, string sourceFolder, string baseFolder)
240 {
241 var outputPath = Path.Combine(baseFolder, Path.Combine("bin", outputName));
242
243 var result = WixRunner.Execute(new[]
244 {
245 "build",
246 Path.Combine(sourceFolder, @"Bundle.wxs"),
247 Path.Combine(sourceFolder, "..", "..", "BundleWithPackageGroupRef", "Bundle.wxs"),
248 "-bindpath", Path.Combine(sourceFolder, "..", "..", "SimpleBundle", "data"),
249 "-bindpath", Path.Combine(baseFolder, "bin"),
250 "-intermediateFolder", Path.Combine(baseFolder, "obj"),
251 "-o", outputPath
252 });
253
254 result.AssertSuccess();
255
256 return Path.ChangeExtension(outputPath, ".wixpdb");
257 }
258
259 private static XDocument GetExtractPatchXml(string path)
260 {
261 var buffer = new StringBuilder(65535);
262 var size = buffer.Capacity;
263
264 var er = MsiExtractPatchXMLData(path, 0, buffer, ref size);
265 if (er != 0)
266 {
267 throw new Win32Exception(er);
268 }
269
270 return XDocument.Parse(buffer.ToString());
271 }
272
273 [DllImport("msi.dll", EntryPoint = "MsiExtractPatchXMLDataW", CharSet = CharSet.Unicode, ExactSpelling = true)]
274 private static extern int MsiExtractPatchXMLData(string szPatchPath, int dwReserved, StringBuilder szXMLData, ref int pcchXMLData);
275
276 [DllImport("msi.dll", EntryPoint = "MsiApplyPatchW", CharSet = CharSet.Unicode, ExactSpelling = true)]
277 private static extern int MsiApplyPatch(string szPatchPackage, string szInstallPackage, int eInstallType, string szCommandLine);
278 }
279}
diff --git a/src/test/WixToolsetTest.CoreIntegration/PayloadFixture.cs b/src/test/WixToolsetTest.CoreIntegration/PayloadFixture.cs
deleted file mode 100644
index 23f6a9ba..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/PayloadFixture.cs
+++ /dev/null
@@ -1,212 +0,0 @@
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.Xml;
10 using WixBuildTools.TestSupport;
11 using WixToolset.Core;
12 using WixToolset.Core.TestPackage;
13 using WixToolset.Data;
14 using WixToolset.Data.Symbols;
15 using Xunit;
16
17 public class PayloadFixture
18 {
19 [Fact]
20 public void CanParseValidName()
21 {
22 var folder = TestData.Get(@"TestData\Payload");
23
24 using (var fs = new DisposableFileSystem())
25 {
26 var baseFolder = fs.GetFolder();
27 var intermediateFolder = Path.Combine(baseFolder, "obj");
28 var wixlibPath = Path.Combine(intermediateFolder, @"test.wixlib");
29
30 var result = WixRunner.Execute(new[]
31 {
32 "build",
33 Path.Combine(folder, "ValidName.wxs"),
34 "-intermediateFolder", intermediateFolder,
35 "-o", wixlibPath,
36 });
37
38 result.AssertSuccess();
39
40 Assert.Empty(result.Messages);
41
42 var intermediate = Intermediate.Load(wixlibPath);
43 var allSymbols = intermediate.Sections.SelectMany(s => s.Symbols);
44 var payloadSymbol = allSymbols.OfType<WixBundlePayloadSymbol>()
45 .SingleOrDefault();
46 Assert.NotNull(payloadSymbol);
47
48 var fields = payloadSymbol.Fields.Select(field => field?.Type == IntermediateFieldType.Bool
49 ? field.AsNullableNumber()?.ToString()
50 : field?.AsString())
51 .ToList();
52 Assert.Equal(@"dir\file.ext", fields[(int)WixBundlePayloadSymbolFields.Name]);
53 }
54 }
55
56 [Fact]
57 public void CanCanonicalizeName()
58 {
59 var folder = TestData.Get(@"TestData\Payload");
60
61 using (var fs = new DisposableFileSystem())
62 {
63 var baseFolder = fs.GetFolder();
64 var intermediateFolder = Path.Combine(baseFolder, "obj");
65 var wixlibPath = Path.Combine(intermediateFolder, @"test.wixlib");
66
67 var result = WixRunner.Execute(warningsAsErrors: false, new[]
68 {
69 "build",
70 Path.Combine(folder, "CanonicalizeName.wxs"),
71 "-intermediateFolder", intermediateFolder,
72 "-o", wixlibPath,
73 });
74
75 result.AssertSuccess();
76
77 Assert.Single(result.Messages, m => m.Id == (int)WarningMessages.Ids.PathCanonicalized);
78
79 var intermediate = Intermediate.Load(wixlibPath);
80 var allSymbols = intermediate.Sections.SelectMany(s => s.Symbols);
81 var payloadSymbol = allSymbols.OfType<WixBundlePayloadSymbol>()
82 .SingleOrDefault();
83 Assert.NotNull(payloadSymbol);
84
85 var fields = payloadSymbol.Fields.Select(field => field?.Type == IntermediateFieldType.Bool
86 ? field.AsNullableNumber()?.ToString()
87 : field?.AsString())
88 .ToList();
89 Assert.Equal(@"c\d.exe", fields[(int)WixBundlePayloadSymbolFields.Name]);
90 }
91 }
92
93 [Fact]
94 public void RejectsAbsoluteName()
95 {
96 var folder = TestData.Get(@"TestData\Payload");
97
98 using (var fs = new DisposableFileSystem())
99 {
100 var baseFolder = fs.GetFolder();
101 var intermediateFolder = Path.Combine(baseFolder, "obj");
102 var wixlibPath = Path.Combine(intermediateFolder, @"test.wixlib");
103
104 var result = WixRunner.Execute(new[]
105 {
106 "build",
107 Path.Combine(folder, "AbsoluteName.wxs"),
108 "-intermediateFolder", intermediateFolder,
109 "-o", wixlibPath,
110 });
111
112 Assert.InRange(result.ExitCode, 2, int.MaxValue);
113
114 var expectedIllegalRelativeLongFileName = 1;
115 var expectedPayloadMustBeRelativeToCache = 2;
116 Assert.Equal(expectedIllegalRelativeLongFileName, result.Messages.Where(m => m.Id == (int)ErrorMessages.Ids.IllegalRelativeLongFilename).Count());
117 Assert.Equal(expectedPayloadMustBeRelativeToCache, result.Messages.Where(m => m.Id == (int)ErrorMessages.Ids.PayloadMustBeRelativeToCache).Count());
118 }
119 }
120
121 [Fact]
122 public void RejectsPayloadSharedBetweenPackageAndBA()
123 {
124 var folder = TestData.Get(@"TestData");
125
126 using (var fs = new DisposableFileSystem())
127 {
128 var baseFolder = fs.GetFolder();
129 var intermediateFolder = Path.Combine(baseFolder, "obj");
130 var bundlePath = Path.Combine(baseFolder, @"bin\test.exe");
131
132 var result = WixRunner.Execute(new[]
133 {
134 "build",
135 Path.Combine(folder, "Payload", "SharedBAAndPackagePayloadBundle.wxs"),
136 Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
137 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
138 "-bindpath", Path.Combine(folder, ".Data"),
139 "-intermediateFolder", intermediateFolder,
140 "-o", bundlePath,
141 });
142
143 Assert.Equal((int)LinkerErrors.Ids.PayloadSharedWithBA, result.ExitCode);
144 }
145 }
146
147 [Fact]
148 public void ReplacesDownloadUrlPlaceholders()
149 {
150 var folder = TestData.Get(@"TestData");
151
152 using (var fs = new DisposableFileSystem())
153 {
154 var baseFolder = fs.GetFolder();
155 var intermediateFolder = Path.Combine(baseFolder, "obj");
156 var bundlePath = Path.Combine(baseFolder, @"bin\test.exe");
157 var baFolderPath = Path.Combine(baseFolder, "ba");
158 var extractFolderPath = Path.Combine(baseFolder, "extract");
159
160 var result = WixRunner.Execute(false, new[]
161 {
162 "build",
163 Path.Combine(folder, "Payload", "DownloadUrlPlaceholdersBundle.wxs"),
164 Path.Combine(folder, "SimpleBundle", "MultiFileBootstrapperApplication.wxs"),
165 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
166 "-bindpath", Path.Combine(folder, ".Data"),
167 "-intermediateFolder", intermediateFolder,
168 "-o", bundlePath,
169 });
170
171 result.AssertSuccess();
172
173 WixAssert.CompareLineByLine(new string[]
174 {
175 "The Payload 'burn.exe' is being added to Container 'PackagesContainer', overriding its Compressed value of 'no'.",
176 }, result.Messages.Select(m => m.ToString()).ToArray());
177
178 Assert.True(File.Exists(bundlePath));
179
180 var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath);
181 extractResult.AssertSuccess();
182
183 var ignoreAttributesByElementName = new Dictionary<string, List<string>>
184 {
185 { "Container", new List<string> { "FileSize", "Hash" } },
186 { "Payload", new List<string> { "FileSize", "Hash" } },
187 };
188 var payloads = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Payload")
189 .Cast<XmlElement>()
190 .Select(e => e.GetTestXml(ignoreAttributesByElementName))
191 .ToArray();
192 WixAssert.CompareLineByLine(new string[]
193 {
194 "<Payload Id='burn.exe' FilePath='burn.exe' FileSize='*' Hash='*' Packaging='embedded' SourcePath='a0' Container='PackagesContainer' />",
195 "<Payload Id='test.msi' FilePath='test.msi' FileSize='*' Hash='*' DownloadUrl='http://example.com/id/test.msi/test.msi' Packaging='external' SourcePath='test.msi' />",
196 "<Payload Id='LayoutOnlyPayload' FilePath='DownloadUrlPlaceholdersBundle.wxs' FileSize='*' Hash='*' LayoutOnly='yes' DownloadUrl='http://example.com/id/LayoutOnlyPayload/DownloadUrlPlaceholdersBundle.wxs' Packaging='external' SourcePath='DownloadUrlPlaceholdersBundle.wxs' />",
197 @"<Payload Id='fhuZsOcBDTuIX8rF96kswqI6SnuI' FilePath='MsiPackage\test.txt' FileSize='*' Hash='*' Packaging='external' SourcePath='MsiPackage\test.txt' />",
198 @"<Payload Id='faf_OZ741BG7SJ6ZkcIvivZ2Yzo8' FilePath='MsiPackage\Shared.dll' FileSize='*' Hash='*' Packaging='external' SourcePath='MsiPackage\Shared.dll' />",
199 }, payloads);
200
201 var containers = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Container")
202 .Cast<XmlElement>()
203 .Select(e => e.GetTestXml(ignoreAttributesByElementName))
204 .ToArray();
205 WixAssert.CompareLineByLine(new string[]
206 {
207 "<Container Id='PackagesContainer' FileSize='*' Hash='*' DownloadUrl='http://example.com/id/PackagesContainer/packages.cab' FilePath='packages.cab' />",
208 }, containers);
209 }
210 }
211 }
212}
diff --git a/src/test/WixToolsetTest.CoreIntegration/PreprocessorFixture.cs b/src/test/WixToolsetTest.CoreIntegration/PreprocessorFixture.cs
deleted file mode 100644
index ae8a1bcc..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/PreprocessorFixture.cs
+++ /dev/null
@@ -1,181 +0,0 @@
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;
9 using WixToolset.Core.TestPackage;
10 using WixToolset.Data;
11 using WixToolset.Data.Symbols;
12 using WixToolset.Extensibility.Data;
13 using WixToolset.Extensibility.Services;
14 using Xunit;
15
16 public class PreprocessorFixture
17 {
18 [Fact]
19 public void PreprocessDirectly()
20 {
21 var folder = TestData.Get(@"TestData\IncludePath");
22 var sourcePath = Path.Combine(folder, "Package.wxs");
23 var includeFolder = Path.Combine(folder, "data");
24 var includeFile = Path.Combine(includeFolder, "Package.wxi");
25
26 var serviceProvider = WixToolsetServiceProviderFactory.CreateServiceProvider();
27
28 var context = serviceProvider.GetService<IPreprocessContext>();
29 context.SourcePath = sourcePath;
30 context.IncludeSearchPaths = new[] { includeFolder };
31
32 var preprocessor = serviceProvider.GetService<IPreprocessor>();
33 var result = preprocessor.Preprocess(context);
34
35 var includedFile = result.IncludedFiles.Single();
36 Assert.NotNull(result.Document);
37 Assert.Equal(includeFile, includedFile.Path);
38 Assert.Equal(sourcePath, includedFile.SourceLineNumbers.FileName);
39 Assert.Equal(1, includedFile.SourceLineNumbers.LineNumber.Value);
40 Assert.Equal($"{sourcePath}*1", includedFile.SourceLineNumbers.QualifiedFileName);
41 Assert.Null(includedFile.SourceLineNumbers.Parent);
42 }
43
44 [Fact]
45 public void IncludeSourceLineNumbersPreserved()
46 {
47 var folder = TestData.Get(@"TestData\IncludePath");
48
49 using (var fs = new DisposableFileSystem())
50 {
51 var baseFolder = fs.GetFolder();
52 var intermediateFolder = Path.Combine(baseFolder, "obj");
53
54 var result = WixRunner.Execute(warningsAsErrors: false, new[]
55 {
56 "build",
57 Path.Combine(folder, "Package.wxs"),
58 Path.Combine(folder, "PackageComponents.wxs"),
59 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
60 "-includepath", Path.Combine(folder, "data"),
61 "-bindpath", Path.Combine(folder, "data"),
62 "-intermediateFolder", intermediateFolder,
63 "-o", Path.Combine(baseFolder, @"bin\test.msi")
64 });
65
66 result.AssertSuccess();
67
68 using (var output = WixOutput.Read(Path.Combine(baseFolder, @"bin\test.wixpdb")))
69 {
70 var intermediate = Intermediate.Load(output);
71 var component = intermediate.Sections.Single().Symbols.OfType<ComponentSymbol>().Single();
72 Assert.Equal(3, component.SourceLineNumbers.LineNumber);
73 Assert.Equal(5, component.SourceLineNumbers.Parent.LineNumber);
74
75 var encoded = component.SourceLineNumbers.GetEncoded();
76 var decoded = SourceLineNumber.CreateFromEncoded(encoded);
77 Assert.Equal(3, decoded.LineNumber);
78 Assert.Equal(5, decoded.Parent.LineNumber);
79 }
80 }
81 }
82
83 [Fact]
84 /// <remarks>
85 /// This test will fail on 32-bit operating systems because it depends on "CommonProgramFiles(x86)"
86 /// which is only defined on 64-bit Windows.
87 /// </remarks>
88 public void SupportParensInEnvironmentVariables()
89 {
90 var folder = TestData.Get(@"TestData", "Preprocessor");
91
92 var serviceProvider = WixToolsetServiceProviderFactory.CreateServiceProvider();
93 var context = serviceProvider.GetService<IPreprocessContext>();
94 context.SourcePath = Path.Combine(folder, "EnvParens.wxs");
95
96 var preprocessor = serviceProvider.GetService<IPreprocessor>();
97 var result = preprocessor.Preprocess(context);
98 Assert.NotNull(result.Document);
99 }
100
101 [Fact]
102 public void VariableRedefinitionIsAWarning()
103 {
104 var folder = TestData.Get(@"TestData\Variables");
105
106 using (var fs = new DisposableFileSystem())
107 {
108 var baseFolder = fs.GetFolder();
109 var intermediateFolder = Path.Combine(baseFolder, "obj");
110
111 var result = WixRunner.Execute(warningsAsErrors: false, new[]
112 {
113 "build",
114 Path.Combine(folder, "Package.wxs"),
115 Path.Combine(folder, "PackageComponents.wxs"),
116 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
117 "-bindpath", Path.Combine(folder, "data"),
118 "-intermediateFolder", intermediateFolder,
119 "-o", Path.Combine(baseFolder, @"bin\test.msi")
120 });
121
122 result.AssertSuccess();
123
124 var warning = result.Messages.Where(message => message.Id == (int)WarningMessages.Ids.VariableDeclarationCollision);
125 Assert.Single(warning);
126 }
127 }
128
129 [Fact]
130 public void ForEachLoopsWork()
131 {
132 var folder = TestData.Get(@"TestData\ForEach");
133
134 using (var fs = new DisposableFileSystem())
135 {
136 var baseFolder = fs.GetFolder();
137 var intermediateFolder = Path.Combine(baseFolder, "obj");
138
139 var result = WixRunner.Execute(new[]
140 {
141 "build",
142 Path.Combine(folder, "Package.wxs"),
143 Path.Combine(folder, "PackageComponents.wxs"),
144 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
145 "-bindpath", Path.Combine(folder, "data"),
146 "-intermediateFolder", intermediateFolder,
147 "-o", Path.Combine(baseFolder, @"bin\test.msi")
148 });
149
150 result.AssertSuccess();
151 }
152 }
153
154 [Fact]
155 public void NonterminatedPreprocessorInstructionShowsSourceLineNumber()
156 {
157 var folder = TestData.Get(@"TestData\BadIf");
158
159 using (var fs = new DisposableFileSystem())
160 {
161 var baseFolder = fs.GetFolder();
162 var intermediateFolder = Path.Combine(baseFolder, "obj");
163
164 var result = WixRunner.Execute(new[]
165 {
166 "build",
167 Path.Combine(folder, "Package.wxs"),
168 Path.Combine(folder, "PackageComponents.wxs"),
169 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
170 "-bindpath", Path.Combine(folder, "data"),
171 "-intermediateFolder", intermediateFolder,
172 "-o", Path.Combine(baseFolder, @"bin\test.msi")
173 });
174
175 Assert.Equal(147, result.ExitCode);
176 Assert.StartsWith("Found a <?if?>", result.Messages.Single().ToString());
177 }
178 }
179 }
180}
181
diff --git a/src/test/WixToolsetTest.CoreIntegration/RegistryFixture.cs b/src/test/WixToolsetTest.CoreIntegration/RegistryFixture.cs
deleted file mode 100644
index e4d95b5d..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/RegistryFixture.cs
+++ /dev/null
@@ -1,173 +0,0 @@
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 WixAssert.CompareLineByLine(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 WixAssert.CompareLineByLine(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 DuplicateRegistryValueIdsAreDetectedSmoothly()
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", "DuplicateRegistryValueIds.wxs"),
97 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
98 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
99 "-intermediateFolder", intermediateFolder,
100 "-o", msiPath
101 }, out var messages);
102
103 Assert.Equal(2, messages.Where(m => m.Id == (int)ErrorMessages.Ids.DuplicateSymbol).Count());
104 Assert.Equal(2, messages.Where(m => m.Id == (int)ErrorMessages.Ids.DuplicateSymbol2).Count());
105 }
106 }
107
108 [Fact]
109 public void PopulatesRegistryTableFromRemoveRegistryKey()
110 {
111 var folder = TestData.Get(@"TestData");
112
113 using (var fs = new DisposableFileSystem())
114 {
115 var baseFolder = fs.GetFolder();
116 var intermediateFolder = Path.Combine(baseFolder, "obj");
117 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
118
119 var result = WixRunner.Execute(new[]
120 {
121 "build",
122 Path.Combine(folder, "Registry", "RemoveRegistryKey.wxs"),
123 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
124 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
125 "-intermediateFolder", intermediateFolder,
126 "-o", msiPath
127 });
128
129 result.AssertSuccess();
130
131 Assert.True(File.Exists(msiPath));
132 var results = Query.QueryDatabase(msiPath, new[] { "Registry" });
133 WixAssert.CompareLineByLine(new[]
134 {
135 "Registry:RemoveAKeyName\t2\tAKeyName\t-\t\tRemoveRegistryKeyComp",
136 }, results);
137 }
138 }
139
140 [Fact]
141 public void PopulatesRegistryTableWithoutExtraBackslash()
142 {
143 var folder = TestData.Get(@"TestData");
144
145 using (var fs = new DisposableFileSystem())
146 {
147 var baseFolder = fs.GetFolder();
148 var intermediateFolder = Path.Combine(baseFolder, "obj");
149 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
150
151 var result = WixRunner.Execute(new[]
152 {
153 "build",
154 Path.Combine(folder, "Registry", "RegistryKeyEndingWithBackslash.wxs"),
155 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
156 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
157 "-intermediateFolder", intermediateFolder,
158 "-o", msiPath
159 });
160
161 result.AssertSuccess();
162
163 Assert.True(File.Exists(msiPath));
164 var results = Query.QueryDatabase(msiPath, new[] { "Registry" });
165 WixAssert.CompareLineByLine(new[]
166 {
167 "Registry:reg1\t2\tSoftware\\WBM\\WB\t*\t\tMiscComponent",
168 "Registry:reg2\t2\tSoftware\\WBM\\WB\tInstallationPath\t[INSTALLFOLDER]\tMiscComponent",
169 }, results);
170 }
171 }
172 }
173}
diff --git a/src/test/WixToolsetTest.CoreIntegration/RollbackBoundaryFixture.cs b/src/test/WixToolsetTest.CoreIntegration/RollbackBoundaryFixture.cs
deleted file mode 100644
index 9e19abb0..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/RollbackBoundaryFixture.cs
+++ /dev/null
@@ -1,41 +0,0 @@
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 WixBuildTools.TestSupport;
7 using WixToolset.Core.TestPackage;
8 using Xunit;
9
10 public class RollbackBoundaryFixture
11 {
12 [Fact]
13 public void CanStartChainWithRollbackBoundary()
14 {
15 var folder = TestData.Get(@"TestData");
16
17 using (var fs = new DisposableFileSystem())
18 {
19 var baseFolder = fs.GetFolder();
20 var intermediateFolder = Path.Combine(baseFolder, "obj");
21 var exePath = Path.Combine(baseFolder, @"bin\test.exe");
22
23 var result = WixRunner.Execute(new[]
24 {
25 "build",
26 Path.Combine(folder, "RollbackBoundary", "BeginningOfChain.wxs"),
27 Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
28 Path.Combine(folder, "BundleWithPackageGroupRef", "MinimalPackageGroup.wxs"),
29 "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
30 "-intermediateFolder", intermediateFolder,
31 "-o", exePath,
32 });
33
34 result.AssertSuccess();
35
36 Assert.True(File.Exists(exePath));
37 }
38 }
39
40 }
41}
diff --git a/src/test/WixToolsetTest.CoreIntegration/ShortcutFixture.cs b/src/test/WixToolsetTest.CoreIntegration/ShortcutFixture.cs
deleted file mode 100644
index 3b6c50c0..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/ShortcutFixture.cs
+++ /dev/null
@@ -1,78 +0,0 @@
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 WixBuildTools.TestSupport;
7 using WixToolset.Core.TestPackage;
8 using Xunit;
9
10 public class ShortcutFixture
11 {
12 [Fact]
13 public void CanBuildShortcutNameWithShortname()
14 {
15 var folder = TestData.Get(@"TestData");
16
17 using (var fs = new DisposableFileSystem())
18 {
19 var baseFolder = fs.GetFolder();
20 var intermediateFolder = Path.Combine(baseFolder, "obj");
21 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
22
23 var result = WixRunner.Execute(new[]
24 {
25 "build",
26 Path.Combine(folder, "Shortcut", "ShortcutSameNameShortName.wxs"),
27 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
28 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
29 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
30 "-intermediateFolder", intermediateFolder,
31 "-o", msiPath
32 });
33
34 result.AssertSuccess();
35
36 var results = Query.QueryDatabase(msiPath, new[] { "Shortcut" });
37 WixAssert.CompareLineByLine(new[]
38 {
39 "Shortcut:sctzJpBYlrhdx4Mm9Xh41X0KPWYiX0\tINSTALLFOLDER\tDaName\tShortcutComp\t[#filcV1yrx0x8wJWj4qMzcH21jwkPko]\t\t\t\t\t\t\t\t\t\t\t",
40 }, results);
41 }
42 }
43
44 [Fact]
45 public void PopulatesMsiShortcutPropertyTable()
46 {
47 var folder = TestData.Get(@"TestData");
48
49 using (var fs = new DisposableFileSystem())
50 {
51 var baseFolder = fs.GetFolder();
52 var intermediateFolder = Path.Combine(baseFolder, "obj");
53 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
54
55 var result = WixRunner.Execute(new[]
56 {
57 "build",
58 Path.Combine(folder, "Shortcut", "ShortcutProperty.wxs"),
59 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
60 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
61 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
62 "-intermediateFolder", intermediateFolder,
63 "-o", msiPath
64 });
65
66 result.AssertSuccess();
67
68 Assert.True(File.Exists(msiPath));
69 var results = Query.QueryDatabase(msiPath, new[] { "MsiShortcutProperty", "Shortcut" });
70 WixAssert.CompareLineByLine(new[]
71 {
72 "MsiShortcutProperty:scp4GOCIx4Eskci4nBG1MV_vSUOZt4\tTheShortcut\tCustomShortcutKey\tCustomShortcutValue",
73 "Shortcut:TheShortcut\tINSTALLFOLDER\td\tShortcutComp\t[#filcV1yrx0x8wJWj4qMzcH21jwkPko]\t\t\t\t\t\t\t\t\t\t\t",
74 }, results);
75 }
76 }
77 }
78}
diff --git a/src/test/WixToolsetTest.CoreIntegration/SoftwareTagFixture.cs b/src/test/WixToolsetTest.CoreIntegration/SoftwareTagFixture.cs
deleted file mode 100644
index 15276b18..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/SoftwareTagFixture.cs
+++ /dev/null
@@ -1,100 +0,0 @@
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 System.Xml.Linq;
8 using WixBuildTools.TestSupport;
9 using WixToolset.Core.TestPackage;
10 using WixToolset.Data;
11 using Xunit;
12
13 public class SoftwareTagFixture
14 {
15 private static readonly XNamespace BurnManifestNamespace = "http://wixtoolset.org/schemas/v4/2008/Burn";
16 private static readonly XNamespace SwidTagNamespace = "http://standards.iso.org/iso/19770/-2/2009/schema.xsd";
17
18 [Fact]
19 public void CanBuildPackageWithTag()
20 {
21 var folder = TestData.Get(@"TestData\ProductTag");
22 var build = new Builder(folder, null, new[] { folder });
23
24 var results = build.BuildAndQuery(Build, "File", "SoftwareIdentificationTag");
25
26 var replacePackageCodeStart = results[2].IndexOf("\tmsi:package/") + "\tmsi:package/".Length;
27 var replacePackageCodeEnd = results[2].IndexOf("\t", replacePackageCodeStart);
28 results[2] = results[2].Substring(0, replacePackageCodeStart) + "???" + results[2].Substring(replacePackageCodeEnd);
29 WixAssert.CompareLineByLine(new[]
30 {
31 "File:filF5_pLhBuF5b4N9XEo52g_hUM5Lo\tfilF5_pLhBuF5b4N9XEo52g_hUM5Lo\texample.txt\t20\t\t\t512\t1",
32 "File:tagEYRYWwOt95punO7qPPAQ9p1GBpY\ttagEYRYWwOt95punO7qPPAQ9p1GBpY\trdcfonyt.swi|~TagTestPackage.swidtag\t449\t\t\t1\t2",
33 "SoftwareIdentificationTag:tagEYRYWwOt95punO7qPPAQ9p1GBpY\twixtoolset.org\tmsi:package/???\tmsi:upgrade/047730A5-30FE-4A62-A520-DA9381B8226A\t"
34 }, results.ToArray());
35 }
36
37 [Fact]
38 public void CanBuildBundleWithTag()
39 {
40 var testDataFolder = TestData.Get(@"TestData");
41
42 using (var fs = new DisposableFileSystem())
43 {
44 var baseFolder = fs.GetFolder();
45 var intermediateFolder = Path.Combine(baseFolder, "obj");
46
47 var result = WixRunner.Execute(new[]
48 {
49 "build",
50 Path.Combine(testDataFolder, "ProductTag", "PackageWithTag.wxs"),
51 Path.Combine(testDataFolder, "ProductTag", "PackageComponents.wxs"),
52 "-loc", Path.Combine(testDataFolder, "ProductTag", "Package.en-us.wxl"),
53 "-bindpath", Path.Combine(testDataFolder, "ProductTag"),
54 "-intermediateFolder", Path.Combine(intermediateFolder, "package"),
55 "-o", Path.Combine(baseFolder, "package", @"test.msi")
56 });
57
58 result.AssertSuccess();
59
60 result = WixRunner.Execute(new[]
61 {
62 "build",
63 Path.Combine(testDataFolder, "BundleTag", "BundleWithTag.wxs"),
64 "-bindpath", Path.Combine(testDataFolder, "BundleTag"),
65 "-bindpath", Path.Combine(baseFolder, "package"),
66 "-intermediateFolder", intermediateFolder,
67 "-o", Path.Combine(baseFolder, @"bin\test.exe")
68 });
69
70 result.AssertSuccess();
71
72 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.exe")));
73 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.wixpdb")));
74
75 using (var ouput = WixOutput.Read(Path.Combine(baseFolder, @"bin\test.wixpdb")))
76 {
77 var badata = ouput.GetDataStream("wix-burndata.xml");
78 var doc = XDocument.Load(badata);
79
80 var swidTag = doc.Root.Element(BurnManifestNamespace + "Registration").Element(BurnManifestNamespace + "SoftwareTag").Value;
81
82 var swidTagPath = Path.Combine(baseFolder, "test.swidtag");
83 File.WriteAllText(swidTagPath, swidTag);
84
85 var docTag = XDocument.Load(swidTagPath);
86 var title = docTag.Root.Attribute("name").Value;
87 var version = docTag.Root.Attribute("version").Value;
88 Assert.Equal("~TagTestBundle", title);
89 Assert.Equal("4.3.2.1", version);
90 }
91 }
92 }
93
94 private static void Build(string[] args)
95 {
96 var result = WixRunner.Execute(args)
97 .AssertSuccess();
98 }
99 }
100}
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/.Data/burn.exe b/src/test/WixToolsetTest.CoreIntegration/TestData/.Data/burn.exe
deleted file mode 100644
index 2a4f423f..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/.Data/burn.exe
+++ /dev/null
Binary files differ
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/AppId/Advertised.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/AppId/Advertised.wxs
deleted file mode 100644
index b34c547d..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/AppId/Advertised.wxs
+++ /dev/null
@@ -1,11 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <Component Id="AppIdComp" Directory="INSTALLFOLDER" Guid="171BEE79-43CC-4A28-892F-7EFAC696FA4B">
6 <File Id="AppIdComp.txt" Source="test.txt" Name="AppIdComp.txt"></File>
7 <AppId Id="D6040299-B15C-4C94-AE26-0C9B60D14C35" Advertise="yes" />
8 </Component>
9 </ComponentGroup>
10 </Fragment>
11</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/ComponentSearch.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/ComponentSearch.wxs
deleted file mode 100644
index 4dd701f0..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/ComponentSearch.wxs
+++ /dev/null
@@ -1,12 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <ComponentGroupRef Id="MinimalComponentGroup"></ComponentGroupRef>
6 </ComponentGroup>
7
8 <Property Id="SAMPLECOMPFOUND">
9 <ComponentSearch Id="SampleCompSearch" Guid="{4D9A0D20-D0CC-40DE-B580-EAD38B985217}"></ComponentSearch>
10 </Property>
11 </Fragment>
12</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/DecompiledNestedDirSearchUnderRegSearch.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/DecompiledNestedDirSearchUnderRegSearch.wxs
deleted file mode 100644
index 6b9fe013..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/DecompiledNestedDirSearchUnderRegSearch.wxs
+++ /dev/null
@@ -1,42 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Codepage="1252" Language="1033" Manufacturer="Example Corporation" Name="MsiPackage" UpgradeCode="{12E4699F-E774-4D05-8A01-5BDD41BBA127}" Version="1.0.0.0" ProductCode="{33C58183-7333-4257-AEFD-6705DA66E617}">
3 <StandardDirectory Id="ProgramFilesFolder">
4 <Directory Id="INSTALLFOLDER" Name="MsiPackage" ShortName="ykd0udtb">
5 <Component Id="test.txt" Guid="{E597A58A-03CB-50D8-93E3-DABA263F233A}" Bitness="always32">
6 <File Id="test.txt" Name="test.txt" KeyPath="yes" Source="MsiPackage\test.txt" />
7 </Component>
8 </Directory>
9 </StandardDirectory>
10 <Feature Id="ProductFeature" Level="1" Title="MsiPackageTitle">
11 <ComponentRef Id="test.txt" />
12 </Feature>
13 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
14 <Media Id="1" />
15 <Property Id="SAMPLEREGFOUND">
16 <RegistrySearch Id="RegSearch" Root="HKLM" Key="Reg" Type="raw" Bitness="always32" />
17 </Property>
18 <Property Id="NESTEDDIRFOUND">
19 <RegistrySearch Id="ARegKeySearch" Root="HKLM" Key="ARegKey" Type="raw" Bitness="always32">
20 <DirectorySearch Id="TopDirSearch" Path="TopDir">
21 <DirectorySearch Id="SecondDirSearch" Path="SecondDir">
22 <DirectorySearch Id="ThirdDirSearch" Path="ThirdDir">
23 <DirectorySearch Id="FourthDirSearch" Path="FourthDir" />
24 </DirectorySearch>
25 </DirectorySearch>
26 </DirectorySearch>
27 </RegistrySearch>
28 </Property>
29 <Property Id="SAMPLENESTEDDIRFOUND">
30 <RegistrySearch Id="NestedRegSearch" Root="HKLM" Key="NestedReg" Type="raw" Bitness="always32">
31 <DirectorySearch Id="SampleNestedDirSearch" Path="NestedDir" />
32 </RegistrySearch>
33 </Property>
34 <Property Id="SAMPLEDIRFOUND">
35 <RegistrySearch Id="SubRegSearch" Root="HKLM" Key="SampleReg" Type="raw" Bitness="always32">
36 <DirectorySearch Id="SampleDirSearch" Path="SampleDir">
37 <DirectorySearch Id="SubDirSearch" Path="Subdir" />
38 </DirectorySearch>
39 </RegistrySearch>
40 </Property>
41 </Package>
42</Wix> \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/DirectorySearch.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/DirectorySearch.wxs
deleted file mode 100644
index e255c83d..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/DirectorySearch.wxs
+++ /dev/null
@@ -1,12 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <ComponentGroupRef Id="MinimalComponentGroup"></ComponentGroupRef>
6 </ComponentGroup>
7
8 <Property Id="SAMPLEDIRFOUND">
9 <DirectorySearch Id="SampleDirSearch" AssignToProperty="yes" Path="C:\SampleDir"></DirectorySearch>
10 </Property>
11 </Fragment>
12</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/FileSearch.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/FileSearch.wxs
deleted file mode 100644
index c17d9848..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/FileSearch.wxs
+++ /dev/null
@@ -1,14 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <ComponentGroupRef Id="MinimalComponentGroup"></ComponentGroupRef>
6 </ComponentGroup>
7
8 <Property Id="SAMPLEFILEFOUND">
9 <IniFileSearch Id="SampleIniFileSearch" Name="sample.fil" Section="MySection" Key="MyKey">
10 <FileSearch Id="SampleFileSearch" Name="sample.fil"></FileSearch>
11 </IniFileSearch>
12 </Property>
13 </Fragment>
14</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/NestedDirSearchUnderRegSearch.msi b/src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/NestedDirSearchUnderRegSearch.msi
deleted file mode 100644
index ea1296c3..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/NestedDirSearchUnderRegSearch.msi
+++ /dev/null
Binary files differ
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/RegistrySearch.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/RegistrySearch.wxs
deleted file mode 100644
index f800264d..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/RegistrySearch.wxs
+++ /dev/null
@@ -1,12 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <ComponentGroupRef Id="MinimalComponentGroup"></ComponentGroupRef>
6 </ComponentGroup>
7
8 <Property Id="SAMPLEREGFOUND">
9 <RegistrySearch Id="SampleRegSearch" Root="HKLM" Key="SampleReg" Type="raw"></RegistrySearch>
10 </Property>
11 </Fragment>
12</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/RegistrySearch64.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/RegistrySearch64.wxs
deleted file mode 100644
index 8be5abb2..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/AppSearch/RegistrySearch64.wxs
+++ /dev/null
@@ -1,12 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <ComponentGroupRef Id="MinimalComponentGroup"></ComponentGroupRef>
6 </ComponentGroup>
7
8 <Property Id="SAMPLEREGFOUND">
9 <RegistrySearch Id="SampleRegSearch" Root="HKLM" Key="SampleReg" Type="raw" Bitness="always64"></RegistrySearch>
10 </Property>
11 </Fragment>
12</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Assembly/Package.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/Assembly/Package.en-us.wxl
deleted file mode 100644
index 38c12ac1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Assembly/Package.en-us.wxl
+++ /dev/null
@@ -1,11 +0,0 @@
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/Assembly/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Assembly/Package.wxs
deleted file mode 100644
index c345305d..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Assembly/Package.wxs
+++ /dev/null
@@ -1,17 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Name="AssemblyMsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
3
4
5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
6
7 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
8 <ComponentGroupRef Id="ProductComponents" />
9 </Feature>
10 </Package>
11
12 <Fragment>
13 <StandardDirectory Id="ProgramFilesFolder">
14 <Directory Id="INSTALLFOLDER" Name="AssemblyMsiPackage" />
15 </StandardDirectory>
16 </Fragment>
17</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Assembly/PackageComponents.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Assembly/PackageComponents.wxs
deleted file mode 100644
index e0c84c63..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Assembly/PackageComponents.wxs
+++ /dev/null
@@ -1,10 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
5 <Component>
6 <File Source="candle.exe" Assembly=".net" />
7 </Component>
8 </ComponentGroup>
9 </Fragment>
10</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Assembly/Win32Assembly.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Assembly/Win32Assembly.wxs
deleted file mode 100644
index 45cc7114..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Assembly/Win32Assembly.wxs
+++ /dev/null
@@ -1,13 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <Component Directory="INSTALLFOLDER">
6 <File Id="test.txt" Source="test.txt" Assembly="win32" AssemblyManifest="test.dll.manifest" />
7 </Component>
8 <Component Id="test.dll.manifest" Directory="INSTALLFOLDER">
9 <File Id="test.dll.manifest" Source="test.manifest" Name="test.dll.manifest"></File>
10 </Component>
11 </ComponentGroup>
12 </Fragment>
13</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Assembly/data/candle.exe b/src/test/WixToolsetTest.CoreIntegration/TestData/Assembly/data/candle.exe
deleted file mode 100644
index 18129b73..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Assembly/data/candle.exe
+++ /dev/null
Binary files differ
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Assembly/data/test.manifest b/src/test/WixToolsetTest.CoreIntegration/TestData/Assembly/data/test.manifest
deleted file mode 100644
index 0da1f6d0..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Assembly/data/test.manifest
+++ /dev/null
@@ -1,76 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
3 <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
4 <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
5 <security>
6 <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
7 <!-- UAC Manifest Options
8 If you want to change the Windows User Account Control level replace the
9 requestedExecutionLevel node with one of the following.
10
11 <requestedExecutionLevel level="asInvoker" uiAccess="false" />
12 <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
13 <requestedExecutionLevel level="highestAvailable" uiAccess="false" />
14
15 Specifying requestedExecutionLevel element will disable file and registry virtualization.
16 Remove this element if your application requires this virtualization for backwards
17 compatibility.
18 -->
19 <requestedExecutionLevel level="asInvoker" uiAccess="false" />
20 </requestedPrivileges>
21 </security>
22 </trustInfo>
23
24 <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
25 <application>
26 <!-- A list of the Windows versions that this application has been tested on
27 and is designed to work with. Uncomment the appropriate elements
28 and Windows will automatically select the most compatible environment. -->
29
30 <!-- Windows Vista -->
31 <!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
32
33 <!-- Windows 7 -->
34 <!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
35
36 <!-- Windows 8 -->
37 <!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
38
39 <!-- Windows 8.1 -->
40 <!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
41
42 <!-- Windows 10 -->
43 <!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
44
45 </application>
46 </compatibility>
47
48 <!-- Indicates that the application is DPI-aware and will not be automatically scaled by Windows at higher
49 DPIs. Windows Presentation Foundation (WPF) applications are automatically DPI-aware and do not need
50 to opt in. Windows Forms applications targeting .NET Framework 4.6 that opt into this setting, should
51 also set the 'EnableWindowsFormsHighDpiAutoResizing' setting to 'true' in their app.config. -->
52 <!--
53 <application xmlns="urn:schemas-microsoft-com:asm.v3">
54 <windowsSettings>
55 <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
56 </windowsSettings>
57 </application>
58 -->
59
60 <!-- Enable themes for Windows common controls and dialogs (Windows XP and later) -->
61 <!--
62 <dependency>
63 <dependentAssembly>
64 <assemblyIdentity
65 type="win32"
66 name="Microsoft.Windows.Common-Controls"
67 version="6.0.0.0"
68 processorArchitecture="*"
69 publicKeyToken="6595b64144ccf1df"
70 language="*"
71 />
72 </dependentAssembly>
73 </dependency>
74 -->
75
76</assembly>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/BadEnsureTable/BadEnsureTable.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/BadEnsureTable/BadEnsureTable.wxs
deleted file mode 100644
index 3caa20ff..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/BadEnsureTable/BadEnsureTable.wxs
+++ /dev/null
@@ -1,11 +0,0 @@
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">
6 <ComponentGroupRef Id="MinimalComponentGroup" />
7 </ComponentGroup>
8
9 <ex:ExampleEnsureTable />
10 </Fragment>
11</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/BadIf/Package.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/BadIf/Package.en-us.wxl
deleted file mode 100644
index 38c12ac1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/BadIf/Package.en-us.wxl
+++ /dev/null
@@ -1,11 +0,0 @@
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/BadIf/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/BadIf/Package.wxs
deleted file mode 100644
index 1d7ebb94..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/BadIf/Package.wxs
+++ /dev/null
@@ -1,24 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Name="MsiPackage" Language="1033" Version="1.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
3
4
5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
6
7 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
8 <ComponentGroupRef Id="ProductComponents.x86" />
9 <!-- <?if x64 == $(sys.BUILDARCH) ?> -->
10 <!-- <?if arm==$(sys.BUILDARCH) ?> -->
11 <?if $(sys.BUILDARCH) = "x64" ?>
12 <ComponentGroupRef Id="ProductComponents.x64" />
13 <ComponentGroupRef Id="ProductComponents.arm" />
14 </Feature>
15 </Package>
16
17 <Fragment>
18 <Directory Id="TARGETDIR" Name="SourceDir">
19 <Directory Id="ProgramFilesFolder">
20 <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
21 </Directory>
22 </Directory>
23 </Fragment>
24</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/BadIf/PackageComponents.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/BadIf/PackageComponents.wxs
deleted file mode 100644
index 2a75e3d7..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/BadIf/PackageComponents.wxs
+++ /dev/null
@@ -1,12 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <?foreach ComponentPlatform in x86;x64;arm ?>
4 <Fragment>
5 <ComponentGroup Id="ProductComponents.$(var.ComponentPlatform)" Directory="INSTALLFOLDER">
6 <Component>
7 <File Name="$(var.ComponentPlatform).dll" Source="test.txt" />
8 </Component>
9 </ComponentGroup>
10 </Fragment>
11 <?endforeach?>
12</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/BadIf/data/test.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/BadIf/data/test.txt
deleted file mode 100644
index cd0db0e1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/BadIf/data/test.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is test.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/BadInput/BundleVariable.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/BadInput/BundleVariable.wxs
deleted file mode 100644
index a2d49b18..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/BadInput/BundleVariable.wxs
+++ /dev/null
@@ -1,6 +0,0 @@
1<?xml version="1.0" encoding="utf-8" ?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <Variable Name="BadType" Type="doesnotexist" Value="dne" />
5 </Fragment>
6</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/BadInput/DuplicateCacheIds.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/BadInput/DuplicateCacheIds.wxs
deleted file mode 100644
index 0c350042..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/BadInput/DuplicateCacheIds.wxs
+++ /dev/null
@@ -1,12 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <PackageGroup Id="BundlePackages">
5 <ExePackage Id="Manual1" SourceFile="burn.exe" Name="manual1\burn.exe" DetectCondition="test" CacheId="!(wix.WixVariable1)" />
6 <ExePackage Id="Manual2" SourceFile="burn.exe" Name="manual2\burn.exe" DetectCondition="test" CacheId="!(wix.WixVariable2)" />
7 </PackageGroup>
8
9 <WixVariable Id="WixVariable1" Value="CollidingCacheId" />
10 <WixVariable Id="WixVariable2" Value="CollidingCacheId" />
11 </Fragment>
12</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/BadInput/DuplicatePayloadNames.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/BadInput/DuplicatePayloadNames.wxs
deleted file mode 100644
index 4fe7e097..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/BadInput/DuplicatePayloadNames.wxs
+++ /dev/null
@@ -1,31 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <PackageGroup Id="BundlePackages">
5 <ExePackage Id="Auto1" SourceFile="burn.exe" CacheId="Auto1" DetectCondition="none" />
6 <ExePackage Id="Auto2" SourceFile="burn.exe" CacheId="Auto2" DetectCondition="none" />
7 <ExePackage Id="DuplicateCacheIds.wxs" SourceFile="$(sys.SOURCEFILEDIR)DuplicateCacheIds.wxs" Compressed="no" DetectCondition="none" Name="PayloadCollision">
8 <Payload SourceFile="$(sys.SOURCEFILEDIR)BundleVariable.wxs" Compressed="no" Name="ContainerCollision" />
9 </ExePackage>
10 <ExePackage Id="HiddenPersistedBundleVariable.wxs" SourceFile="$(sys.SOURCEFILEDIR)HiddenPersistedBundleVariable.wxs" Compressed="no" DetectCondition="none" Name="PayloadCollision" />
11 <PackageGroupRef Id="MsiPackages" />
12 </PackageGroup>
13
14 <PackageGroup Id="MsiPackages">
15 <MsiPackage SourceFile="test.msi">
16 <Payload SourceFile="$(sys.SOURCEFILEDIR)InvalidIds.wxs" Name="MsiPackage\test.txt" />
17 <Payload SourceFile="$(sys.SOURCEFILEDIR)RegistryKey.wxs" Name="test.msi" />
18 </MsiPackage>
19 </PackageGroup>
20
21 <Container Id="MsiPackagesContainer" Type="detached" Name="ContainerCollision">
22 <PackageGroupRef Id="MsiPackages" />
23 </Container>
24
25 <BootstrapperApplication>
26 <Payload Id="DuplicatePayloadNames.wxs" SourceFile="$(sys.SOURCEFILEPATH)" Name="fakeba.dll" />
27 <Payload Id="UnscheduledPackage.wxs" SourceFile="$(sys.SOURCEFILEDIR)UnscheduledPackage.wxs" Name="BootstrapperApplicationData.xml" />
28 <Payload Id="UnscheduledRollbackBoundary.wxs" SourceFile="$(sys.SOURCEFILEDIR)UnscheduledRollbackBoundary.wxs" Name="BundleExtensionData.xml" />
29 </BootstrapperApplication>
30 </Fragment>
31</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/BadInput/HiddenPersistedBundleVariable.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/BadInput/HiddenPersistedBundleVariable.wxs
deleted file mode 100644
index 5ebe5472..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/BadInput/HiddenPersistedBundleVariable.wxs
+++ /dev/null
@@ -1,6 +0,0 @@
1<?xml version="1.0" encoding="utf-8" ?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <Variable Name="BadType" Hidden="yes" Persisted="yes" Value="dne" />
5 </Fragment>
6</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/BadInput/InvalidIds.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/BadInput/InvalidIds.wxs
deleted file mode 100644
index 78f3ebd3..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/BadInput/InvalidIds.wxs
+++ /dev/null
@@ -1,8 +0,0 @@
1<?xml version="1.0" encoding="utf-8" ?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <Component Id="@#$" Guid="{2F18F52A-9E24-4ebe-A5FC-974089AA03D2}" Directory="WixTestFolder">
5 <CreateFolder Directory="WixTestFolder" />
6 </Component>
7 </Fragment>
8</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/BadInput/RegistryKey.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/BadInput/RegistryKey.wxs
deleted file mode 100644
index c717680b..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/BadInput/RegistryKey.wxs
+++ /dev/null
@@ -1,13 +0,0 @@
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 Id="MiscComponent" Guid="7C40C257-AB36-4B8C-8FD1-C56E0AC4AAEF">
7 <RegistryKey>
8 <ex:Example />
9 </RegistryKey>
10 </Component>
11 </ComponentGroup>
12 </Fragment>
13</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/BadInput/UnscheduledPackage.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/BadInput/UnscheduledPackage.wxs
deleted file mode 100644
index fc53c4a2..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/BadInput/UnscheduledPackage.wxs
+++ /dev/null
@@ -1,16 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <PackageGroup Id="BundlePackages">
5 <ExePackage Id="Auto1" SourceFile="burn.exe" CacheId="Auto1" DetectCondition="none" />
6 <ExePackage Id="Auto2" SourceFile="burn.exe" CacheId="Auto2" DetectCondition="none" />
7 </PackageGroup>
8 <SetVariableRef Id="Dummy" />
9 </Fragment>
10 <Fragment>
11 <SetVariable Id="Dummy" Variable="Dummy" />
12 <PackageGroup Id="Unscheduled">
13 <ExePackage Id="Unscheduled1" SourceFile="burn.exe" CacheId="Unscheduled1" DetectCondition="none" />
14 </PackageGroup>
15 </Fragment>
16</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/BadInput/UnscheduledRollbackBoundary.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/BadInput/UnscheduledRollbackBoundary.wxs
deleted file mode 100644
index 6cf8528e..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/BadInput/UnscheduledRollbackBoundary.wxs
+++ /dev/null
@@ -1,16 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <PackageGroup Id="BundlePackages">
5 <ExePackage Id="Auto1" SourceFile="burn.exe" CacheId="Auto1" DetectCondition="none" />
6 <ExePackage Id="Auto2" SourceFile="burn.exe" CacheId="Auto2" DetectCondition="none" />
7 </PackageGroup>
8 <SetVariableRef Id="Dummy" />
9 </Fragment>
10 <Fragment>
11 <SetVariable Id="Dummy" Variable="Dummy" />
12 <PackageGroup Id="Unscheduled">
13 <RollbackBoundary Id="Unscheduled1" />
14 </PackageGroup>
15 </Fragment>
16</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/BindVariables/DefaultedVariable.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/BindVariables/DefaultedVariable.wxs
deleted file mode 100644
index c3528a67..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/BindVariables/DefaultedVariable.wxs
+++ /dev/null
@@ -1,6 +0,0 @@
1<?xml version="1.0" encoding="utf-8" ?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <Binary Id="Bound" SourceFile="!(wix.Test=data\test.txt)" />
5 </Fragment>
6</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/BindVariables/data/test.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/BindVariables/data/test.txt
deleted file mode 100644
index 3b862323..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/BindVariables/data/test.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is test.txt
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/BootstrapperApplication/DpiAwareness.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/BootstrapperApplication/DpiAwareness.wxs
deleted file mode 100644
index 5b41e807..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/BootstrapperApplication/DpiAwareness.wxs
+++ /dev/null
@@ -1,7 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Fragment>
3 <BootstrapperApplication Id="fakeba">
4 <BootstrapperApplicationDll SourceFile="$(sys.SOURCEFILEPATH)" DpiAwareness="gdiScaled" />
5 </BootstrapperApplication>
6 </Fragment>
7</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/BundleBindVariables/CacheIdFromPackageDescription.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/BundleBindVariables/CacheIdFromPackageDescription.wxs
deleted file mode 100644
index 7f5ea456..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/BundleBindVariables/CacheIdFromPackageDescription.wxs
+++ /dev/null
@@ -1,8 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <PackageGroup Id="BundlePackages">
5 <MsiPackage SourceFile="test.msi" CacheId="!(bind.packageDescription.test.msi)" />
6 </PackageGroup>
7 </Fragment>
8</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/BundleCustomTable/BundleCustomTable.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/BundleCustomTable/BundleCustomTable.wxs
deleted file mode 100644
index e52302d4..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/BundleCustomTable/BundleCustomTable.wxs
+++ /dev/null
@@ -1,53 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <PackageGroup Id="BundlePackages">
5 <PackageGroupRef Id="MinimalPackageGroup" />
6 </PackageGroup>
7
8 <BundleCustomData Id="BundleCustomTableBA">
9 <BundleAttributeDefinition Id="Id" />
10 <BundleAttributeDefinition Id="Column2" />
11
12 <BundleElement>
13 <BundleAttribute Id="Id" Value="one" />
14 <BundleAttribute Id="Column2" Value="two" />
15 </BundleElement>
16 <BundleElement>
17 <BundleAttribute Id="Column2" Value="&lt;" />
18 <BundleAttribute Id="Id" Value="&gt;" />
19 </BundleElement>
20 </BundleCustomData>
21
22 <BundleCustomData Id="BundleCustomTableBE" ExtensionId="CustomTableExtension">
23 <BundleAttributeDefinition Id="Id" />
24 <BundleAttributeDefinition Id="Column2" />
25 </BundleCustomData>
26 </Fragment>
27
28 <Fragment>
29 <BundleCustomDataRef Id="BundleCustomTableBA">
30 <BundleElement>
31 <BundleAttribute Id="Id" Value="1" />
32 <BundleAttribute Id="Column2" Value="2" />
33 </BundleElement>
34 </BundleCustomDataRef>
35
36 <BundleCustomDataRef Id="BundleCustomTableBE">
37 <BundleElement>
38 <BundleAttribute Id="Id" Value="one" />
39 <BundleAttribute Id="Column2" Value="two" />
40 </BundleElement>
41 <BundleElement>
42 <BundleAttribute Id="Column2" Value="&lt;" />
43 <BundleAttribute Id="Id" Value="&gt;" />
44 </BundleElement>
45 <BundleElement>
46 <BundleAttribute Id="Id" Value="1" />
47 <BundleAttribute Id="Column2" Value="2" />
48 </BundleElement>
49 </BundleCustomDataRef>
50
51 <BundleExtension Id="CustomTableExtension" SourceFile="fakeba.dll" Name="fakebext.dll" />
52 </Fragment>
53</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/BundleExtension/BundleExtension.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/BundleExtension/BundleExtension.wxs
deleted file mode 100644
index eefae822..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/BundleExtension/BundleExtension.wxs
+++ /dev/null
@@ -1,6 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <BundleExtension Id="ExampleBext" SourceFile="fakeba.dll" Name="fakebext.dll" />
5 </Fragment>
6</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/BundleExtension/BundleExtensionSearches.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/BundleExtension/BundleExtensionSearches.wxs
deleted file mode 100644
index fd8d3698..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/BundleExtension/BundleExtensionSearches.wxs
+++ /dev/null
@@ -1,8 +0,0 @@
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 <ex:ExampleSearch Id="ExampleSearchBar" Variable="SearchBar" Condition="WixBundleInstalled" SearchFor="Bar" />
6 <ex:ExampleSearch Id="ExampleSearchFoo" Variable="SearchFoo" SearchFor="Foo" />
7 </Fragment>
8</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/BundleExtension/BundleWithSearches.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/BundleExtension/BundleWithSearches.wxs
deleted file mode 100644
index c5a93eb3..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/BundleExtension/BundleWithSearches.wxs
+++ /dev/null
@@ -1,11 +0,0 @@
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 <PackageGroup Id="BundlePackages">
6 <PackageGroupRef Id="MinimalPackageGroup" />
7 </PackageGroup>
8
9 <ex:ExampleSearchRef Id="ExampleSearchFoo" />
10 </Fragment>
11</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/BundleExtension/SimpleBundleExtension.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/BundleExtension/SimpleBundleExtension.wxs
deleted file mode 100644
index 7303a05a..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/BundleExtension/SimpleBundleExtension.wxs
+++ /dev/null
@@ -1,10 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <PackageGroup Id="BundlePackages">
5 <PackageGroupRef Id="MinimalPackageGroup" />
6 </PackageGroup>
7
8 <BundleExtensionRef Id="ExampleBext" />
9 </Fragment>
10</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/BundleTag/BundleWithTag.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/BundleTag/BundleWithTag.wxs
deleted file mode 100644
index f44fb7bc..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/BundleTag/BundleWithTag.wxs
+++ /dev/null
@@ -1,15 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" >
2 <Bundle Name="~TagTestBundle" Version="4.3.2.1" Manufacturer="Example Corporation" UpgradeCode="047730A5-30FE-4A62-A520-DA9381B8226A">
3 <BootstrapperApplication>
4 <BootstrapperApplicationDll SourceFile="fakeba.dll" />
5 </BootstrapperApplication>
6
7 <SoftwareTag Regid="wixtoolset.org" InstallPath="[ProgramFiles6432Folder]\Test\swidtag" />
8
9 <Chain>
10 <MsiPackage SourceFile="test.msi">
11 <MsiProperty Name="TEST" Value="1" />
12 </MsiPackage>
13 </Chain>
14 </Bundle>
15</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/BundleTag/fakeba.dll b/src/test/WixToolsetTest.CoreIntegration/TestData/BundleTag/fakeba.dll
deleted file mode 100644
index 64061ea0..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/BundleTag/fakeba.dll
+++ /dev/null
@@ -1 +0,0 @@
1This is fakeba.dll. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/BundleWithApprovedExe/Bundle.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/BundleWithApprovedExe/Bundle.wxs
deleted file mode 100644
index 78e754c1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/BundleWithApprovedExe/Bundle.wxs
+++ /dev/null
@@ -1,5 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Bundle Name="BurnBundle" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="B94478B1-E1F3-4700-9CE8-6AA090854AEC">
3 <ApprovedExeForElevation Id="TestExe" Key="WixToolset\BurnTesting" Value="Test" Bitness="always32" />
4 </Bundle>
5</Wix> \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/BundleWithApprovedExe/Bundle64.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/BundleWithApprovedExe/Bundle64.wxs
deleted file mode 100644
index 18cdfd32..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/BundleWithApprovedExe/Bundle64.wxs
+++ /dev/null
@@ -1,5 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Bundle Name="BurnBundle64" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="B94478B1-E1F3-4700-9CE8-6AA090854AEC">
3 <ApprovedExeForElevation Id="TestExe" Key="WixToolset\BurnTesting" Value="Test" Bitness="always64" />
4 </Bundle>
5</Wix> \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/BundleWithDetachedContainer/Bundle.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/BundleWithDetachedContainer/Bundle.wxs
deleted file mode 100644
index a93b23ef..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/BundleWithDetachedContainer/Bundle.wxs
+++ /dev/null
@@ -1,10 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Fragment>
3 <PackageGroup Id="BundlePackages">
4 <PackageGroupRef Id="MinimalPackageGroup"/>
5 </PackageGroup>
6 <Container Id="_1" Type="detached">
7 <PackageGroupRef Id="MinimalPackageGroup"/>
8 </Container>
9 </Fragment>
10</Wix> \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/BundleWithPackageGroupRef/Bundle.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/BundleWithPackageGroupRef/Bundle.wxs
deleted file mode 100644
index e738b407..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/BundleWithPackageGroupRef/Bundle.wxs
+++ /dev/null
@@ -1,10 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Bundle Name="BurnBundle" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="B94478B1-E1F3-4700-9CE8-6AA090854AEC">
3 <BootstrapperApplication>
4 <BootstrapperApplicationDll SourceFile="fakeba.dll" />
5 </BootstrapperApplication>
6 <Chain>
7 <PackageGroupRef Id="BundlePackages" />
8 </Chain>
9 </Bundle>
10</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/BundleWithPackageGroupRef/MinimalPackageGroup.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/BundleWithPackageGroupRef/MinimalPackageGroup.wxs
deleted file mode 100644
index b0bde4f6..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/BundleWithPackageGroupRef/MinimalPackageGroup.wxs
+++ /dev/null
@@ -1,8 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <PackageGroup Id="MinimalPackageGroup">
5 <MsiPackage SourceFile="test.msi" />
6 </PackageGroup>
7 </Fragment>
8</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Class/DecompiledOldClassTableDef.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Class/DecompiledOldClassTableDef.wxs
deleted file mode 100644
index 514f9243..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Class/DecompiledOldClassTableDef.wxs
+++ /dev/null
@@ -1,22 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Codepage="1252" Language="1033" Manufacturer="Example Corporation" Name="MsiPackage" UpgradeCode="{12E4699F-E774-4D05-8A01-5BDD41BBA127}" Version="1.0.0.0" ProductCode="{FE17A505-11A9-44D2-8D94-EB6BEAB8FF93}">
3 <StandardDirectory Id="ProgramFilesFolder">
4 <Directory Id="INSTALLFOLDER" Name="MsiPackage" ShortName="oekcr5lq">
5 <Component Id="ProgIdComp" Guid="{5B3B3FC1-533D-4C29-BFB3-0E88B51E59D8}" Bitness="always32">
6 <Class Id="{F12A6F69-117F-471F-AE73-F8E74218F498}" Context="LocalServer32" Description="FakeClassF12A" Advertise="yes">
7 <ProgId Id="73E7DF7E-EFAC-4E11-90E2-6EBAEB8DE58D" Description="FakeClassF12A" Advertise="yes" />
8 </Class>
9 <File Id="filTki4JQ2gSapF7wK4K1vd.4mDSFQ" Name="ProgIdComp.txt" KeyPath="yes" ShortName="bnvvntsc.txt" Source="MsiPackage\ProgIdComp.txt" />
10 <RegistryValue Id="regUIIK326nDZpkWHuexeF58EikQvA" Root="HKCR" Key="73E7DF7E-EFAC-4E11-90E2-6EBAEB8DE58D" Name="NoOpen" Value="NoOpen73E7" Type="string" />
11 <RegistryValue Id="regY1F4E2lvu_Up6gV6c3jeN5ukn8s" Root="HKCR" Key="CLSID\{F12A6F69-117F-471F-AE73-F8E74218F498}\LocalServer32" Name="ThreadingModel" Value="Apartment" Type="string" />
12 <RegistryValue Id="regvrhMurMp98anbQJkpgA8yJCefdM" Root="HKCR" Key="CLSID\{F12A6F69-117F-471F-AE73-F8E74218F498}\Version" Value="0.0.0.1" Type="string" />
13 </Component>
14 </Directory>
15 </StandardDirectory>
16 <Feature Id="ProductFeature" Level="1" Title="MsiPackageTitle">
17 <ComponentRef Id="ProgIdComp" Primary="yes" />
18 </Feature>
19 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
20 <Media Id="1" />
21 </Package>
22</Wix> \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Class/IconIndex0.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Class/IconIndex0.wxs
deleted file mode 100644
index c0dc9bc0..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Class/IconIndex0.wxs
+++ /dev/null
@@ -1,11 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <Component Id="ClassComp" Directory="INSTALLFOLDER" Guid="9BFDA7DC-CA16-40B3-A6B5-961E60B30892">
6 <File Source="test.txt" Name="ClassComp.txt"></File>
7 <Class Id="3FAED4CC-C473-4B8A-BE8B-303871377A4A" Advertise="yes" Context="LocalServer32" Description="FakeClass3FAE" ThreadingModel="apartment" Version="0.0.0.1" Icon="SampleIcon" IconIndex="0" />
8 </Component>
9 </ComponentGroup>
10 </Fragment>
11</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Class/OldClassTableDef.msi b/src/test/WixToolsetTest.CoreIntegration/TestData/Class/OldClassTableDef.msi
deleted file mode 100644
index 2cd10f09..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Class/OldClassTableDef.msi
+++ /dev/null
Binary files differ
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ComplexExampleExtension/OtherComponents.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/ComplexExampleExtension/OtherComponents.wxs
deleted file mode 100644
index 15a9a0ce..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ComplexExampleExtension/OtherComponents.wxs
+++ /dev/null
@@ -1,12 +0,0 @@
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="OtherComponents" Directory="INSTALLFOLDER">
6 <Component>
7 <File Source="other.txt" />
8 <ex:Example Id="Other" Value="Value" />
9 </Component>
10 </ComponentGroup>
11 </Fragment>
12</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ComplexExampleExtension/Package.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/ComplexExampleExtension/Package.en-us.wxl
deleted file mode 100644
index 38c12ac1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ComplexExampleExtension/Package.en-us.wxl
+++ /dev/null
@@ -1,11 +0,0 @@
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/ComplexExampleExtension/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/ComplexExampleExtension/Package.wxs
deleted file mode 100644
index db07af2c..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ComplexExampleExtension/Package.wxs
+++ /dev/null
@@ -1,22 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
3
4
5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
6
7 <Property Id="ExampleProperty" Value="$(ex.Test)" />
8
9 <PropertyRef Id="PropertyFromExampleWir" />
10
11 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
12 <ComponentGroupRef Id="ProductComponents" />
13 <ComponentGroupRef Id="OtherComponents" />
14 </Feature>
15 </Package>
16
17 <Fragment>
18 <StandardDirectory Id="ProgramFilesFolder">
19 <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
20 </StandardDirectory>
21 </Fragment>
22</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ComplexExampleExtension/PackageComponents.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/ComplexExampleExtension/PackageComponents.wxs
deleted file mode 100644
index 7f17b538..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ComplexExampleExtension/PackageComponents.wxs
+++ /dev/null
@@ -1,12 +0,0 @@
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/ComplexExampleExtension/data/example.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/ComplexExampleExtension/data/example.txt
deleted file mode 100644
index 1b4ffe8a..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ComplexExampleExtension/data/example.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is example.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ComplexExampleExtension/data/other.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/ComplexExampleExtension/data/other.txt
deleted file mode 100644
index 8c874ae7..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ComplexExampleExtension/data/other.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is other.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Component/GuidCollision.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Component/GuidCollision.wxs
deleted file mode 100644
index a0e921cb..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Component/GuidCollision.wxs
+++ /dev/null
@@ -1,14 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
5 <Component Guid="5917d193-7b5f-4d5d-bc2e-06aa210699cb">
6 <RegistryValue Root="HKLM" Key="SOFTWARE\WixToolset" Name="Test" Value="test value" />
7 </Component>
8
9 <Component Guid="5917d193-7b5f-4d5d-bc2e-06aa210699cb">
10 <File Source="test.txt" />
11 </Component>
12 </ComponentGroup>
13 </Fragment>
14</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Components/Package.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/Components/Package.en-us.wxl
deleted file mode 100644
index 38c12ac1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Components/Package.en-us.wxl
+++ /dev/null
@@ -1,11 +0,0 @@
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/Components/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Components/Package.wxs
deleted file mode 100644
index d7b5bdc0..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Components/Package.wxs
+++ /dev/null
@@ -1,17 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Name="MsiPackage" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
3
4
5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
6
7 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
8 <ComponentGroupRef Id="ProductComponents" />
9 </Feature>
10 </Package>
11
12 <Fragment>
13 <StandardDirectory Id="ProgramFilesFolder">
14 <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
15 </StandardDirectory>
16 </Fragment>
17</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Components/PackageComponents.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Components/PackageComponents.wxs
deleted file mode 100644
index beaf70bf..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Components/PackageComponents.wxs
+++ /dev/null
@@ -1,10 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
5 <Component Id="NullKeypathComponent" Guid="{C493379B-D655-4331-8F03-B618C70EA779}" KeyPath="yes">
6 <File Source="test.txt" />
7 </Component>
8 </ComponentGroup>
9 </Fragment>
10</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Components/data/test.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/Components/data/test.txt
deleted file mode 100644
index cd0db0e1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Components/data/test.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is test.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Container/HarvestIntoDetachedContainer.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Container/HarvestIntoDetachedContainer.wxs
deleted file mode 100644
index e175a18f..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Container/HarvestIntoDetachedContainer.wxs
+++ /dev/null
@@ -1,15 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <PackageGroup Id="BundlePackages">
5 <MsiPackage SourceFile="FirstX86.msi" />
6 <PackageGroupRef Id="FirstX64" />
7 </PackageGroup>
8 <PackageGroup Id="FirstX64">
9 <MsiPackage SourceFile="FirstX64.msi" />
10 </PackageGroup>
11 <Container Id="FirstX64" Name="FirstX64" Type="detached">
12 <PackageGroupRef Id="FirstX64" />
13 </Container>
14 </Fragment>
15</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Container/MultipleAttachedContainers.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Container/MultipleAttachedContainers.wxs
deleted file mode 100644
index 28900e55..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Container/MultipleAttachedContainers.wxs
+++ /dev/null
@@ -1,15 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <PackageGroup Id="BundlePackages">
5 <MsiPackage SourceFile="FirstX86.msi" />
6 <PackageGroupRef Id="FirstX64" />
7 </PackageGroup>
8 <PackageGroup Id="FirstX64">
9 <MsiPackage SourceFile="FirstX64.msi" />
10 </PackageGroup>
11 <Container Id="FirstX64" Name="FirstX64" Type="attached">
12 <PackageGroupRef Id="FirstX64" />
13 </Container>
14 </Fragment>
15</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/CopyFile/CopyFile.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/CopyFile/CopyFile.wxs
deleted file mode 100644
index 90d66cc3..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/CopyFile/CopyFile.wxs
+++ /dev/null
@@ -1,17 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <Component Id="CopyFileComp" Directory="INSTALLFOLDER">
6 <File Id="test.txt" Source="test.txt" />
7 <CopyFile Id="MoveText" Delete="yes" SourceName="*.txt" DestinationDirectory="OtherFolder"/>
8 </Component>
9 </ComponentGroup>
10 </Fragment>
11
12 <Fragment>
13 <DirectoryRef Id="INSTALLFOLDER">
14 <Directory Id="OtherFolder" Name="other" />
15 </DirectoryRef>
16 </Fragment>
17</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomAction/CustomActionCycle.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomAction/CustomActionCycle.wxs
deleted file mode 100644
index be991c65..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomAction/CustomActionCycle.wxs
+++ /dev/null
@@ -1,18 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Fragment>
3 <ComponentGroup Id="ProductComponents">
4 <ComponentGroupRef Id="MinimalComponentGroup" />
5 </ComponentGroup>
6
7 <Binary Id="Binary1" SourceFile="test.txt" />
8 <CustomAction Id="Action1" DllEntry="EntryPoint1" BinaryRef="Binary1" />
9 <CustomAction Id="Action2" DllEntry="EntryPoint2" BinaryRef="Binary1" />
10 <CustomAction Id="Action3" DllEntry="EntryPoint3" BinaryRef="Binary1" />
11
12 <InstallExecuteSequence>
13 <Custom Action="Action1" After="Action2" />
14 <Custom Action="Action2" After="Action3" />
15 <Custom Action="Action3" After="Action1" />
16 </InstallExecuteSequence>
17 </Fragment>
18</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomAction/CustomActionCycleWithTail.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomAction/CustomActionCycleWithTail.wxs
deleted file mode 100644
index c64ef143..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomAction/CustomActionCycleWithTail.wxs
+++ /dev/null
@@ -1,20 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Fragment>
3 <ComponentGroup Id="ProductComponents">
4 <ComponentGroupRef Id="MinimalComponentGroup" />
5 </ComponentGroup>
6
7 <Binary Id="Binary1" SourceFile="test.txt" />
8 <CustomAction Id="Action1" DllEntry="EntryPoint1" BinaryRef="Binary1" />
9 <CustomAction Id="Action2" DllEntry="EntryPoint2" BinaryRef="Binary1" />
10 <CustomAction Id="Action3" DllEntry="EntryPoint3" BinaryRef="Binary1" />
11 <CustomAction Id="Action4" DllEntry="EntryPoint4" BinaryRef="Binary1" />
12
13 <InstallExecuteSequence>
14 <Custom Action="Action1" After="Action2" />
15 <Custom Action="Action2" After="Action3" />
16 <Custom Action="Action3" After="Action4" />
17 <Custom Action="Action4" After="Action2" />
18 </InstallExecuteSequence>
19 </Fragment>
20</Wix> \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomAction/SimpleCustomAction.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomAction/SimpleCustomAction.wxs
deleted file mode 100644
index ff8741cf..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomAction/SimpleCustomAction.wxs
+++ /dev/null
@@ -1,14 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Fragment>
3 <ComponentGroup Id="ProductComponents">
4 <ComponentGroupRef Id="MinimalComponentGroup" />
5 </ComponentGroup>
6
7 <Binary Id="Binary1" SourceFile="test.txt" />
8 <CustomAction Id="Action1" DllEntry="EntryPoint1" BinaryRef="Binary1" />
9
10 <InstallExecuteSequence>
11 <Custom Action="Action1" After="InstallFiles" />
12 </InstallExecuteSequence>
13 </Fragment>
14</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomAction/UnscheduledCustomAction.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomAction/UnscheduledCustomAction.wxs
deleted file mode 100644
index f8ce1c38..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomAction/UnscheduledCustomAction.wxs
+++ /dev/null
@@ -1,32 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Fragment>
3 <ComponentGroup Id="ProductComponents">
4 <ComponentGroupRef Id="MinimalComponentGroup" />
5 </ComponentGroup>
6
7 <Binary Id="Binary1" SourceFile="test.txt" />
8 <CustomAction Id="CustomAction1" DllEntry="InvalidEntryPoint" BinaryRef="Binary1" />
9 <CustomAction Id="DiscardOptimismAllBeingsWhoProceed" Error="Abandon hope all ye who enter here." />
10 <CustomAction Id="CustomActionWithHiddenTarget" DllEntry="InvalidEntryPoint" Execute="deferred" HideTarget="yes" BinaryRef="Binary1" />
11 <CustomAction Id="CustomAction2" Property="TestAdvtExecuteSequenceProperty" Value="1" />
12 <AdminExecuteSequence>
13 <Custom Action="CustomAction2" After="CostInitialize" />
14 </AdminExecuteSequence>
15 <AdminUISequence>
16 <Custom Action="CustomAction2" After="CostInitialize" />
17 </AdminUISequence>
18 <AdvertiseExecuteSequence>
19 <Custom Action="CustomAction2" After="CostInitialize" />
20 </AdvertiseExecuteSequence>
21 <InstallExecuteSequence>
22 <Custom Action="CustomAction2" After="CostInitialize" />
23 </InstallExecuteSequence>
24 <InstallUISequence>
25 <Custom Action="CustomAction2" After="CostInitialize" />
26 </InstallUISequence>
27
28 <UI>
29 <ProgressText Action="CustomAction2" Message="Progess2Text" />
30 </UI>
31 </Fragment>
32</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomPackageDescription/CustomPackageDescription.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomPackageDescription/CustomPackageDescription.wxs
deleted file mode 100644
index 10c4f91f..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomPackageDescription/CustomPackageDescription.wxs
+++ /dev/null
@@ -1,12 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <PackageGroup Id="BundlePackages">
5 <ExePackage DetectCondition="ForTestPurposesOnly" SourceFile="burn.exe" Permanent="yes" />
6 <ExePackage Id="RemotePayloadExe" DetectCondition="ForTestPurposesOnly" Description="Override RemotePayload description" DisplayName="Override RemotePayload display name" Permanent="yes">
7 <ExePackagePayload Description="RemotePayload description" Hash="a" ProductName="RemotePayload product name" Size="1" Version="1.0.0.0" Name="fake.exe" DownloadUrl="example.com" />
8 </ExePackage>
9 <ExePackage DetectCondition="ForTestPurposesOnly" SourceFile="C:\Windows\system32\calc.exe" Permanent="yes" Description="Override harvested description" DisplayName="Override harvested display name" />
10 </PackageGroup>
11 </Fragment>
12</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable-Expected.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable-Expected.wxs
deleted file mode 100644
index d7d86008..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable-Expected.wxs
+++ /dev/null
@@ -1,29 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Codepage="1252" Language="1033" Manufacturer="Example Corporation" Name="MsiPackage" UpgradeCode="{12E4699F-E774-4D05-8A01-5BDD41BBA127}" Version="1.0.0.0" ProductCode="{83F9C623-26FE-42AB-951E-170022117F54}">
3 <CustomTable Id="CustomTable1">
4 <Column Id="Column1" PrimaryKey="yes" Type="string" Width="0" Category="text" Description="The first custom column." />
5 <Column Id="Component_" Type="string" Width="72" KeyTable="Component" KeyColumn="1" Description="The custom table's Component reference" />
6 <Row>
7 <Data Column="Column1" Value="Row1" />
8 <Data Column="Component_" Value="test.txt" />
9 </Row>
10 <Row>
11 <Data Column="Column1" Value="Row2" />
12 <Data Column="Component_" Value="test.txt" />
13 </Row>
14 </CustomTable>
15 <StandardDirectory Id="ProgramFiles6432Folder">
16 <Directory Id="INSTALLFOLDER" Name="MsiPackage" ShortName="1egc1laj">
17 <Component Id="filcV1yrx0x8wJWj4qMzcH21jwkPko" Guid="{E597A58A-03CB-50D8-93E3-DABA263F233A}" Bitness="always32">
18 <File Id="filcV1yrx0x8wJWj4qMzcH21jwkPko" Name="test.txt" KeyPath="yes" Source="MsiPackage\test.txt" />
19 </Component>
20 </Directory>
21 </StandardDirectory>
22 <StandardDirectory Id="ProgramFilesFolder" />
23 <Feature Id="ProductFeature" Level="1" Title="MsiPackageTitle">
24 <ComponentRef Id="filcV1yrx0x8wJWj4qMzcH21jwkPko" />
25 </Feature>
26 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
27 <Media Id="1" />
28 </Package>
29</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable.wxs
deleted file mode 100644
index d32e808c..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable.wxs
+++ /dev/null
@@ -1,34 +0,0 @@
1<?xml version="1.0" encoding="utf-8" ?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <ComponentGroupRef Id="MinimalComponentGroup" />
6 </ComponentGroup>
7
8 <CustomTable Id="CustomTable1">
9 <Column Id="Column1" Type="string" PrimaryKey="yes" Category="text" Modularize="column" Description="The first custom column." />
10 <Column Id="Component_" Type="string" Width="72" KeyTable="Component" KeyColumn="1" Description="The custom table's Component reference" Modularize="column" />
11 <Row>
12 <Data Column="Column1" Value="Row1" />
13 <Data Column="Component_" Value="test.txt" />
14 </Row>
15 <Row>
16 <Data Column="Column1" Value="Row2" />
17 <Data Column="Component_" Value="test.txt" />
18 </Row>
19 </CustomTable>
20
21 <CustomTable Id="CustomTable2" Unreal="yes">
22 <Column Id="ColumnA" Type="string" PrimaryKey="yes" />
23 <Column Id="Component_" Type="string" Width="72" KeyTable="Component" KeyColumn="1" Modularize="column" />
24 <Row>
25 <Data Column="ColumnA" Value="RowA" />
26 <Data Column="Component_" Value="test.txt" />
27 </Row>
28 <Row>
29 <Data Column="ColumnA" Value="RowB" />
30 <Data Column="Component_" Value="test.txt" />
31 </Row>
32 </CustomTable>
33 </Fragment>
34</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTableWithFile.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTableWithFile.wxs
deleted file mode 100644
index 08a9c470..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTableWithFile.wxs
+++ /dev/null
@@ -1,22 +0,0 @@
1<?xml version="1.0" encoding="utf-8" ?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <ComponentGroupRef Id="MinimalComponentGroup" />
6 </ComponentGroup>
7
8 <CustomTable Id="CustomTableWithFile">
9 <Column Id="Column1" Type="string" PrimaryKey="yes" />
10 <Column Id="Source" Type="binary" Width="0" />
11 <Row>
12 <Data Column="Column1" Value="Row1" />
13 <Data Column="Source" Value="file1.txt" />
14 </Row>
15 <Row>
16 <Data Column="Source" Value="SourceDir\file2.txt" />
17 <Data Column="Column1" Value="Row2" />
18 </Row>
19 </CustomTable>
20
21 </Fragment>
22</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/LocalizedCustomTable.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/LocalizedCustomTable.en-us.wxl
deleted file mode 100644
index bc2ccf04..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/LocalizedCustomTable.en-us.wxl
+++ /dev/null
@@ -1,7 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<WixLocalization xmlns="http://wixtoolset.org/schemas/v4/wxl" Culture="en-US">
3
4 <String Id="Loc1">This is row one</String>
5 <String Id="Loc2">This is row two</String>
6
7</WixLocalization>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/LocalizedCustomTable.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/LocalizedCustomTable.wxs
deleted file mode 100644
index e1da74f8..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/LocalizedCustomTable.wxs
+++ /dev/null
@@ -1,21 +0,0 @@
1<?xml version="1.0" encoding="utf-8" ?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <ComponentGroupRef Id="MinimalComponentGroup" />
6 </ComponentGroup>
7
8 <CustomTable Id="CustomTableLocalized">
9 <Column Id="Column1" Type="string" PrimaryKey="yes" />
10 <Column Id="DataColumn" Type="string" Localizable="yes" Width="255" />
11 <Row>
12 <Data Column="Column1" Value="Row1" />
13 <Data Column="DataColumn" Value="!(loc.Loc1)" />
14 </Row>
15 <Row>
16 <Data Column="Column1" Value="Row2" />
17 <Data Column="DataColumn" Value="!(loc.Loc2)" />
18 </Row>
19 </CustomTable>
20 </Fragment>
21</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/data/file1.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/data/file1.txt
deleted file mode 100644
index 97f701ce..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/data/file1.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is file1.txt \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/data/file2.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/data/file2.txt
deleted file mode 100644
index 46493186..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/data/file2.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is file2.txt \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/data/test.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/data/test.txt
deleted file mode 100644
index cd0db0e1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/data/test.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is test.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileNullComponent/Expected.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileNullComponent/Expected.wxs
deleted file mode 100644
index 71553e2a..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileNullComponent/Expected.wxs
+++ /dev/null
@@ -1,16 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Codepage="65001" Language="1033" Manufacturer="Example Corporation" Name="MsiPackage" UpgradeCode="{047730A5-30FE-4A62-A520-DA9381B8226A}" Version="1.0.0.0" Compressed="yes" InstallerVersion="200" ProductCode="{6F9B5694-F0F1-437C-919B-0D2DAF2D9DEA}">
3 <StandardDirectory Id="ProgramFilesFolder">
4 <Directory Id="INSTALLFOLDER" Name="MsiPackage" ShortName="oekcr5lq">
5 <Component Id="filcV1yrx0x8wJWj4qMzcH21jwkPko" Guid="" Bitness="always32">
6 <File Id="filcV1yrx0x8wJWj4qMzcH21jwkPko" Name="test.txt" KeyPath="yes" Source="SourceDir\File\filcV1yrx0x8wJWj4qMzcH21jwkPko" />
7 </Component>
8 </Directory>
9 </StandardDirectory>
10 <Feature Id="ProductFeature" Level="1" Title="MsiPackage">
11 <ComponentRef Id="filcV1yrx0x8wJWj4qMzcH21jwkPko" />
12 </Feature>
13 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
14 <Media Id="1" Cabinet="example.cab" />
15 </Package>
16</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileNullComponent/example.cab b/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileNullComponent/example.cab
deleted file mode 100644
index 125eeb2c..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileNullComponent/example.cab
+++ /dev/null
Binary files differ
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileNullComponent/example.msi b/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileNullComponent/example.msi
deleted file mode 100644
index 81335041..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileNullComponent/example.msi
+++ /dev/null
Binary files differ
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed/Expected.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed/Expected.wxs
deleted file mode 100644
index 246bcafc..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed/Expected.wxs
+++ /dev/null
@@ -1,16 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Codepage="65001" Language="1033" Manufacturer="Example Corporation" Name="MsiPackage" UpgradeCode="{047730A5-30FE-4A62-A520-DA9381B8226A}" Version="1.0.0.0" Compressed="yes" InstallerVersion="200" ProductCode="{6F9B5694-F0F1-437C-919B-0D2DAF2D9DEA}">
3 <StandardDirectory Id="ProgramFilesFolder">
4 <Directory Id="INSTALLFOLDER" Name="MsiPackage" ShortName="oekcr5lq">
5 <Component Id="filcV1yrx0x8wJWj4qMzcH21jwkPko" Guid="{E597A58A-03CB-50D8-93E3-DABA263F233A}" Bitness="always32">
6 <File Id="filcV1yrx0x8wJWj4qMzcH21jwkPko" Name="test.txt" KeyPath="yes" Source="SourceDir\File\filcV1yrx0x8wJWj4qMzcH21jwkPko" />
7 </Component>
8 </Directory>
9 </StandardDirectory>
10 <Feature Id="ProductFeature" Level="1" Title="MsiPackage">
11 <ComponentRef Id="filcV1yrx0x8wJWj4qMzcH21jwkPko" />
12 </Feature>
13 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
14 <Media Id="1" Cabinet="example.cab" />
15 </Package>
16</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed/example.cab b/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed/example.cab
deleted file mode 100644
index 125eeb2c..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed/example.cab
+++ /dev/null
Binary files differ
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed/example.msi b/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed/example.msi
deleted file mode 100644
index 9cb6d6bc..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed/example.msi
+++ /dev/null
Binary files differ
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed64/Expected.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed64/Expected.wxs
deleted file mode 100644
index 81915759..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed64/Expected.wxs
+++ /dev/null
@@ -1,16 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Codepage="65001" Language="1033" Manufacturer="Example Corporation" Name="MsiPackage" UpgradeCode="{047730A5-30FE-4A62-A520-DA9381B8226A}" Version="1.0.0.0" Compressed="yes" ProductCode="{C51B773A-B3BE-4F29-A8A9-549AAF7FF6EC}">
3 <StandardDirectory Id="ProgramFiles64Folder">
4 <Directory Id="INSTALLFOLDER" Name="MsiPackage" ShortName="oekcr5lq">
5 <Component Id="filcV1yrx0x8wJWj4qMzcH21jwkPko" Guid="{E597A58A-03CB-50D8-93E3-DABA263F233A}" Bitness="always64">
6 <File Id="filcV1yrx0x8wJWj4qMzcH21jwkPko" Name="test.txt" KeyPath="yes" Source="SourceDir\File\filcV1yrx0x8wJWj4qMzcH21jwkPko" />
7 </Component>
8 </Directory>
9 </StandardDirectory>
10 <Feature Id="ProductFeature" Level="1" Title="MsiPackage">
11 <ComponentRef Id="filcV1yrx0x8wJWj4qMzcH21jwkPko" />
12 </Feature>
13 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
14 <Media Id="1" Cabinet="example.cab" />
15 </Package>
16</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed64/example.cab b/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed64/example.cab
deleted file mode 100644
index 125eeb2c..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed64/example.cab
+++ /dev/null
Binary files differ
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed64/example.msi b/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed64/example.msi
deleted file mode 100644
index 762b136c..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileSingleFileCompressed64/example.msi
+++ /dev/null
Binary files differ
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileTargetDirMergeModule/Expected.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileTargetDirMergeModule/Expected.wxs
deleted file mode 100644
index 7c5fe3cf..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileTargetDirMergeModule/Expected.wxs
+++ /dev/null
@@ -1,18 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Module Id="MergeModule1" Language="1033" Version="1.0.0.0" InstallerVersion="200">
4 <Directory Id="MergeRedirectFolder">
5 <Component Id="ModuleComponent2" Guid="{BB222EE8-229B-4051-9443-49E348F0CC77}" Bitness="always32">
6 <File Id="File2" ShortName="sfmxqeab.wxs" Name="MergeModule.wxs" KeyPath="yes" Source="SourceDir\File\File2.F844F0E3_8CB4_4A0F_973E_31C4F9338382" />
7 </Component>
8 </Directory>
9 <StandardDirectory Id="ProgramFilesFolder">
10 <Directory Id="WixTestDir" ShortName="7bhhvaai" Name="WiX Toolset Test Directory">
11 <Component Id="ModuleComponent1" Guid="{D86EC5A2-9576-4699-BDC3-00586FF72CBE}" Bitness="always32">
12 <File Id="File1" ShortName="gahushls.wxs" Name="MergeModule.wxs" KeyPath="yes" Source="SourceDir\File\File1.F844F0E3_8CB4_4A0F_973E_31C4F9338382" />
13 </Component>
14 </Directory>
15 </StandardDirectory>
16 <SummaryInformation Description="MergeModule1" Manufacturer="WiX Toolset contributors" />
17 </Module>
18</Wix> \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileTargetDirMergeModule/MergeModule1.msm b/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileTargetDirMergeModule/MergeModule1.msm
deleted file mode 100644
index 2a7b5e3a..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileTargetDirMergeModule/MergeModule1.msm
+++ /dev/null
Binary files differ
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/DefaultDir/DefaultDir.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/DefaultDir/DefaultDir.wxs
deleted file mode 100644
index 2f277956..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/DefaultDir/DefaultDir.wxs
+++ /dev/null
@@ -1,26 +0,0 @@
1<?xml version="1.0" encoding="utf-8" ?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
5 <Component>
6 <File Source="test.txt" />
7 </Component>
8 </ComponentGroup>
9
10 <DirectoryRef Id="INSTALLFOLDER">
11 <Directory Id="DUPLICATENAMEANDSHORTNAME" Name="duplicat" ShortName="duplicat"></Directory>
12 <Directory Id="NAMEWITHSHORTVALUE" Name="SHORTVAL"></Directory>
13 <Directory Id="NAMEANDSHORTNAME" Name="NameAndShortName" ShortName="SHORTNAM"></Directory>
14 <Directory Id="SHORTNAMEONLY" Name="SHORTONL"></Directory>
15 <Directory Id="SOURCENAME" Name="NameAndSourceName" SourceName="SourceNameWithName"></Directory>
16 <Directory Id="SOURCENAMESONLY" SourceName="SourceNameOnly" ShortSourceName="SRCNAMON"></Directory>
17 <Directory Id="NAMEANDSHORTSOURCENAME" Name="NameAndShortSourceName" ShortName="NAMEASSN"></Directory>
18 <Directory Id="SHORTNAMEANDLONGSOURCENAME" SourceName="ShortNameAndLongSourceName" Name="SHNALSNM"></Directory>
19 <Directory Id="SOURCENAMEWITHSHORTVALUE" SourceName="SRTSRCVL"></Directory>
20 <Directory Id="Folder1" Name="Folder.1"></Directory>
21 <Directory Id="Folder12" Name="Folder.12"></Directory>
22 <Directory Id="Folder123" Name="Folder.123"></Directory>
23 <Directory Id="Folder1234" Name="Folder.1234"></Directory>
24 </DirectoryRef>
25 </Fragment>
26</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Dependency/CustomProviderKeyBundle.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Dependency/CustomProviderKeyBundle.wxs
deleted file mode 100644
index 6df8a7c0..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Dependency/CustomProviderKeyBundle.wxs
+++ /dev/null
@@ -1,10 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Bundle Name="BurnBundle" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="B94478B1-E1F3-4700-9CE8-6AA090854AEC" ProviderKey="MyProviderKey,v1.0">
3 <BootstrapperApplication>
4 <BootstrapperApplicationDll SourceFile="fakeba.dll" />
5 </BootstrapperApplication>
6 <Chain>
7 <PackageGroupRef Id="MinimalPackageGroup" />
8 </Chain>
9 </Bundle>
10</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Dependency/ExePackageProvidesBundle.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Dependency/ExePackageProvidesBundle.wxs
deleted file mode 100644
index 4d188d3a..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Dependency/ExePackageProvidesBundle.wxs
+++ /dev/null
@@ -1,10 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <PackageGroup Id="BundlePackages">
5 <ExePackage DetectCondition="DetectedSomething" SourceFile="burn.exe">
6 <Provides Key="DependencyTests_ExeA,v1.0" Version="1.0.0.0" />
7 </ExePackage>
8 </PackageGroup>
9 </Fragment>
10</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Dependency/UsingProvidesBundle.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Dependency/UsingProvidesBundle.wxs
deleted file mode 100644
index 9c3a9690..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Dependency/UsingProvidesBundle.wxs
+++ /dev/null
@@ -1,8 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <PackageGroup Id="BundlePackages">
5 <MsiPackage SourceFile="UsingProvides.msi" />
6 </PackageGroup>
7 </Fragment>
8</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/DialogsInInstallUISequence/PackageComponents.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/DialogsInInstallUISequence/PackageComponents.wxs
deleted file mode 100644
index ec6e62df..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/DialogsInInstallUISequence/PackageComponents.wxs
+++ /dev/null
@@ -1,36 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Fragment>
3 <UI Id="CustomDialog">
4 <Dialog Id="FirstDialog" Width="100" Height="100">
5 <Control Id="Title" Type="Text" X="0" Y="0" Width="90" Height="13" TabSkip="no" Text="FirstDialogTitle" />
6 <Control Id="Header" Type="Text" X="0" Y="13" Width="90" Height="13" TabSkip="no" Text="FirstDialogHeader" HideCondition="Installed" DisableCondition="Installed" />
7 </Dialog>
8 <Dialog Id="SecondDialog" Width="100" Height="100">
9 <Control Id="Title" Type="Text" X="0" Y="0" Width="90" Height="13" TabSkip="no" Text="SecondDialogTitle" />
10 <Control Id="OptionalCheckBox" Type="CheckBox" X="0" Y="13" Width="100" Height="40" Hidden="yes" Property="WIXUI_EXITDIALOGOPTIONALCHECKBOX" CheckBoxValue="1" Text="[WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT]" ToolTip="Optional checkbox" Help="Check this box for fun" ShowCondition="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT AND NOT Installed" />
11 </Dialog>
12
13 <InstallUISequence>
14 <Show Dialog="SecondDialog" Before="FirstDialog" Overridable="yes" Condition="NOT Installed" />
15 </InstallUISequence>
16 </UI>
17 </Fragment>
18 <Fragment>
19 <UI Id="CustomUI">
20 <DialogRef Id="FirstDialog" />
21 <DialogRef Id="SecondDialog" />
22
23 <Publish Dialog="FirstDialog" Control="Next" Event="NewDialog" Value="SecondDialog" Condition="Installed AND PATCH" />
24
25 <InstallUISequence>
26 <Show Dialog="FirstDialog" Before="SecondDialog" Condition="Installed AND PATCH" />
27 <Show Dialog="SecondDialog" Before="ExecuteAction" Condition="NOT Installed" />
28 </InstallUISequence>
29 </UI>
30 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
31 <Component>
32 <File Source="test.txt" />
33 </Component>
34 </ComponentGroup>
35 </Fragment>
36</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Directory/DefaultName.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Directory/DefaultName.wxs
deleted file mode 100644
index 3e7887c4..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Directory/DefaultName.wxs
+++ /dev/null
@@ -1,13 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents" Directory="BinFolder" />
5 </Fragment>
6 <Fragment>
7 <StandardDirectory Id="ProgramFilesFolder">
8 <Directory Id="CompanyFolder" Name="!(bind.Property.Manufacturer)">
9 <Directory Id="BinFolder" Name="." />
10 </Directory>
11 </StandardDirectory>
12 </Fragment>
13</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Directory/DuplicateTargetSourceName.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Directory/DuplicateTargetSourceName.wxs
deleted file mode 100644
index 6e9a4495..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Directory/DuplicateTargetSourceName.wxs
+++ /dev/null
@@ -1,11 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents" Directory="BinFolder" />
5 </Fragment>
6 <Fragment>
7 <StandardDirectory Id="ProgramFilesFolder">
8 <Directory Id="BinFolder" Name="bin" SourceName="bin" />
9 </StandardDirectory>
10 </Fragment>
11</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Directory/Empty.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Directory/Empty.wxs
deleted file mode 100644
index 50cf6850..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Directory/Empty.wxs
+++ /dev/null
@@ -1,6 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER" />
5 </Fragment>
6</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Directory/Nested.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Directory/Nested.wxs
deleted file mode 100644
index cc87b49f..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Directory/Nested.wxs
+++ /dev/null
@@ -1,11 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents" Directory="BinFolder" />
5 </Fragment>
6 <Fragment>
7 <StandardDirectory Id="ProgramFilesFolder">
8 <Directory Id="BinFolder" Name="Example Corporation\Test Product\bin" />
9 </StandardDirectory>
10 </Fragment>
11</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/DuplicateDir/DuplicateDir.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/DuplicateDir/DuplicateDir.wxs
deleted file mode 100644
index a58b68c8..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/DuplicateDir/DuplicateDir.wxs
+++ /dev/null
@@ -1,25 +0,0 @@
1<?xml version="1.0" encoding="utf-8" ?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <ComponentGroupRef Id="GroupA" />
6 <ComponentGroupRef Id="GroupB" />
7 </ComponentGroup>
8 </Fragment>
9
10 <Fragment>
11 <ComponentGroup Id="GroupA" Directory="INSTALLFOLDER" Subdirectory="dupe">
12 <Component>
13 <File Name="a.txt" Source="test.txt" />
14 </Component>
15 </ComponentGroup>
16 </Fragment>
17
18 <Fragment>
19 <ComponentGroup Id="GroupB" Directory="INSTALLFOLDER" Subdirectory="dupe">
20 <Component>
21 <File Name="b.txt" Source="test.txt" />
22 </Component>
23 </ComponentGroup>
24 </Fragment>
25</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/EnsureTable/EnsureTable.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/EnsureTable/EnsureTable.wxs
deleted file mode 100644
index 01767abb..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/EnsureTable/EnsureTable.wxs
+++ /dev/null
@@ -1,10 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <ComponentGroupRef Id="MinimalComponentGroup" />
6 </ComponentGroup>
7
8 <EnsureTable Id="Wix4Example" />
9 </Fragment>
10</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Environment/Environment.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Environment/Environment.wxs
deleted file mode 100644
index de9744a7..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Environment/Environment.wxs
+++ /dev/null
@@ -1,14 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <Component Id="WixEnvironmentTest" Guid="{068C1CF4-DA54-4221-B0D2-E7310770DF0B}" Directory="INSTALLFOLDER">
6 <Environment Id="WixEnvironmentTest1" Action="set" Name="WixEnvTest1"/>
7 <Environment Id="WixEnvironmentTest2" Action="create" Name="WixEnvTest1"/>
8 <Environment Id="WixEnvironmentTest3" Action="remove" Name="WixEnvTest1"/>
9 <Environment Id="WixEnvironmentTest4" Name="WIX" Action="set" System="yes" Value="[INSTALLFOLDER]" />
10 <Environment Id="PATH" Name="PATH" Action="set" Part="first" Value="[INSTALLFOLDER]; " System="yes" />
11 </Component>
12 </ComponentGroup>
13 </Fragment>
14</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ErrorsInUI/Package.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/ErrorsInUI/Package.en-us.wxl
deleted file mode 100644
index 066e16bb..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ErrorsInUI/Package.en-us.wxl
+++ /dev/null
@@ -1,9 +0,0 @@
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 <String Id="DowngradeError">A newer version of [ProductName] is already installed.</String>
8 <String Id="FeatureTitle">MsiPackage</String>
9</WixLocalization>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ErrorsInUI/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/ErrorsInUI/Package.wxs
deleted file mode 100644
index 287085e8..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ErrorsInUI/Package.wxs
+++ /dev/null
@@ -1,20 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Name="MsiPackage" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
3
4
5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
6
7 <CustomAction Id="CanWeReferenceAnError_YesWeCan" Error="1234" />
8 <CustomAction Id="TextErrorsWorkOKToo" Error="If you see this, something went wrong." />
9
10 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
11 <ComponentGroupRef Id="ProductComponents" />
12 </Feature>
13 </Package>
14
15 <Fragment>
16 <StandardDirectory Id="ProgramFilesFolder">
17 <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
18 </StandardDirectory>
19 </Fragment>
20</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ErrorsInUI/PackageComponents.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/ErrorsInUI/PackageComponents.wxs
deleted file mode 100644
index 88a4ac81..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ErrorsInUI/PackageComponents.wxs
+++ /dev/null
@@ -1,14 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <UI>
5 <Error Id="1234" Message="Category 55 Emergency Doomsday Crisis" />
6 <Error Id="5678" Message=" " />
7 </UI>
8 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
9 <Component>
10 <File Source="test.txt" />
11 </Component>
12 </ComponentGroup>
13 </Fragment>
14</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ErrorsInUI/data/test.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/ErrorsInUI/data/test.txt
deleted file mode 100644
index cd0db0e1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ErrorsInUI/data/test.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is test.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ExampleExtension/Package.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/ExampleExtension/Package.en-us.wxl
deleted file mode 100644
index 38c12ac1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ExampleExtension/Package.en-us.wxl
+++ /dev/null
@@ -1,11 +0,0 @@
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
deleted file mode 100644
index 5c84f33e..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ExampleExtension/Package.wxs
+++ /dev/null
@@ -1,21 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
3
4
5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
6
7 <Property Id="ExampleProperty" Value="$(ex.Test)" />
8
9 <PropertyRef Id="PropertyFromExampleWir" />
10
11 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
12 <ComponentGroupRef Id="ProductComponents" />
13 </Feature>
14 </Package>
15
16 <Fragment>
17 <StandardDirectory Id="ProgramFilesFolder">
18 <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
19 </StandardDirectory>
20 </Fragment>
21</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ExampleExtension/PackageComponents.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/ExampleExtension/PackageComponents.wxs
deleted file mode 100644
index 7f17b538..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ExampleExtension/PackageComponents.wxs
+++ /dev/null
@@ -1,12 +0,0 @@
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
deleted file mode 100644
index 1b4ffe8a..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ExampleExtension/data/example.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is example.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ExePackage/MissingDetectCondition.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/ExePackage/MissingDetectCondition.wxs
deleted file mode 100644
index e57180f7..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ExePackage/MissingDetectCondition.wxs
+++ /dev/null
@@ -1,9 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <PackageGroup Id="TestPackageGroup">
5 <ExePackage InstallArguments="-install"
6 SourceFile="testsetup.exe" />
7 </PackageGroup>
8 </Fragment>
9</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ExePackage/RequireDetectCondition.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/ExePackage/RequireDetectCondition.wxs
deleted file mode 100644
index 0b094860..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ExePackage/RequireDetectCondition.wxs
+++ /dev/null
@@ -1,11 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <PackageGroup Id="TestPackageGroup">
5 <ExePackage DetectCondition=""
6 InstallArguments="-install"
7 UninstallArguments="-uninstall"
8 SourceFile="testsetup.exe" />
9 </PackageGroup>
10 </Fragment>
11</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/FeatureGroup/FeatureGroup.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/FeatureGroup/FeatureGroup.wxs
deleted file mode 100644
index be302720..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/FeatureGroup/FeatureGroup.wxs
+++ /dev/null
@@ -1,14 +0,0 @@
1<?xml version="1.0" encoding="utf-8" ?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <ComponentGroupRef Id="MinimalComponentGroup"></ComponentGroupRef>
6 </ComponentGroup>
7
8 <FeatureGroup Id="ProductFeatureGroup">
9 <Feature Id="ParentFeature" Title="ParentFeatureTitle">
10 <Feature Id="ChildFeature" Title="ChildFeatureTitle"></Feature>
11 </Feature>
12 </FeatureGroup>
13 </Fragment>
14</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Font/FontTitle.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Font/FontTitle.wxs
deleted file mode 100644
index 6fb9ef05..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Font/FontTitle.wxs
+++ /dev/null
@@ -1,10 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <Component Id="FontComp" Directory="INSTALLFOLDER">
6 <File Id="test.txt" Source="test.txt" FontTitle="FakeFont" />
7 </Component>
8 </ComponentGroup>
9 </Fragment>
10</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Font/TrueType.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Font/TrueType.wxs
deleted file mode 100644
index 6ac48963..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Font/TrueType.wxs
+++ /dev/null
@@ -1,10 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <Component Id="TrueTypeFontComp" Directory="INSTALLFOLDER" Guid="C8116E5E-F731-427C-AF43-6FF8B8D7DA64">
6 <File Id="TrueTypeFontFile" Source="test.txt" Name="TrueTypeFontComp.ttf" TrueType="yes" />
7 </Component>
8 </ComponentGroup>
9 </Fragment>
10</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ForEach/Package.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/ForEach/Package.en-us.wxl
deleted file mode 100644
index 38c12ac1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ForEach/Package.en-us.wxl
+++ /dev/null
@@ -1,11 +0,0 @@
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/ForEach/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/ForEach/Package.wxs
deleted file mode 100644
index 8fff563e..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ForEach/Package.wxs
+++ /dev/null
@@ -1,19 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Name="MsiPackage" Language="1033" Version="1.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
3
4
5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
6
7 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
8 <ComponentGroupRef Id="ProductComponents.x86" />
9 <ComponentGroupRef Id="ProductComponents.x64" />
10 <ComponentGroupRef Id="ProductComponents.arm" />
11 </Feature>
12 </Package>
13
14 <Fragment>
15 <StandardDirectory Id="ProgramFilesFolder">
16 <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
17 </StandardDirectory>
18 </Fragment>
19</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ForEach/PackageComponents.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/ForEach/PackageComponents.wxs
deleted file mode 100644
index 2a75e3d7..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ForEach/PackageComponents.wxs
+++ /dev/null
@@ -1,12 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <?foreach ComponentPlatform in x86;x64;arm ?>
4 <Fragment>
5 <ComponentGroup Id="ProductComponents.$(var.ComponentPlatform)" Directory="INSTALLFOLDER">
6 <Component>
7 <File Name="$(var.ComponentPlatform).dll" Source="test.txt" />
8 </Component>
9 </ComponentGroup>
10 </Fragment>
11 <?endforeach?>
12</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ForEach/data/test.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/ForEach/data/test.txt
deleted file mode 100644
index cd0db0e1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ForEach/data/test.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is test.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Icon/SampleIcon.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Icon/SampleIcon.wxs
deleted file mode 100644
index 1de84e81..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Icon/SampleIcon.wxs
+++ /dev/null
@@ -1,6 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <Icon Id="SampleIcon" SourceFile="burn.exe" />
5 </Fragment>
6</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/IncludePath/Package.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/IncludePath/Package.en-us.wxl
deleted file mode 100644
index 38c12ac1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/IncludePath/Package.en-us.wxl
+++ /dev/null
@@ -1,11 +0,0 @@
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/IncludePath/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/IncludePath/Package.wxs
deleted file mode 100644
index 0bd80c50..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/IncludePath/Package.wxs
+++ /dev/null
@@ -1,18 +0,0 @@
1<?include Package.wxi ?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Package Name="MsiPackage" Language="1033" Version="$(var.ProductVersion)" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
4
5
6 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7
8 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
9 <ComponentGroupRef Id="ProductComponents" />
10 </Feature>
11 </Package>
12
13 <Fragment>
14 <StandardDirectory Id="ProgramFilesFolder">
15 <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
16 </StandardDirectory>
17 </Fragment>
18</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/IncludePath/PackageComponents.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/IncludePath/PackageComponents.wxs
deleted file mode 100644
index 7a0485ed..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/IncludePath/PackageComponents.wxs
+++ /dev/null
@@ -1,8 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
5 <?include DontDoThis.wxi ?>
6 </ComponentGroup>
7 </Fragment>
8</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/IncludePath/data/DontDoThis.wxi b/src/test/WixToolsetTest.CoreIntegration/TestData/IncludePath/data/DontDoThis.wxi
deleted file mode 100644
index 03885e3e..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/IncludePath/data/DontDoThis.wxi
+++ /dev/null
@@ -1,6 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Include xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Component>
4 <File Source="test.txt" />
5 </Component>
6</Include>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/IncludePath/data/Package.wxi b/src/test/WixToolsetTest.CoreIntegration/TestData/IncludePath/data/Package.wxi
deleted file mode 100644
index f2df3b86..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/IncludePath/data/Package.wxi
+++ /dev/null
@@ -1,4 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Include xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <?define ProductVersion = "1.2.3" ?>
4</Include>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/IncludePath/data/test.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/IncludePath/data/test.txt
deleted file mode 100644
index cd0db0e1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/IncludePath/data/test.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is test.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/InstanceTransform/Package.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/InstanceTransform/Package.en-us.wxl
deleted file mode 100644
index 38c12ac1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/InstanceTransform/Package.en-us.wxl
+++ /dev/null
@@ -1,11 +0,0 @@
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/InstanceTransform/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/InstanceTransform/Package.wxs
deleted file mode 100644
index 7826d673..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/InstanceTransform/Package.wxs
+++ /dev/null
@@ -1,23 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
3
4
5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
6
7 <Property Id="INSTANCEPROPERTY" Secure="yes" />
8
9 <InstanceTransforms Property="INSTANCEPROPERTY">
10 <Instance Id="I1" ProductCode="*" ProductName="MsiPackage (Instance 1)" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" />
11 </InstanceTransforms>
12
13 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
14 <ComponentGroupRef Id="ProductComponents" />
15 </Feature>
16 </Package>
17
18 <Fragment>
19 <StandardDirectory Id="ProgramFilesFolder">
20 <Directory Id="INSTALLFOLDER" Name="MsiPackageInstance" />
21 </StandardDirectory>
22 </Fragment>
23</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/InstanceTransform/PackageComponents.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/InstanceTransform/PackageComponents.wxs
deleted file mode 100644
index e26c4509..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/InstanceTransform/PackageComponents.wxs
+++ /dev/null
@@ -1,10 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
5 <Component>
6 <File Source="test.txt" />
7 </Component>
8 </ComponentGroup>
9 </Fragment>
10</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/InstanceTransform/data/test.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/InstanceTransform/data/test.txt
deleted file mode 100644
index cd0db0e1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/InstanceTransform/data/test.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is test.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Language/Package.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/Language/Package.en-us.wxl
deleted file mode 100644
index f7453566..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Language/Package.en-us.wxl
+++ /dev/null
@@ -1,7 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<WixLocalization xmlns="http://wixtoolset.org/schemas/v4/wxl" Culture="en-US">
3
4 <String Id="DowngradeError">A newer version of [ProductName] is already installed.</String>
5 <String Id="FeatureTitle">MsiPackage</String>
6
7</WixLocalization>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Language/Package.ja-jp.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/Language/Package.ja-jp.wxl
deleted file mode 100644
index ef287da7..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Language/Package.ja-jp.wxl
+++ /dev/null
@@ -1,7 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<WixLocalization xmlns="http://wixtoolset.org/schemas/v4/wxl" Culture="ja-JP">
3
4 <String Id="DowngradeError">A newer version of [ProductName] is already installed.</String>
5 <String Id="FeatureTitle">MsiPackage</String>
6
7</WixLocalization>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Language/Package.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/Language/Package.wxl
deleted file mode 100644
index 10ebf2c5..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Language/Package.wxl
+++ /dev/null
@@ -1,7 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<WixLocalization xmlns="http://wixtoolset.org/schemas/v4/wxl">
3
4 <String Id="DowngradeError">A newer version of [ProductName] is already installed.</String>
5 <String Id="FeatureTitle">MsiPackage</String>
6
7</WixLocalization>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Language/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Language/Package.wxs
deleted file mode 100644
index 13c79e90..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Language/Package.wxs
+++ /dev/null
@@ -1,18 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Name="~DefaultLanguagePackage" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a">
3
4 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
5
6 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
7 <Component Directory="INSTALLFOLDER">
8 <File Source="test.txt" />
9 </Component>
10 </Feature>
11 </Package>
12
13 <Fragment>
14 <StandardDirectory Id="ProgramFilesFolder">
15 <Directory Id="INSTALLFOLDER" Name="Example Corporation\MsiPackage" />
16 </StandardDirectory>
17 </Fragment>
18</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Language/PackageWithEnSummaryInfo.ja-jp.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/Language/PackageWithEnSummaryInfo.ja-jp.wxl
deleted file mode 100644
index 596ee077..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Language/PackageWithEnSummaryInfo.ja-jp.wxl
+++ /dev/null
@@ -1,7 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<WixLocalization xmlns="http://wixtoolset.org/schemas/v4/wxl" SummaryInformationCodepage="1252" Culture="ja-JP">
3
4 <String Id="DowngradeError">A newer version of [ProductName] is already installed.</String>
5 <String Id="FeatureTitle">MsiPackage</String>
6
7</WixLocalization>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Language/data/test.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/Language/data/test.txt
deleted file mode 100644
index cd0db0e1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Language/data/test.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is test.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/LockPermissions/EmptyPermissions.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/LockPermissions/EmptyPermissions.wxs
deleted file mode 100644
index dfae2157..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/LockPermissions/EmptyPermissions.wxs
+++ /dev/null
@@ -1,13 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <ComponentGroupRef Id="MinimalComponentGroup"></ComponentGroupRef>
6 <Component Id="MiscComponent" Guid="D1414BA5-F8DE-4979-938D-C8D0F61A62C9" Directory="INSTALLFOLDER">
7 <CreateFolder>
8 <Permission User="Administrator"></Permission>
9 </CreateFolder>
10 </Component>
11 </ComponentGroup>
12 </Fragment>
13</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ManualUpgrade/Package.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/ManualUpgrade/Package.en-us.wxl
deleted file mode 100644
index 38c12ac1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ManualUpgrade/Package.en-us.wxl
+++ /dev/null
@@ -1,11 +0,0 @@
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/ManualUpgrade/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/ManualUpgrade/Package.wxs
deleted file mode 100644
index 4fd3493a..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ManualUpgrade/Package.wxs
+++ /dev/null
@@ -1,24 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
3
4
5 <Upgrade Id="01120000-00E0-0000-0000-0000000FF1CE">
6 <UpgradeVersion ExcludeLanguages="no" IgnoreRemoveFailure="yes" IncludeMaximum="no" IncludeMinimum="yes" Maximum="13.0.0" Minimum="12.0.0" OnlyDetect="no" Property="BLAHBLAHBLAH" />
7 </Upgrade>
8 <!--<Property Id="BLAHBLAHBLAH" Secure="yes" />-->
9
10 <InstallExecuteSequence>
11 <RemoveExistingProducts After="InstallValidate" />
12 </InstallExecuteSequence>
13
14 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
15 <ComponentGroupRef Id="ProductComponents" />
16 </Feature>
17 </Package>
18
19 <Fragment>
20 <StandardDirectory Id="ProgramFilesFolder">
21 <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
22 </StandardDirectory>
23 </Fragment>
24</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ManualUpgrade/PackageComponents.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/ManualUpgrade/PackageComponents.wxs
deleted file mode 100644
index e26c4509..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ManualUpgrade/PackageComponents.wxs
+++ /dev/null
@@ -1,10 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
5 <Component>
6 <File Source="test.txt" />
7 </Component>
8 </ComponentGroup>
9 </Fragment>
10</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ManualUpgrade/data/test.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/ManualUpgrade/data/test.txt
deleted file mode 100644
index cd0db0e1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ManualUpgrade/data/test.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is test.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Media/MultiMedia.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Media/MultiMedia.wxs
deleted file mode 100644
index e7492db4..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Media/MultiMedia.wxs
+++ /dev/null
@@ -1,28 +0,0 @@
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" Subdirectory="~MultiMedia" DiskId="1">
12 <File Source="a1.txt" />
13 </Component>
14
15 <Component Directory="ProgramFilesFolder" Subdirectory="~MultiMedia" DiskId="1">
16 <File Source="a2.txt" />
17 </Component>
18
19 <Component Directory="ProgramFilesFolder" Subdirectory="~MultiMedia" DiskId="2">
20 <File Source="b2.txt" />
21 </Component>
22
23 <Component Directory="ProgramFilesFolder" Subdirectory="~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
deleted file mode 100644
index ad9cdcb5..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Media/data/a1.txt
+++ /dev/null
@@ -1 +0,0 @@
1This 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
deleted file mode 100644
index d5de23de..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Media/data/a2.txt
+++ /dev/null
@@ -1 +0,0 @@
1This 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
deleted file mode 100644
index 88bc4a56..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Media/data/b1.txt
+++ /dev/null
@@ -1 +0,0 @@
1This 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
deleted file mode 100644
index 38525276..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Media/data/b2.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is b2.txt \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/MsiTransaction/FirstX64.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/MsiTransaction/FirstX64.wxs
deleted file mode 100644
index e72b6402..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/MsiTransaction/FirstX64.wxs
+++ /dev/null
@@ -1,8 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <ComponentGroupRef Id="MinimalComponentGroup" />
6 </ComponentGroup>
7 </Fragment>
8</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/MsiTransaction/FirstX86.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/MsiTransaction/FirstX86.wxs
deleted file mode 100644
index e72b6402..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/MsiTransaction/FirstX86.wxs
+++ /dev/null
@@ -1,8 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <ComponentGroupRef Id="MinimalComponentGroup" />
6 </ComponentGroup>
7 </Fragment>
8</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/MsiTransaction/SecondX64.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/MsiTransaction/SecondX64.wxs
deleted file mode 100644
index e72b6402..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/MsiTransaction/SecondX64.wxs
+++ /dev/null
@@ -1,8 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <ComponentGroupRef Id="MinimalComponentGroup" />
6 </ComponentGroup>
7 </Fragment>
8</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/MsiTransaction/SecondX86.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/MsiTransaction/SecondX86.wxs
deleted file mode 100644
index e72b6402..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/MsiTransaction/SecondX86.wxs
+++ /dev/null
@@ -1,8 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <ComponentGroupRef Id="MinimalComponentGroup" />
6 </ComponentGroup>
7 </Fragment>
8</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/MsiTransaction/X64AfterX86Bundle.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/MsiTransaction/X64AfterX86Bundle.wxs
deleted file mode 100644
index e6527a36..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/MsiTransaction/X64AfterX86Bundle.wxs
+++ /dev/null
@@ -1,12 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <PackageGroup Id="BundlePackages">
5 <MsiPackage SourceFile="FirstX64\" Name="FirstX64\FirstX64.msi" />
6 <RollbackBoundary Transaction="yes" />
7 <MsiPackage SourceFile="FirstX86\" Name="FirstX86\FirstX86.msi" />
8 <MsiPackage SourceFile="SecondX86\" Name="SecondX86\SecondX86.msi" />
9 <MsiPackage SourceFile="SecondX64\" Name="SecondX64\SecondX64.msi" />
10 </PackageGroup>
11 </Fragment>
12</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/MsiTransaction/X86AfterX64Bundle.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/MsiTransaction/X86AfterX64Bundle.wxs
deleted file mode 100644
index f1c939db..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/MsiTransaction/X86AfterX64Bundle.wxs
+++ /dev/null
@@ -1,12 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <PackageGroup Id="BundlePackages">
5 <MsiPackage SourceFile="FirstX86\" Name="FirstX86\FirstX86.msi" />
6 <RollbackBoundary Transaction="yes" />
7 <MsiPackage SourceFile="FirstX64\" Name="FirstX64\FirstX64.msi" />
8 <MsiPackage SourceFile="SecondX64\" Name="SecondX64\SecondX64.msi" />
9 <MsiPackage SourceFile="SecondX86\" Name="SecondX86\SecondX86.msi" />
10 </PackageGroup>
11 </Fragment>
12</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/MsuPackage/Bundle.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/MsuPackage/Bundle.wxs
deleted file mode 100644
index dbca3393..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/MsuPackage/Bundle.wxs
+++ /dev/null
@@ -1,11 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Bundle Name="BurnBundle" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="B94478B1-E1F3-4700-9CE8-6AA090854AEC">
3 <BootstrapperApplication>
4 <BootstrapperApplicationDll SourceFile="fakeba.dll" />
5 </BootstrapperApplication>
6
7 <Chain>
8 <MsuPackage DetectCondition="DetectedTheMsu" SourceFile="test.msu" />
9 </Chain>
10 </Bundle>
11</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/MsuPackage/data/fakeba.dll b/src/test/WixToolsetTest.CoreIntegration/TestData/MsuPackage/data/fakeba.dll
deleted file mode 100644
index b3cf17d8..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/MsuPackage/data/fakeba.dll
+++ /dev/null
@@ -1 +0,0 @@
1This is a fake BA DLL
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/MsuPackage/data/test.msu b/src/test/WixToolsetTest.CoreIntegration/TestData/MsuPackage/data/test.msu
deleted file mode 100644
index d63da4be..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/MsuPackage/data/test.msu
+++ /dev/null
@@ -1 +0,0 @@
1This is a fake MSU package
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/MultiFileCompressed/Package.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/MultiFileCompressed/Package.en-us.wxl
deleted file mode 100644
index 38c12ac1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/MultiFileCompressed/Package.en-us.wxl
+++ /dev/null
@@ -1,11 +0,0 @@
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/MultiFileCompressed/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/MultiFileCompressed/Package.wxs
deleted file mode 100644
index 2b1a1a0f..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/MultiFileCompressed/Package.wxs
+++ /dev/null
@@ -1,26 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="yes" InstallerVersion="200" Scope="perMachine">
3
4
5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
6
7 <?ifndef MediaTemplateCompressionLevel?>
8 <Media Id="1" Cabinet="example1.cab" />
9 <Media Id="2" Cabinet="example2.cab" />
10 <?elseif $(MediaTemplateCompressionLevel) = ""?>
11 <MediaTemplate />
12 <?else?>
13 <MediaTemplate CabinetTemplate="lowcab{0}.cab" CompressionLevel="$(MediaTemplateCompressionLevel)" />
14 <?endif?>
15
16 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
17 <ComponentGroupRef Id="ProductComponents" />
18 </Feature>
19 </Package>
20
21 <Fragment>
22 <StandardDirectory Id="ProgramFilesFolder">
23 <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
24 </StandardDirectory>
25 </Fragment>
26</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/MultiFileCompressed/PackageComponents.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/MultiFileCompressed/PackageComponents.wxs
deleted file mode 100644
index 82797ebe..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/MultiFileCompressed/PackageComponents.wxs
+++ /dev/null
@@ -1,13 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
5 <Component>
6 <File Source="$(env.WINDIR)\Notepad.exe" />
7 </Component>
8 <Component>
9 <File Source="test.txt" />
10 </Component>
11 </ComponentGroup>
12 </Fragment>
13</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/MultiFileCompressed/data/test.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/MultiFileCompressed/data/test.txt
deleted file mode 100644
index cd0db0e1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/MultiFileCompressed/data/test.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is test.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/OverridableActions/Package.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/OverridableActions/Package.en-us.wxl
deleted file mode 100644
index 38c12ac1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/OverridableActions/Package.en-us.wxl
+++ /dev/null
@@ -1,11 +0,0 @@
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/OverridableActions/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/OverridableActions/Package.wxs
deleted file mode 100644
index 0bf0e963..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/OverridableActions/Package.wxs
+++ /dev/null
@@ -1,48 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
3
4
5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
6
7 <InstallExecuteSequence>
8 <ValidateProductID Suppress="yes" />
9 </InstallExecuteSequence>
10
11 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
12 <ComponentGroupRef Id="ProductComponents" />
13 <ComponentGroupRef Id="Foo1" />
14 <ComponentGroupRef Id="Foo2" />
15 </Feature>
16
17 <!--<CustomActionRef Id="SetFoo" />-->
18
19 </Package>
20
21 <Fragment Id="SetFoo">
22 <CustomAction Id="SetFoo" Property="FOO" Value="BOB" />
23 <CustomAction Id="SetBar" Property="BAR" Value="BOB" />
24 </Fragment>
25
26 <Fragment Id="Foo1">
27 <ComponentGroup Id="Foo1" />
28
29 <InstallExecuteSequence>
30 <Custom Action="SetFoo" Before="SetBar" />
31 <Custom Action="SetBar" Overridable="yes" Before="AppSearch" />
32 </InstallExecuteSequence>
33 </Fragment>
34
35 <Fragment Id="Foo2">
36 <ComponentGroup Id="Foo2" />
37
38 <InstallExecuteSequence>
39 <Custom Action="SetBar" Before="AppSearch" />
40 </InstallExecuteSequence>
41 </Fragment>
42
43 <Fragment Id="Directories">
44 <StandardDirectory Id="ProgramFilesFolder">
45 <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
46 </StandardDirectory>
47 </Fragment>
48</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/OverridableActions/PackageComponents.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/OverridableActions/PackageComponents.wxs
deleted file mode 100644
index e26c4509..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/OverridableActions/PackageComponents.wxs
+++ /dev/null
@@ -1,10 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
5 <Component>
6 <File Source="test.txt" />
7 </Component>
8 </ComponentGroup>
9 </Fragment>
10</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/OverridableActions/data/test.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/OverridableActions/data/test.txt
deleted file mode 100644
index cd0db0e1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/OverridableActions/data/test.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is test.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PackagePayload/MissingSourceFileAndHash.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/PackagePayload/MissingSourceFileAndHash.wxs
deleted file mode 100644
index 5e1b99ff..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PackagePayload/MissingSourceFileAndHash.wxs
+++ /dev/null
@@ -1,10 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <PackageGroup Id="BundlePackages">
5 <MsuPackage Id="MissingSourceFileAndHash" Permanent="yes" DetectCondition="none">
6 <MsuPackagePayload DownloadUrl="example.com" />
7 </MsuPackage>
8 </PackageGroup>
9 </Fragment>
10</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PackagePayload/MissingSourceFileAndName.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/PackagePayload/MissingSourceFileAndName.wxs
deleted file mode 100644
index f220d81a..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PackagePayload/MissingSourceFileAndName.wxs
+++ /dev/null
@@ -1,10 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <PackageGroup Id="BundlePackages">
5 <MsiPackage Id="MissingSourceFileAndName">
6 <MsiPackagePayload DownloadUrl="example.com" />
7 </MsiPackage>
8 </PackageGroup>
9 </Fragment>
10</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PackagePayload/PackagePayloadInPayloadGroup.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/PackagePayload/PackagePayloadInPayloadGroup.wxs
deleted file mode 100644
index 149870a4..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PackagePayload/PackagePayloadInPayloadGroup.wxs
+++ /dev/null
@@ -1,15 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <PackageGroup Id="BundlePackages">
5 <ExePackage Id="PackagePayloadInPayloadGroup" Permanent="yes" DetectCondition="none">
6 <PayloadGroupRef Id="PackagePayloadGroup" />
7 </ExePackage>
8 </PackageGroup>
9 </Fragment>
10 <Fragment>
11 <PayloadGroup Id="PackagePayloadGroup">
12 <ExePackagePayload SourceFile="burn.exe" />
13 </PayloadGroup>
14 </Fragment>
15</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PackagePayload/SpecifiedHash.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/PackagePayload/SpecifiedHash.wxs
deleted file mode 100644
index 3c361c49..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PackagePayload/SpecifiedHash.wxs
+++ /dev/null
@@ -1,10 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <PackageGroup Id="BundlePackages">
5 <MspPackage Id="SpecifiedHash">
6 <MspPackagePayload SourceFile="example.msp" DownloadUrl="example.com" Hash="abcd" />
7 </MspPackage>
8 </PackageGroup>
9 </Fragment>
10</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PackagePayload/SpecifiedHashAndMissingDownloadUrl.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/PackagePayload/SpecifiedHashAndMissingDownloadUrl.wxs
deleted file mode 100644
index 8e62f660..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PackagePayload/SpecifiedHashAndMissingDownloadUrl.wxs
+++ /dev/null
@@ -1,10 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <PackageGroup Id="BundlePackages">
5 <MsuPackage Id="SpecifiedHashAndMissingDownloadUrl" Permanent="yes" DetectCondition="none">
6 <MsuPackagePayload Name="example.msu" Hash="abcd" Size="1" Version="1.0.0.0" ProductName="KB1234567" Description="fake msu" />
7 </MsuPackage>
8 </PackageGroup>
9 </Fragment>
10</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PackagePayload/SpecifiedSourceFileAndHash.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/PackagePayload/SpecifiedSourceFileAndHash.wxs
deleted file mode 100644
index f79da874..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PackagePayload/SpecifiedSourceFileAndHash.wxs
+++ /dev/null
@@ -1,10 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <PackageGroup Id="BundlePackages">
5 <ExePackage Id="SpecifiedSourceFileAndHash" Permanent="yes" DetectCondition="none">
6 <ExePackagePayload SourceFile="example.exe" Hash="abcd" />
7 </ExePackage>
8 </PackageGroup>
9 </Fragment>
10</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PackagePayload/WrongPackagePayloadInPayloadGroup.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/PackagePayload/WrongPackagePayloadInPayloadGroup.wxs
deleted file mode 100644
index dda306cf..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PackagePayload/WrongPackagePayloadInPayloadGroup.wxs
+++ /dev/null
@@ -1,15 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <PackageGroup Id="BundlePackages">
5 <MsiPackage Id="WrongPackagePayloadInPayloadGroup">
6 <PayloadGroupRef Id="WrongPackagePayloadGroup" />
7 </MsiPackage>
8 </PackageGroup>
9 </Fragment>
10 <Fragment>
11 <PayloadGroup Id="WrongPackagePayloadGroup">
12 <ExePackagePayload SourceFile="burn.exe" />
13 </PayloadGroup>
14 </Fragment>
15</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/.data/Av1.0.0.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/.data/Av1.0.0.txt
deleted file mode 100644
index 6fd385bd..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/.data/Av1.0.0.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is A v1.0.0
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/.data/Av1.0.1.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/.data/Av1.0.1.txt
deleted file mode 100644
index b1f0bc01..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/.data/Av1.0.1.txt
+++ /dev/null
@@ -1 +0,0 @@
1This ia A v1.0.1
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/.data/Bv1.0.0.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/.data/Bv1.0.0.txt
deleted file mode 100644
index ece55fec..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/.data/Bv1.0.0.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is B v1.0.0
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/.data/Bv1.0.1.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/.data/Bv1.0.1.txt
deleted file mode 100644
index cf3372fd..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/.data/Bv1.0.1.txt
+++ /dev/null
@@ -1 +0,0 @@
1This ia B v1.0.1
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/Package.wxs
deleted file mode 100644
index c9dcdd72..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/Package.wxs
+++ /dev/null
@@ -1,28 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Name="~Test Package" Version="$(var.V)" Manufacturer="Example Corporation" Language="1033" UpgradeCode="e703bf17-4765-444c-91fd-88550fa681d4" Scope="perMachine" ProductCode="e703bf17-4765-444c-91fd-88550fa681d4">
3
4
5 <MajorUpgrade DowngradeErrorMessage="Newer version already installed." />
6
7 <Directory Id="TARGETDIR" Name="SourceDir">
8 <Directory Id="ProgramFilesFolder">
9 <Directory Id="INSTALLFOLDER" Name="~Test App" />
10 </Directory>
11 </Directory>
12
13 <Feature Id="Main">
14 <ComponentGroupRef Id="Components" />
15 </Feature>
16 </Package>
17
18 <Fragment>
19 <ComponentGroup Id="Components" Directory="INSTALLFOLDER">
20 <Component Id="A">
21 <File Id="a.txt" Name="a.txt" Source="Av$(var.A).txt" />
22 </Component>
23 <Component Id="B">
24 <File Id="b.txt" Name="b.txt" Source="Bv$(var.B).txt" />
25 </Component>
26 </ComponentGroup>
27 </Fragment>
28</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/Patch.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/Patch.wxs
deleted file mode 100644
index d39170c0..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/Patch.wxs
+++ /dev/null
@@ -1,16 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Patch AllowRemoval="yes" Manufacturer="FireGiant" MoreInfoURL="http://www.example.com/" DisplayName="~Test Patch v$(var.V)" Description="~Test Small Update Patch v($var.V)" Classification="Update">
3
4 <Media Id="1" Cabinet="foo.cab">
5 <PatchBaseline Id="RTM" />
6 </Media>
7
8 <PatchFamilyRef Id="SamplePatchFamily" />
9 </Patch>
10
11 <Fragment>
12 <PatchFamily Id="SamplePatchFamily" Version="$(var.V)" Supersede="yes">
13 <ComponentRef Id="A" />
14 </PatchFamily>
15 </Fragment>
16</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchFromWixlib/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchFromWixlib/Package.wxs
deleted file mode 100644
index 5cb8ede8..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchFromWixlib/Package.wxs
+++ /dev/null
@@ -1,30 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Name="~Test Package" Version="$(var.V)" Manufacturer="Example Corporation" Language="1033" UpgradeCode="{6B8097B9-A5D0-4BDE-B21E-AF6622DDCA01}" Scope="perMachine" ProductCode="{7C871EC1-1F89-4850-A6A9-D7A4C21769F6}">
3 <MajorUpgrade DowngradeErrorMessage="Newer version already installed." />
4 <MediaTemplate EmbedCab="yes" />
5
6 <CustomAction Id="CAFromExtension" DllEntry="DoesntExist" BinaryRef="BinFromWir" />
7
8 <Directory Id="TARGETDIR" Name="SourceDir">
9 <Directory Id="ProgramFilesFolder">
10 <Directory Id="INSTALLFOLDER" Name="~Test App" />
11 </Directory>
12 </Directory>
13
14 <Feature Id="Main">
15 <ComponentGroupRef Id="Components" />
16 </Feature>
17 </Package>
18
19 <Fragment>
20 <ComponentGroup Id="Components" Directory="INSTALLFOLDER">
21 <Component>
22 <File Source="$(sys.SOURCEFILEPATH)" />
23 </Component>
24
25 <Component>
26 <RegistryValue Root="HKLM" Key="SOFTWARE\!(bind.property.ProductName)\Patch" Name="Version" Value="$(var.V)" />
27 </Component>
28 </ComponentGroup>
29 </Fragment>
30</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchFromWixlib/Patch.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchFromWixlib/Patch.wxs
deleted file mode 100644
index 52e87f64..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchFromWixlib/Patch.wxs
+++ /dev/null
@@ -1,16 +0,0 @@
1<Wix xmlns='http://wixtoolset.org/schemas/v4/wxs'>
2 <Patch
3 AllowRemoval="yes"
4 DisplayName="~Test Patch v$(var.V)"
5 Description="~Test Small Update Patch v$(var.V)"
6 MoreInfoURL="http://www.example.com/"
7 Manufacturer="Example Corporation"
8 Classification="Update">
9
10 <Media Id="1" Cabinet="foo.cab">
11 <PatchBaseline Id="RTM" BaselineFile="Baseline.wixpdb" UpdateFile="Update.wixpdb" />
12 </Media>
13
14 <PatchFamily Id='SequenceFamily' Version='$(var.V)' />
15 </Patch>
16</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNoFileChanges/.data/A.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNoFileChanges/.data/A.txt
deleted file mode 100644
index 6fd385bd..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNoFileChanges/.data/A.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is A v1.0.0
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNoFileChanges/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNoFileChanges/Package.wxs
deleted file mode 100644
index dab959d5..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNoFileChanges/Package.wxs
+++ /dev/null
@@ -1,27 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Name="~Test Package" Version="$(V)" Manufacturer="Example Corporation" Language="1033" UpgradeCode="7d326855-e790-4a94-8611-5351f8321fca" Compressed="yes" Scope="perMachine" ProductCode="7d326855-e790-4a94-8611-5351f8321fca">
3
4 <MajorUpgrade DowngradeErrorMessage="Newer version already installed." />
5 <MediaTemplate EmbedCab="yes" />
6
7 <StandardDirectory Id="ProgramFilesFolder">
8 <Directory Id="INSTALLFOLDER" Name="~Test App" />
9 </StandardDirectory>
10
11 <Feature Id="Main">
12 <ComponentGroupRef Id="Components" />
13 </Feature>
14 </Package>
15
16 <Fragment>
17 <ComponentGroup Id="Components" Directory="INSTALLFOLDER">
18 <Component>
19 <File Id="a.txt" Name="a.txt" Source="A.txt" />
20 </Component>
21
22 <Component>
23 <RegistryValue Root="HKLM" Key="SOFTWARE\!(bind.property.ProductName)\Patch" Name="Version" Value="$(V)" />
24 </Component>
25 </ComponentGroup>
26 </Fragment>
27</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNoFileChanges/Patch.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNoFileChanges/Patch.wxs
deleted file mode 100644
index 889b1220..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNoFileChanges/Patch.wxs
+++ /dev/null
@@ -1,16 +0,0 @@
1<Wix xmlns='http://wixtoolset.org/schemas/v4/wxs'>
2 <Patch
3 AllowRemoval="yes"
4 DisplayName="~Test Patch v$(V)"
5 Description="~Test Small Update Patch v$(V)"
6 MoreInfoURL="http://www.example.com/"
7 Manufacturer="Example Corporation"
8 Classification="Update">
9
10 <Media Id="1" Cabinet="foo.cab">
11 <PatchBaseline Id="RTM" BaselineFile="Baseline.wixpdb" UpdateFile="Update.wixpdb" />
12 </Media>
13
14 <PatchFamily Id='SequenceFamily' Version='$(V)' />
15 </Patch>
16</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNonSpecific/BundleA/Bundle.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNonSpecific/BundleA/Bundle.wxs
deleted file mode 100644
index 4a8f5630..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNonSpecific/BundleA/Bundle.wxs
+++ /dev/null
@@ -1,7 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Fragment>
3 <PackageGroup Id="BundlePackages">
4 <MspPackage Id="PatchA" SourceFile="PatchA.msp" PerMachine="yes" />
5 </PackageGroup>
6 </Fragment>
7</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNonSpecific/BundleB/Bundle.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNonSpecific/BundleB/Bundle.wxs
deleted file mode 100644
index 7fb3cb56..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNonSpecific/BundleB/Bundle.wxs
+++ /dev/null
@@ -1,8 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Fragment>
3 <PackageGroup Id="BundlePackages">
4 <MspPackage Id="PatchA" SourceFile="PatchA.msp" PerMachine="yes" />
5 <MspPackage Id="PatchB" SourceFile="PatchB.msp" PerMachine="yes" />
6 </PackageGroup>
7 </Fragment>
8</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNonSpecific/BundleC/Bundle.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNonSpecific/BundleC/Bundle.wxs
deleted file mode 100644
index 201d177b..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNonSpecific/BundleC/Bundle.wxs
+++ /dev/null
@@ -1,9 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Fragment>
3 <PackageGroup Id="BundlePackages">
4 <MspPackage Id="PatchA" SourceFile="PatchA.msp" PerMachine="yes" />
5 <MspPackage Id="PatchB" SourceFile="PatchB.msp" PerMachine="yes" />
6 <MspPackage Id="PatchC" SourceFile="PatchC.msp" PerMachine="yes" />
7 </PackageGroup>
8 </Fragment>
9</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNonSpecific/PackageA/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNonSpecific/PackageA/Package.wxs
deleted file mode 100644
index 62a89af3..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNonSpecific/PackageA/Package.wxs
+++ /dev/null
@@ -1,44 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package ProductCode="26309973-0A5E-4979-B142-98A6E064EDC0" Name="PackageA" Language="1033" Version="$(var.V)" Manufacturer="Example Corporation"
3 UpgradeCode="32B0396A-CE36-4570-B16E-F88FA42DC409" Scope="perMachine" Compressed="yes">
4
5 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
6 <MediaTemplate EmbedCab="yes" />
7
8 <PropertyRef Id="TestVersion"/>
9
10 <Feature Id="Complete" Level="1">
11 <ComponentRef Id="FileComponent"/>
12 <ComponentRef Id="RegistryComponent"/>
13 <ComponentRef Id="RegistryComponent2" />
14 </Feature>
15 </Package>
16
17 <Fragment>
18 <StandardDirectory Id="ProgramFilesFolder">
19 <Directory Id="INSTALLFOLDER" Name="~Test A" />
20 </StandardDirectory>
21 </Fragment>
22
23 <Fragment>
24 <Component Id="FileComponent" Directory="INSTALLFOLDER">
25 <File Source="$(sys.SOURCEFILEPATH)"/>
26 </Component>
27 </Fragment>
28
29 <Fragment>
30 <Component Id="RegistryComponent" Directory="INSTALLFOLDER">
31 <RegistryValue Root="HKLM" Key="Software\WiX\Tests\$(var.A)" Name="A" Value="!(bind.Property.TestVersion)" Type="string" />
32 </Component>
33 </Fragment>
34
35 <Fragment>
36 <Component Id="RegistryComponent2" Directory="INSTALLFOLDER">
37 <RegistryValue Root="HKLM" Key="Software\WiX\Tests\$(var.B)" Name="A2" Value="!(bind.Property.TestVersion)" Type="string" />
38 </Component>
39 </Fragment>
40
41 <Fragment>
42 <Property Id="TestVersion" Value="$(var.V)"/>
43 </Fragment>
44</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNonSpecific/PatchA/Patch.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNonSpecific/PatchA/Patch.wxs
deleted file mode 100644
index 1b01774c..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNonSpecific/PatchA/Patch.wxs
+++ /dev/null
@@ -1,12 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Patch AllowRemoval="yes" Classification="Update" ClientPatchId="PatchA" Description="Patch A" DisplayName="Patch A" Manufacturer="Example Corporation" MinorUpdateTargetRTM="yes">
3 <Media Id="100" Cabinet="A" EmbedCab="yes">
4 <PatchBaseline Id="PatchA" BaselineFile="Baseline.wixpdb" UpdateFile="Update.wixpdb" />
5 </Media>
6
7 <PatchFamily Id="A" Version="$(var.V)" Supersede="yes">
8 <ComponentRef Id="RegistryComponent" />
9 <PropertyRef Id="TestVersion" />
10 </PatchFamily>
11 </Patch>
12</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNonSpecific/PatchB/Patch.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNonSpecific/PatchB/Patch.wxs
deleted file mode 100644
index f0630ead..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNonSpecific/PatchB/Patch.wxs
+++ /dev/null
@@ -1,14 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Patch AllowRemoval="yes" Classification="Update" ClientPatchId="PatchB" Description="Patch B" DisplayName="Patch B" Manufacturer="Example Corporation" MinorUpdateTargetRTM="yes">
3 <Media Id="100" Cabinet="B" EmbedCab="yes">
4 <PatchBaseline Id="PatchB" BaselineFile="Baseline.wixpdb" UpdateFile="Update.wixpdb">
5 <Validate ProductId="no" />
6 </PatchBaseline>
7 </Media>
8
9 <PatchFamily Id="B" Version="$(var.V)" Supersede="yes">
10 <ComponentRef Id="RegistryComponent" />
11 <PropertyRef Id="TestVersion" />
12 </PatchFamily>
13 </Patch>
14</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNonSpecific/PatchC/Patch.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNonSpecific/PatchC/Patch.wxs
deleted file mode 100644
index f9d2a55a..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNonSpecific/PatchC/Patch.wxs
+++ /dev/null
@@ -1,14 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Patch AllowRemoval="yes" Classification="Update" ClientPatchId="PatchC" Description="Patch C" DisplayName="Patch C" Manufacturer="Example Corporation" MinorUpdateTargetRTM="yes">
3 <Media Id="100" Cabinet="C" EmbedCab="yes">
4 <PatchBaseline Id="PatchC" BaselineFile="Baseline.wixpdb" UpdateFile="Update.wixpdb">
5 <Validate ProductId="no" UpgradeCode="no" />
6 </PatchBaseline>
7 </Media>
8
9 <PatchFamily Id="C" Version="$(var.V)" Supersede="yes">
10 <ComponentRef Id="RegistryComponent" />
11 <PropertyRef Id="TestVersion" />
12 </PatchFamily>
13 </Patch>
14</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/.data/Av1.0.0.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/.data/Av1.0.0.txt
deleted file mode 100644
index 6fd385bd..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/.data/Av1.0.0.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is A v1.0.0
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/.data/Av1.0.1.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/.data/Av1.0.1.txt
deleted file mode 100644
index b1f0bc01..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/.data/Av1.0.1.txt
+++ /dev/null
@@ -1 +0,0 @@
1This ia A v1.0.1
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/.data/Bv1.0.0.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/.data/Bv1.0.0.txt
deleted file mode 100644
index ece55fec..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/.data/Bv1.0.0.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is B v1.0.0
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/.data/Bv1.0.1.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/.data/Bv1.0.1.txt
deleted file mode 100644
index cf3372fd..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/.data/Bv1.0.1.txt
+++ /dev/null
@@ -1 +0,0 @@
1This ia B v1.0.1
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/BundleA/Bundle.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/BundleA/Bundle.wxs
deleted file mode 100644
index bc460636..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/BundleA/Bundle.wxs
+++ /dev/null
@@ -1,10 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Fragment>
3 <PackageGroup Id="BundlePackages">
4 <MsiPackage Id="PackageA" SourceFile="Baseline.msi">
5 <SlipstreamMsp Id="PatchA" />
6 </MsiPackage>
7 <MspPackage Id="PatchA" SourceFile="Patch1.msp" />
8 </PackageGroup>
9 </Fragment>
10</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/Package.wxs
deleted file mode 100644
index e3845382..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/Package.wxs
+++ /dev/null
@@ -1,27 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Name="~Test Package" Version="$(var.V)" Manufacturer="Example Corporation" Language="1033" UpgradeCode="7d326855-e790-4a94-8611-5351f8321fca" Compressed="yes" Scope="perMachine" ProductCode="7d326855-e790-4a94-8611-5351f8321fca">
3
4
5 <MajorUpgrade DowngradeErrorMessage="Newer version already installed." />
6 <MediaTemplate EmbedCab="yes" />
7
8 <StandardDirectory Id="ProgramFilesFolder">
9 <Directory Id="INSTALLFOLDER" Name="~Test A" />
10 </StandardDirectory>
11
12 <Feature Id="Main">
13 <ComponentGroupRef Id="Components" />
14 </Feature>
15 </Package>
16
17 <Fragment>
18 <ComponentGroup Id="Components" Directory="INSTALLFOLDER">
19 <Component>
20 <File Id="a.txt" Name="a.txt" Source="Av$(var.A).txt" />
21 </Component>
22 <Component>
23 <File Id="b.txt" Name="b.txt" Source="Bv$(var.B).txt" />
24 </Component>
25 </ComponentGroup>
26 </Fragment>
27</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/Patch.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/Patch.wxs
deleted file mode 100644
index 52e87f64..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/Patch.wxs
+++ /dev/null
@@ -1,16 +0,0 @@
1<Wix xmlns='http://wixtoolset.org/schemas/v4/wxs'>
2 <Patch
3 AllowRemoval="yes"
4 DisplayName="~Test Patch v$(var.V)"
5 Description="~Test Small Update Patch v$(var.V)"
6 MoreInfoURL="http://www.example.com/"
7 Manufacturer="Example Corporation"
8 Classification="Update">
9
10 <Media Id="1" Cabinet="foo.cab">
11 <PatchBaseline Id="RTM" BaselineFile="Baseline.wixpdb" UpdateFile="Update.wixpdb" />
12 </Media>
13
14 <PatchFamily Id='SequenceFamily' Version='$(var.V)' />
15 </Patch>
16</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Payload/AbsoluteName.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Payload/AbsoluteName.wxs
deleted file mode 100644
index dc94d688..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Payload/AbsoluteName.wxs
+++ /dev/null
@@ -1,9 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Fragment>
3 <PayloadGroup Id="AbsoluteName">
4 <Payload SourceFile="dir\file.ext" Name="\\server\share\target.file" />
5 <Payload SourceFile="dir\file.ext" Name="C:\target.file" />
6 <Payload SourceFile="dir\file.ext" Name="\dir\target.file" />
7 </PayloadGroup>
8 </Fragment>
9</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Payload/CanonicalizeName.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Payload/CanonicalizeName.wxs
deleted file mode 100644
index 544b80ec..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Payload/CanonicalizeName.wxs
+++ /dev/null
@@ -1,7 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Fragment>
3 <PayloadGroup Id="CanonicalizeName">
4 <Payload SourceFile="dir\file.ext" Name="a\..\c\.\d.exe" />
5 </PayloadGroup>
6 </Fragment>
7</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Payload/DownloadUrlPlaceholdersBundle.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Payload/DownloadUrlPlaceholdersBundle.wxs
deleted file mode 100644
index f8f38ea6..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Payload/DownloadUrlPlaceholdersBundle.wxs
+++ /dev/null
@@ -1,30 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Bundle Name="DownloadUrlPlaceholders" Version="1.0.0.0" Manufacturer="test" UpgradeCode="{B04C20B8-70C3-4DE1-8D91-4F11C7C68DED}">
3 <BootstrapperApplicationRef Id="fakeba" />
4
5 <Chain>
6 <PackageGroupRef Id="ContainerPackages" />
7 <PackageGroupRef Id="UncompressedPackages" />
8 </Chain>
9
10 <PayloadGroupRef Id="LayoutOnlyPayloads" />
11 <Container Id="PackagesContainer" Name="packages.cab" DownloadUrl="http://example.com/{0}id/{1}/{2}">
12 <PackageGroupRef Id="ContainerPackages" />
13 </Container>
14 </Bundle>
15 <Fragment>
16 <PackageGroup Id="ContainerPackages">
17 <ExePackage SourceFile="burn.exe" DetectCondition="none" Compressed="no" />
18 </PackageGroup>
19 </Fragment>
20 <Fragment>
21 <PackageGroup Id="UncompressedPackages">
22 <MsiPackage SourceFile="test.msi" DownloadUrl="http://example.com/{0}id/{1}/{2}" Compressed="no" />
23 </PackageGroup>
24 </Fragment>
25 <Fragment>
26 <PayloadGroup Id="LayoutOnlyPayloads">
27 <Payload Id="LayoutOnlyPayload" SourceFile="$(sys.SOURCEFILEPATH)" DownloadUrl="http://example.com/{0}id/{1}/{2}" Compressed="no" />
28 </PayloadGroup>
29 </Fragment>
30</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Payload/SharedBAAndPackagePayloadBundle.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Payload/SharedBAAndPackagePayloadBundle.wxs
deleted file mode 100644
index 5263cbd4..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Payload/SharedBAAndPackagePayloadBundle.wxs
+++ /dev/null
@@ -1,16 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <PackageGroup Id="BundlePackages">
5 <ExePackage SourceFile="burn.exe" DetectCondition="none">
6 <PayloadGroupRef Id="Shared" />
7 </ExePackage>
8 </PackageGroup>
9 <BootstrapperApplication>
10 <PayloadGroupRef Id="Shared" />
11 </BootstrapperApplication>
12 <PayloadGroup Id="Shared">
13 <Payload SourceFile="$(sys.SOURCEFILEPATH)" />
14 </PayloadGroup>
15 </Fragment>
16</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Payload/ValidName.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Payload/ValidName.wxs
deleted file mode 100644
index 9c37a27d..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Payload/ValidName.wxs
+++ /dev/null
@@ -1,7 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Fragment>
3 <PayloadGroup Id="ValidName">
4 <Payload SourceFile="dir\file.ext" Name="dir\file.ext" />
5 </PayloadGroup>
6 </Fragment>
7</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Preprocessor/EnvParens.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Preprocessor/EnvParens.wxs
deleted file mode 100644
index 68d115c5..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Preprocessor/EnvParens.wxs
+++ /dev/null
@@ -1,4 +0,0 @@
1<?xml version="1.0" encoding="utf-8" ?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <?define Test = "$(env.CommonProgramFiles(x86))" ?>
4</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ProductTag/Package.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/ProductTag/Package.en-us.wxl
deleted file mode 100644
index 38c12ac1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ProductTag/Package.en-us.wxl
+++ /dev/null
@@ -1,11 +0,0 @@
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/ProductTag/PackageComponents.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/ProductTag/PackageComponents.wxs
deleted file mode 100644
index 37a2c462..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ProductTag/PackageComponents.wxs
+++ /dev/null
@@ -1,10 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
5 <Component>
6 <File Source="example.txt" />
7 </Component>
8 </ComponentGroup>
9 </Fragment>
10</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ProductTag/PackageWithTag.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/ProductTag/PackageWithTag.wxs
deleted file mode 100644
index 5bf78a9d..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ProductTag/PackageWithTag.wxs
+++ /dev/null
@@ -1,18 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package ProductCode="8738B0C5-C4AA-4634-8C03-11EAA2F1E15D" Name="~TagTestPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a">
3
4 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
5
6 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
7 <ComponentGroupRef Id="ProductComponents" />
8 </Feature>
9
10 <SoftwareTag Regid="wixtoolset.org" InstallDirectory="INSTALLFOLDER" />
11 </Package>
12
13 <Fragment>
14 <StandardDirectory Id="ProgramFilesFolder">
15 <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
16 </StandardDirectory>
17 </Fragment>
18</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ProductTag/example.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/ProductTag/example.txt
deleted file mode 100644
index 1b4ffe8a..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ProductTag/example.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is example.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ProductWithComponentGroupRef/MinimalComponentGroup.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/ProductWithComponentGroupRef/MinimalComponentGroup.wxs
deleted file mode 100644
index f62bbd0e..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ProductWithComponentGroupRef/MinimalComponentGroup.wxs
+++ /dev/null
@@ -1,10 +0,0 @@
1<?xml version="1.0" encoding="utf-8" ?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="MinimalComponentGroup" Directory="INSTALLFOLDER">
5 <Component>
6 <File Source="test.txt" />
7 </Component>
8 </ComponentGroup>
9 </Fragment>
10</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ProductWithComponentGroupRef/Product.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/ProductWithComponentGroupRef/Product.wxs
deleted file mode 100644
index 433be7f0..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ProductWithComponentGroupRef/Product.wxs
+++ /dev/null
@@ -1,19 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <?ifndef ProductCode?>
3 <?define ProductCode = *?>
4 <?endif?>
5 <Package Name="MsiPackage" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="12E4699F-E774-4D05-8A01-5BDD41BBA127" Compressed="no" Scope="perMachine" ProductCode="$(var.ProductCode)">
6
7 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
8
9 <Feature Id="ProductFeature" Title="MsiPackageTitle">
10 <ComponentGroupRef Id="ProductComponents" />
11 </Feature>
12 </Package>
13
14 <Fragment>
15 <StandardDirectory Id="ProgramFiles6432Folder">
16 <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
17 </StandardDirectory>
18 </Fragment>
19</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ProgId/NestedUnderClass.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/ProgId/NestedUnderClass.wxs
deleted file mode 100644
index 0621eb8d..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ProgId/NestedUnderClass.wxs
+++ /dev/null
@@ -1,13 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <Component Id="ProgIdComp" Directory="INSTALLFOLDER" Guid="5B3B3FC1-533D-4C29-BFB3-0E88B51E59D8">
6 <File Source="test.txt" Name="ProgIdComp.txt"></File>
7 <Class Id="F12A6F69-117F-471F-AE73-F8E74218F498" Advertise="yes" Context="LocalServer32" Description="FakeClassF12A" ThreadingModel="apartment" Version="0.0.0.1">
8 <ProgId Id="73E7DF7E-EFAC-4E11-90E2-6EBAEB8DE58D" NoOpen="NoOpen73E7" />
9 </Class>
10 </Component>
11 </ComponentGroup>
12 </Fragment>
13</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ProgId/Package.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/ProgId/Package.en-us.wxl
deleted file mode 100644
index 38c12ac1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ProgId/Package.en-us.wxl
+++ /dev/null
@@ -1,11 +0,0 @@
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/ProgId/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/ProgId/Package.wxs
deleted file mode 100644
index d3b31db5..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ProgId/Package.wxs
+++ /dev/null
@@ -1,17 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Name="ProgId" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
3
4
5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
6
7 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
8 <ComponentGroupRef Id="ProductComponents" />
9 </Feature>
10 </Package>
11
12 <Fragment>
13 <StandardDirectory Id="ProgramFilesFolder">
14 <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
15 </StandardDirectory>
16 </Fragment>
17</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ProgId/PackageComponents.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/ProgId/PackageComponents.wxs
deleted file mode 100644
index 5166be16..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ProgId/PackageComponents.wxs
+++ /dev/null
@@ -1,16 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
5 <Component>
6 <File Name="Foo.exe" Source="test.txt" />
7 <ProgId Id="Foo.File.hol.15" Advertise="yes" Description="Foo Holiday File">
8 <ProgId Id="Foo.File.hol" />
9 <Extension Id="hol">
10 <Verb Id="Open" Argument="/hol &quot;%1&quot;" Sequence="1" />
11 </Extension>
12 </ProgId>
13 </Component>
14 </ComponentGroup>
15 </Fragment>
16</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ProgId/data/test.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/ProgId/data/test.txt
deleted file mode 100644
index cd0db0e1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ProgId/data/test.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is test.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PublishComponent/Package.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/PublishComponent/Package.en-us.wxl
deleted file mode 100644
index 38c12ac1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PublishComponent/Package.en-us.wxl
+++ /dev/null
@@ -1,11 +0,0 @@
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/PublishComponent/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/PublishComponent/Package.wxs
deleted file mode 100644
index 8f4f661d..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PublishComponent/Package.wxs
+++ /dev/null
@@ -1,34 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Name="MsiPackage" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
3 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
4
5 <Feature Id="ProductFeature1" Title="!(loc.FeatureTitle)">
6 <ComponentRef Id="Component1" Primary="yes" />
7 </Feature>
8
9 <Feature Id="ProductFeature2" Title="!(loc.FeatureTitle)">
10 <ComponentRef Id="Component1" />
11 <ComponentRef Id="Component2" />
12 </Feature>
13 </Package>
14
15 <Fragment>
16 <StandardDirectory Id="ProgramFilesFolder">
17 <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
18 </StandardDirectory>
19 </Fragment>
20
21 <Fragment>
22 <Component Id="Component1" Directory="INSTALLFOLDER" Guid="C8EFA5DF-2876-4724-A003-A6BEBF140BB1">
23 <File Id="File1" Source="test.txt" />
24 <Category Id="{BD245B5A-EC33-46ED-98FF-E9D3D416AD04}" AppData="AppData1" Qualifier="Qualifier1" />
25 </Component>
26 </Fragment>
27
28 <Fragment>
29 <Component Id="Component2" Directory="INSTALLFOLDER" Guid="8DE79DE7-4B55-4D43-88F5-AD6A1E8D242A">
30 <File Id="File2" Source="test.txt" />
31 <Category Id="{0A82C8F6-9CE9-4336-B8BE-91A39B5F7081}" AppData="AppData2" Qualifier="Qualifier2" />
32 </Component>
33 </Fragment>
34</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PublishComponent/data/test.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/PublishComponent/data/test.txt
deleted file mode 100644
index cd0db0e1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/PublishComponent/data/test.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is test.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Registry/DuplicateRegistryValueIds.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Registry/DuplicateRegistryValueIds.wxs
deleted file mode 100644
index 452aea69..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Registry/DuplicateRegistryValueIds.wxs
+++ /dev/null
@@ -1,14 +0,0 @@
1<?xml version="1.0" encoding="utf-8" ?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
5 <Component>
6 <RegistryKey Root="HKLM" Key="Software\Acme\Foobar 1.0">
7 <RegistryValue Type="string" Name="InstallDir" Value="[TARGETDIR]" />
8 <RegistryValue Type="string" Name="InstallDir" Value="[INSTALLDIR]" />
9 <RegistryValue Type="string" Name="InstallDir" Value="[ProgramFilesFolder]" />
10 </RegistryKey>
11 </Component>
12 </ComponentGroup>
13 </Fragment>
14</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Registry/RegistryKeyEndingWithBackslash.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Registry/RegistryKeyEndingWithBackslash.wxs
deleted file mode 100644
index 1fb2e906..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Registry/RegistryKeyEndingWithBackslash.wxs
+++ /dev/null
@@ -1,12 +0,0 @@
1<?xml version="1.0" encoding="utf-8" ?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
5 <Component Id="MiscComponent" Guid="7C40C257-AB36-4B8C-8FD1-C56E0AC4AAEF">
6 <RegistryKey Id="reg1" Root="HKLM" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes" Key="Software\WBM\WB\">
7 <RegistryValue Id="reg2" Type="string" Name="InstallationPath" Value="[INSTALLFOLDER]" />
8 </RegistryKey>
9 </Component>
10 </ComponentGroup>
11 </Fragment>
12</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Registry/RegistryValue.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Registry/RegistryValue.wxs
deleted file mode 100644
index fe6e179e..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Registry/RegistryValue.wxs
+++ /dev/null
@@ -1,11 +0,0 @@
1<?xml version="1.0" encoding="utf-8" ?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
5 <Component Id="MiscComponent" Guid="7C40C257-AB36-4B8C-8FD1-C56E0AC4AAEF">
6 <RegistryValue Root="HKLM" Key="Path\To\Key" Value="1.0.1234.123" Type="string" KeyPath="yes" />
7 <RegistryValue Root="HKLM" Key="Path\To\AnotherKey" Name="Secret" Type="binary" />
8 </Component>
9 </ComponentGroup>
10 </Fragment>
11</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Registry/RegistryValueMultiString.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Registry/RegistryValueMultiString.wxs
deleted file mode 100644
index c62c571d..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Registry/RegistryValueMultiString.wxs
+++ /dev/null
@@ -1,17 +0,0 @@
1<?xml version="1.0" encoding="utf-8" ?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
5 <Component Id="MultiStringComponent" Guid="7C40C257-AB36-4B8C-8FD1-C56E0AC4AAEF">
6 <RegistryValue Root="HKLM" Key="Path\To\Key" Type="multiString" KeyPath="yes">
7 <MultiString Value="a" />
8 <MultiStringValue Value="b" />
9 <MultiStringValue />
10 <MultiString Value="c" />
11 <MultiStringValue />
12 </RegistryValue>
13 <RegistryValue Root="HKLM" Key="Path\To\AnotherKey" Name="Secret" Type="binary" />
14 </Component>
15 </ComponentGroup>
16 </Fragment>
17</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Registry/RemoveRegistryKey.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Registry/RemoveRegistryKey.wxs
deleted file mode 100644
index a55a1e18..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Registry/RemoveRegistryKey.wxs
+++ /dev/null
@@ -1,11 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <Component Id="RemoveRegistryKeyComp" Directory="INSTALLFOLDER" Guid="5B3B3FC1-533D-4C29-BFB3-0E88B51E59D8">
6 <File Source="test.txt" />
7 <RemoveRegistryKey Id="RemoveAKeyName" Action="removeOnUninstall" Root="HKLM" Key="AKeyName" />
8 </Component>
9 </ComponentGroup>
10 </Fragment>
11</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ReserveCost/ReserveCost.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/ReserveCost/ReserveCost.wxs
deleted file mode 100644
index 3218295b..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ReserveCost/ReserveCost.wxs
+++ /dev/null
@@ -1,11 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <Component Id="ReserveCostComp" Directory="INSTALLFOLDER" Guid="5B3B3FC1-533D-4C29-BFB3-0E88B51E59D8">
6 <File Source="test.txt" />
7 <ReserveCost Id="TestCost" RunFromSource="200" RunLocal="100"></ReserveCost>
8 </Component>
9 </ComponentGroup>
10 </Fragment>
11</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/RollbackBoundary/BeginningOfChain.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/RollbackBoundary/BeginningOfChain.wxs
deleted file mode 100644
index ecfccfcb..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/RollbackBoundary/BeginningOfChain.wxs
+++ /dev/null
@@ -1,9 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <PackageGroup Id="BundlePackages">
5 <RollbackBoundary Id="nonvital" Vital="no" />
6 <PackageGroupRef Id="MinimalPackageGroup" />
7 </PackageGroup>
8 </Fragment>
9</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SameFileFolders/TestComponents.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/SameFileFolders/TestComponents.wxs
deleted file mode 100644
index bbad63e6..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SameFileFolders/TestComponents.wxs
+++ /dev/null
@@ -1,16 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
5 <Component Subdirectory="a">
6 <File Source="a\test.txt" />
7 </Component>
8 <Component Subdirectory="b">
9 <File Source="b\test.txt" />
10 </Component>
11 <Component Subdirectory="c">
12 <File Source="c\test.txt" />
13 </Component>
14 </ComponentGroup>
15 </Fragment>
16</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SameFileFolders/data/a/test.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/SameFileFolders/data/a/test.txt
deleted file mode 100644
index 1970cae6..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SameFileFolders/data/a/test.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is a\test.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SameFileFolders/data/b/test.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/SameFileFolders/data/b/test.txt
deleted file mode 100644
index fa2c7082..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SameFileFolders/data/b/test.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is b\test.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SameFileFolders/data/c/test.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/SameFileFolders/data/c/test.txt
deleted file mode 100644
index 1c0cbda6..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SameFileFolders/data/c/test.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is c\test.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SequenceTables/DecompiledSequenceTables.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/SequenceTables/DecompiledSequenceTables.wxs
deleted file mode 100644
index d5379e7b..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SequenceTables/DecompiledSequenceTables.wxs
+++ /dev/null
@@ -1,32 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Codepage="1252" Language="1033" Manufacturer="Example Corporation" Name="MsiPackage" UpgradeCode="{12E4699F-E774-4D05-8A01-5BDD41BBA127}" Version="1.0.0.0" ProductCode="{74C29381-1915-4948-B8B4-5646806A0BD4}">
3 <CustomAction Id="CustomAction2" Property="TestAdvtExecuteSequenceProperty" Value="1" />
4 <StandardDirectory Id="ProgramFilesFolder">
5 <Directory Id="INSTALLFOLDER" Name="MsiPackage" ShortName="ykd0udtb">
6 <Component Id="test.txt" Guid="{E597A58A-03CB-50D8-93E3-DABA263F233A}" Bitness="always32">
7 <File Id="test.txt" Name="test.txt" KeyPath="yes" Source="MsiPackage\test.txt" />
8 </Component>
9 </Directory>
10 </StandardDirectory>
11 <Feature Id="ProductFeature" Level="1" Title="MsiPackageTitle">
12 <ComponentRef Id="test.txt" />
13 </Feature>
14 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
15 <Media Id="1" />
16 <InstallExecuteSequence>
17 <Custom Action="CustomAction2" After="CostInitialize" />
18 </InstallExecuteSequence>
19 <InstallUISequence>
20 <Custom Action="CustomAction2" After="CostInitialize" />
21 </InstallUISequence>
22 <AdminExecuteSequence>
23 <Custom Action="CustomAction2" After="CostInitialize" />
24 </AdminExecuteSequence>
25 <AdminUISequence>
26 <Custom Action="CustomAction2" After="CostInitialize" />
27 </AdminUISequence>
28 <AdvertiseExecuteSequence>
29 <Custom Action="CustomAction2" After="CostInitialize" />
30 </AdvertiseExecuteSequence>
31 </Package>
32</Wix> \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SequenceTables/SequenceTables.msi b/src/test/WixToolsetTest.CoreIntegration/TestData/SequenceTables/SequenceTables.msi
deleted file mode 100644
index 7f894091..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SequenceTables/SequenceTables.msi
+++ /dev/null
Binary files differ
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ServiceInstall/OwnProcess.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/ServiceInstall/OwnProcess.wxs
deleted file mode 100644
index 65cba20e..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ServiceInstall/OwnProcess.wxs
+++ /dev/null
@@ -1,12 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <Component Directory="INSTALLFOLDER">
6 <File Id="test.txt" Source="test.txt" />
7 <ServiceInstall Name="SampleService" ErrorControl="ignore" Start="disabled" Type="ownProcess" />
8 <ServiceControl Name="SampleService" Start="install" Stop="uninstall" Remove="uninstall" Wait="yes" />
9 </Component>
10 </ComponentGroup>
11 </Fragment>
12</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SetProperty/Package.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/SetProperty/Package.en-us.wxl
deleted file mode 100644
index 38c12ac1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SetProperty/Package.en-us.wxl
+++ /dev/null
@@ -1,11 +0,0 @@
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/SetProperty/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/SetProperty/Package.wxs
deleted file mode 100644
index d3f8accf..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SetProperty/Package.wxs
+++ /dev/null
@@ -1,19 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Name="MsiPackage" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
3
4
5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
6
7 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
8 <ComponentGroupRef Id="ProductComponents" />
9 </Feature>
10
11 <SetProperty Id="INSTALLLOCATION" Value="[INSTALLFOLDER]" After="CostFinalize" />
12 </Package>
13
14 <Fragment>
15 <StandardDirectory Id="ProgramFilesFolder">
16 <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
17 </StandardDirectory>
18 </Fragment>
19</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SetProperty/PackageComponents.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/SetProperty/PackageComponents.wxs
deleted file mode 100644
index e26c4509..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SetProperty/PackageComponents.wxs
+++ /dev/null
@@ -1,10 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
5 <Component>
6 <File Source="test.txt" />
7 </Component>
8 </ComponentGroup>
9 </Fragment>
10</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SetProperty/data/test.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/SetProperty/data/test.txt
deleted file mode 100644
index cd0db0e1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SetProperty/data/test.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is test.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SetVariable/Simple.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/SetVariable/Simple.wxs
deleted file mode 100644
index 7e8f2e99..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SetVariable/Simple.wxs
+++ /dev/null
@@ -1,15 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <PackageGroup Id="BundlePackages">
5 <PackageGroupRef Id="MinimalPackageGroup" />
6 </PackageGroup>
7
8 <SetVariable Id="SetCoercedNumber" Variable="CoercedNumber" Value="2" />
9 <SetVariable Id="SetCoercedString" Variable="CoercedString" Value="Bar" />
10 <SetVariable Id="SetCoercedVersion" Variable="CoercedVersion" Value="v2.0" />
11 <SetVariable Id="SetNeedsFormatting" Variable="NeedsFormatting" Value="[One] [Two] [Three]" />
12 <SetVariable Id="SetUnset" Variable="Unset" Condition="VersionString = v2.0" After="SetVersionString" />
13 <SetVariable Id="SetVersionString" Variable="VersionString" Value="v1.0" Type="string" />
14 </Fragment>
15</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SharedPayloadsBetweenPackages/SharedPayloadsBetweenPackages.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/SharedPayloadsBetweenPackages/SharedPayloadsBetweenPackages.wxs
deleted file mode 100644
index f16fce0d..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SharedPayloadsBetweenPackages/SharedPayloadsBetweenPackages.wxs
+++ /dev/null
@@ -1,18 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <PackageGroup Id="BundlePackages">
5 <ExePackage SourceFile="C:\Windows\system32\credwiz.exe" Permanent="yes" DetectCondition="none">
6 <PayloadGroupRef Id="SharedPayloads" />
7 </ExePackage>
8 <ExePackage SourceFile="C:\Windows\system32\cscript.exe" Permanent="yes" DetectCondition="none">
9 <PayloadGroupRef Id="SharedPayloads" />
10 </ExePackage>
11 </PackageGroup>
12 </Fragment>
13 <Fragment>
14 <PayloadGroup Id="SharedPayloads">
15 <Payload Id="SourceFilePayload" SourceFile="$(sys.SOURCEFILEPATH)" />
16 </PayloadGroup>
17 </Fragment>
18</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Shortcut/DecompiledShortcuts.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Shortcut/DecompiledShortcuts.wxs
deleted file mode 100644
index da1e4f38..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Shortcut/DecompiledShortcuts.wxs
+++ /dev/null
@@ -1,19 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Codepage="1252" Language="1033" Manufacturer="Example Corporation" Name="MsiPackage" UpgradeCode="{12E4699F-E774-4D05-8A01-5BDD41BBA127}" Version="1.0.0.0" ProductCode="{6CA94D1D-B568-4ED6-9EBC-3534C85970BB}">
3 <StandardDirectory Id="ProgramFilesFolder">
4 <Directory Id="INSTALLFOLDER" Name="MsiPackage" ShortName="ykd0udtb">
5 <Component Id="ShortcutComp" Guid="{5B3B3FC1-533D-4C29-BFB3-0E88B51E59D8}" Bitness="always32">
6 <File Id="test.txt" Name="test.txt" KeyPath="yes" Source="MsiPackage\test.txt" />
7 <Shortcut Id="FileTargetShortcut" Directory="INSTALLFOLDER" Name="FileTargetShortcut" ShortName="lm2tdtqp" Target="[#test.txt]" />
8 <Shortcut Id="CustomTargetShortcut" Directory="INSTALLFOLDER" Name="Planner" ShortName="PLANNER" Target="[INSTALLFOLDER]custom.target" />
9 <Shortcut Id="AdvtShortcut" Directory="INSTALLFOLDER" Name="AdvtShortcut" ShortName="mdbqel9r" Advertise="yes" />
10 </Component>
11 </Directory>
12 </StandardDirectory>
13 <Feature Id="ProductFeature" Level="1" Title="MsiPackageTitle">
14 <ComponentRef Id="ShortcutComp" Primary="yes" />
15 </Feature>
16 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
17 <Media Id="1" />
18 </Package>
19</Wix> \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Shortcut/ShortcutProperty.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Shortcut/ShortcutProperty.wxs
deleted file mode 100644
index 27f2ab9b..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Shortcut/ShortcutProperty.wxs
+++ /dev/null
@@ -1,14 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <Component Id="ShortcutComp" Directory="INSTALLFOLDER" Guid="5B3B3FC1-533D-4C29-BFB3-0E88B51E59D8">
6 <File Source="test.txt">
7 <Shortcut Id="TheShortcut" Name="d" Directory="INSTALLFOLDER">
8 <ShortcutProperty Key="CustomShortcutKey" Value="CustomShortcutValue"></ShortcutProperty>
9 </Shortcut>
10 </File>
11 </Component>
12 </ComponentGroup>
13 </Fragment>
14</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Shortcut/ShortcutSameNameShortName.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Shortcut/ShortcutSameNameShortName.wxs
deleted file mode 100644
index d704bbf1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Shortcut/ShortcutSameNameShortName.wxs
+++ /dev/null
@@ -1,12 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <Component Id="ShortcutComp" Directory="INSTALLFOLDER" Guid="5B3B3FC1-533D-4C29-BFB3-0E88B51E59D8">
6 <File Source="test.txt">
7 <Shortcut Name="DaName" ShortName="DANAME" Directory="INSTALLFOLDER" />
8 </File>
9 </Component>
10 </ComponentGroup>
11 </Fragment>
12</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Shortcut/shortcuts.msi b/src/test/WixToolsetTest.CoreIntegration/TestData/Shortcut/shortcuts.msi
deleted file mode 100644
index 8737f3c2..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Shortcut/shortcuts.msi
+++ /dev/null
Binary files differ
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/Bundle.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/Bundle.en-us.wxl
deleted file mode 100644
index bc1dee83..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/Bundle.en-us.wxl
+++ /dev/null
@@ -1,10 +0,0 @@
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="BundleName">~TestBundle</String>
9
10</WixLocalization>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/Bundle.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/Bundle.wxs
deleted file mode 100644
index 21749c07..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/Bundle.wxs
+++ /dev/null
@@ -1,12 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Bundle Name="!(loc.BundleName)" Version="!(bind.packageVersion.test.msi)" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a">
3 <BootstrapperApplication>
4 <BootstrapperApplicationDll SourceFile="fakeba.dll" />
5 </BootstrapperApplication>
6 <Chain>
7 <MsiPackage SourceFile="test.msi">
8 <MsiProperty Name="TEST" Value="1" />
9 </MsiPackage>
10 </Chain>
11 </Bundle>
12</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/MultiFileBootstrapperApplication.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/MultiFileBootstrapperApplication.wxs
deleted file mode 100644
index f5fe9885..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/MultiFileBootstrapperApplication.wxs
+++ /dev/null
@@ -1,7 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Fragment>
3 <BootstrapperApplication Id="fakeba">
4 <BootstrapperApplicationDll SourceFile="fakeba.dll" />
5 </BootstrapperApplication>
6 </Fragment>
7</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/MultiFileBundle.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/MultiFileBundle.wxs
deleted file mode 100644
index 48f53ae3..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/MultiFileBundle.wxs
+++ /dev/null
@@ -1,18 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Bundle Name="!(loc.BundleName)" Version="!(bind.packageVersion.test.msi)" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a">
4 <BootstrapperApplicationRef Id="fakeba">
5 <PayloadGroupRef Id="TestPayloadGroup" />
6 </BootstrapperApplicationRef>
7 <Chain>
8 <MsiPackage SourceFile="test.msi">
9 <MsiProperty Name="TEST" Value="1" />
10 </MsiPackage>
11 </Chain>
12 </Bundle>
13 <Fragment>
14 <PayloadGroup Id="TestPayloadGroup">
15 <Payload SourceFile="MsiPackage\test.txt" />
16 </PayloadGroup>
17 </Fragment>
18</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/data/MsiPackage/Shared.dll b/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/data/MsiPackage/Shared.dll
deleted file mode 100644
index 0e461ba8..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/data/MsiPackage/Shared.dll
+++ /dev/null
@@ -1 +0,0 @@
1This is Shared.dll. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/data/MsiPackage/test.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/data/MsiPackage/test.txt
deleted file mode 100644
index 8b986220..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/data/MsiPackage/test.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is test.txt \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/data/fakeba.dll b/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/data/fakeba.dll
deleted file mode 100644
index 970efdf0..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/data/fakeba.dll
+++ /dev/null
@@ -1 +0,0 @@
1This is a fakeba.dll \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/data/test.msi b/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/data/test.msi
deleted file mode 100644
index 0722d60e..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/data/test.msi
+++ /dev/null
Binary files differ
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleMerge/.data/test.msm b/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleMerge/.data/test.msm
deleted file mode 100644
index 6f179aba..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleMerge/.data/test.msm
+++ /dev/null
Binary files differ
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleMerge/Package.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleMerge/Package.en-us.wxl
deleted file mode 100644
index 38c12ac1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleMerge/Package.en-us.wxl
+++ /dev/null
@@ -1,11 +0,0 @@
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/SimpleMerge/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleMerge/Package.wxs
deleted file mode 100644
index 3c999812..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleMerge/Package.wxs
+++ /dev/null
@@ -1,20 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Name="MsiPackage" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="yes" InstallerVersion="200" Scope="perMachine">
3
4
5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
6
7 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
8 <MergeRef Id="TestMsm" />
9 </Feature>
10 </Package>
11
12 <Fragment>
13 <StandardDirectory Id="ProgramFilesFolder">
14 <Directory Id="INSTALLFOLDER" Name="MsiPackage">
15 <!-- -->
16 <Merge Id="TestMsm" Language="1033" SourceFile="test.msm" />
17 </Directory>
18 </StandardDirectory>
19 </Fragment>
20</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleModule/Module.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleModule/Module.en-us.wxl
deleted file mode 100644
index c74e86a7..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleModule/Module.en-us.wxl
+++ /dev/null
@@ -1,10 +0,0 @@
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="Manufacturer">Example Company</String>
9
10</WixLocalization>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleModule/Module.wixproj b/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleModule/Module.wixproj
deleted file mode 100644
index 597d4318..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleModule/Module.wixproj
+++ /dev/null
@@ -1,48 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3 <PropertyGroup>
4 <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
5 <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
6 <ProductVersion>0.9</ProductVersion>
7 <ProjectGuid>27df04c6-3cef-4b9a-bac6-4e78d188384f</ProjectGuid>
8 <OutputName>MergeModule1</OutputName>
9 <OutputType>Module</OutputType>
10 <Name>MergeModule1</Name>
11 <RootNamespace>MergeModule1</RootNamespace>
12 </PropertyGroup>
13 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
14 <PlatformName>$(Platform)</PlatformName>
15 <OutputPath>bin\$(Platform)\$(Configuration)\</OutputPath>
16 <DefineConstants>Debug</DefineConstants>
17 </PropertyGroup>
18 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
19 <PlatformName>$(Platform)</PlatformName>
20 <OutputPath>bin\$(Platform)\$(Configuration)\</OutputPath>
21 </PropertyGroup>
22 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
23 <PlatformName>$(Platform)</PlatformName>
24 <OutputPath>bin\$(Platform)\$(Configuration)\</OutputPath>
25 <DefineConstants>Debug</DefineConstants>
26 </PropertyGroup>
27 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
28 <PlatformName>$(Platform)</PlatformName>
29 <OutputPath>bin\$(Platform)\$(Configuration)\</OutputPath>
30 </PropertyGroup>
31 <ItemGroup>
32 <Compile Include="MergeModule.wxs" />
33 </ItemGroup>
34 <ItemGroup>
35 <EmbeddedResource Include="MergeModule.en-us.wxl" />
36 </ItemGroup>
37 <ItemGroup>
38 <WixExtension Include="FgwepExtension.wixext">
39 <Name>FgwepExtension.wixext</Name>
40 <HintPath>$(WixExtDir)\FgwepExtension.wixext.dll</HintPath>
41 </WixExtension>
42 </ItemGroup>
43 <Import Project="$(WixTargetsPath)" Condition=" '$(WixTargetsPath)' != '' " />
44 <Import Project="$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\wix.targets" Condition=" '$(WixTargetsPath)' == '' AND Exists('$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\wix.targets') " />
45 <Target Name="EnsureWixToolsetInstalled" Condition=" '$(WixTargetsImported)' != 'true' ">
46 <Error Text="FG-WiX or WiX Toolset build tools (v3.11 or later) must be installed to build this project. To download FG-WiX, go to https://www.firegiant.com/downloads/. To download the WiX Toolset, go to http://wixtoolset.org/releases/." />
47 </Target>
48</Project> \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleModule/Module.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleModule/Module.wxs
deleted file mode 100644
index 8317e7af..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleModule/Module.wxs
+++ /dev/null
@@ -1,17 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Module Id="MergeModule1" Language="1033" Version="1.0.0.0" Guid="243FB739-4D05-472F-9CFB-EF6B1017B6DE" InstallerVersion="200">
3 <SummaryInformation Manufacturer="!(loc.Manufacturer)" />
4
5 <Directory Id="MergeRedirectFolder">
6 <Component Id="ModuleComponent1" Guid="A04E61B2-3ED4-4803-B2EB-4B773576FA45">
7 <File Id="File1" Source="test.txt" />
8 </Component>
9 </Directory>
10
11 <Directory Id="NotTheMergeRedirectFolder">
12 <Component Id="ModuleComponent2" Guid="EADB3047-BD32-417B-AABF-B8D9CCDC22DA">
13 <File Id="File2" Source="test.txt" />
14 </Component>
15 </Directory>
16 </Module>
17</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleModule/data/test.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleModule/data/test.txt
deleted file mode 100644
index cd0db0e1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleModule/data/test.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is test.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SingleExeBundle/SingleExePackageGroup.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/SingleExeBundle/SingleExePackageGroup.wxs
deleted file mode 100644
index cad1f049..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SingleExeBundle/SingleExePackageGroup.wxs
+++ /dev/null
@@ -1,8 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <PackageGroup Id="BundlePackages">
5 <ExePackage DetectCondition="DetectedSomething" SourceFile="burn.exe" />
6 </PackageGroup>
7 </Fragment>
8</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SingleExeBundle/SingleExeRemotePayload.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/SingleExeBundle/SingleExeRemotePayload.wxs
deleted file mode 100644
index 0d459f02..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SingleExeBundle/SingleExeRemotePayload.wxs
+++ /dev/null
@@ -1,27 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <PackageGroup Id="BundlePackages">
5 <ExePackage
6 InstallArguments="/q /norestart &quot;[WixBundleName]&quot; /log &quot;[NetFx462FullLog].html&quot;"
7 UninstallArguments="/uninstall /q /norestart &quot;[WixBundleName]&quot; /log &quot;[NetFx462FullLog].html&quot;"
8 PerMachine="yes"
9 DetectCondition="A"
10 InstallCondition="B"
11 Id="NetFx462Web"
12 Vital="yes"
13 Permanent="yes"
14 Protocol="netfx4"
15 LogPathVariable="NetFx462FullLog">
16 <ExePackagePayload
17 DownloadUrl="C"
18 Name="NDP462-KB3151802-Web.exe"
19 Description="Microsoft .NET Framework 4.6.2 Setup"
20 Hash="C42E6ED280290648BBD59F664008852F4CFE4548"
21 ProductName="Microsoft .NET Framework 4.6.2"
22 Size="9223372036854775807"
23 Version="4.6.1590.0" />
24 </ExePackage>
25 </PackageGroup>
26 </Fragment>
27</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFile/Package.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFile/Package.en-us.wxl
deleted file mode 100644
index 38c12ac1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFile/Package.en-us.wxl
+++ /dev/null
@@ -1,11 +0,0 @@
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/SingleFile/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFile/Package.wxs
deleted file mode 100644
index d7b5bdc0..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFile/Package.wxs
+++ /dev/null
@@ -1,17 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Name="MsiPackage" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
3
4
5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
6
7 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
8 <ComponentGroupRef Id="ProductComponents" />
9 </Feature>
10 </Package>
11
12 <Fragment>
13 <StandardDirectory Id="ProgramFilesFolder">
14 <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
15 </StandardDirectory>
16 </Fragment>
17</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFile/PackageComponents.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFile/PackageComponents.wxs
deleted file mode 100644
index b8e9f59c..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFile/PackageComponents.wxs
+++ /dev/null
@@ -1,13 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
5 <Component>
6 <File Source="test.txt" />
7 </Component>
8 <Component Id="Shared.dll" Shared="yes">
9 <File Name="Shared.dll" Source="test.txt" />
10 </Component>
11 </ComponentGroup>
12 </Fragment>
13</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFile/data/test.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFile/data/test.txt
deleted file mode 100644
index cd0db0e1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFile/data/test.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is test.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFileCompressed/Package.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFileCompressed/Package.en-us.wxl
deleted file mode 100644
index 38c12ac1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFileCompressed/Package.en-us.wxl
+++ /dev/null
@@ -1,11 +0,0 @@
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/SingleFileCompressed/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFileCompressed/Package.wxs
deleted file mode 100644
index baa0c6b1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFileCompressed/Package.wxs
+++ /dev/null
@@ -1,25 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Name="MsiPackage" Codepage="65001" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="yes" InstallerVersion="200" Scope="perMachine">
3
4
5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
6
7 <?ifndef MediaTemplateCompressionLevel?>
8 <Media Id="1" Cabinet="example.cab" />
9 <?elseif $(MediaTemplateCompressionLevel) = ""?>
10 <MediaTemplate />
11 <?else?>
12 <MediaTemplate CabinetTemplate="low{0}.cab" CompressionLevel="$(MediaTemplateCompressionLevel)" />
13 <?endif?>
14
15 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
16 <ComponentGroupRef Id="ProductComponents" />
17 </Feature>
18 </Package>
19
20 <Fragment>
21 <StandardDirectory Id="ProgramFilesFolder">
22 <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
23 </StandardDirectory>
24 </Fragment>
25</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFileCompressed/PackageComponents.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFileCompressed/PackageComponents.wxs
deleted file mode 100644
index e26c4509..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFileCompressed/PackageComponents.wxs
+++ /dev/null
@@ -1,10 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
5 <Component>
6 <File Source="test.txt" />
7 </Component>
8 </ComponentGroup>
9 </Fragment>
10</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFileCompressed/data/test.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFileCompressed/data/test.txt
deleted file mode 100644
index cd0db0e1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFileCompressed/data/test.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is test.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SuppressModularization/Module.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/SuppressModularization/Module.en-us.wxl
deleted file mode 100644
index c74e86a7..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SuppressModularization/Module.en-us.wxl
+++ /dev/null
@@ -1,10 +0,0 @@
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="Manufacturer">Example Company</String>
9
10</WixLocalization>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SuppressModularization/Module.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/SuppressModularization/Module.wxs
deleted file mode 100644
index f4ce9c48..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SuppressModularization/Module.wxs
+++ /dev/null
@@ -1,10 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Module Id="MergeModule1" Language="1033" Version="1.0.0.0" Guid="243FB739-4D05-472F-9CFB-EF6B1017B6DE">
3 <SummaryInformation Manufacturer="!(loc.Manufacturer)" />
4
5 <Property Id="Test" Hidden="true" SuppressModularization="true" />
6 <CustomAction Id="Test" DllEntry="TestEntry" Execute="deferred" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="FakeCA" />
7
8 <Binary Id="FakeCA" SourceFile="test.txt" />
9 </Module>
10</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SuppressModularization/data/test.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/SuppressModularization/data/test.txt
deleted file mode 100644
index cd0db0e1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SuppressModularization/data/test.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is test.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/TextStyle/ColorNull.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/TextStyle/ColorNull.wxs
deleted file mode 100644
index 669de6ec..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/TextStyle/ColorNull.wxs
+++ /dev/null
@@ -1,12 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <ComponentGroupRef Id="MinimalComponentGroup"></ComponentGroupRef>
6 </ComponentGroup>
7
8 <UI Id="CustomUI">
9 <TextStyle Id="FirstTextStyle" FaceName="Arial" Size="2" />
10 </UI>
11 </Fragment>
12</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/TextStyle/SizeLocalized.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/TextStyle/SizeLocalized.en-us.wxl
deleted file mode 100644
index 77d46861..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/TextStyle/SizeLocalized.en-us.wxl
+++ /dev/null
@@ -1,13 +0,0 @@
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 <String Id="CustomFontName"><!-- NameComment -->Tahoma</String>
11 <String Id="CustomFontSize"><!-- SizeComment -->8</String>
12
13</WixLocalization>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/TextStyle/SizeLocalized.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/TextStyle/SizeLocalized.wxs
deleted file mode 100644
index a591fdd9..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/TextStyle/SizeLocalized.wxs
+++ /dev/null
@@ -1,12 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <ComponentGroupRef Id="MinimalComponentGroup"></ComponentGroupRef>
6 </ComponentGroup>
7
8 <UI Id="CustomUI">
9 <TextStyle Id="CustomFont" FaceName="!(loc.CustomFontName)" Size="!(loc.CustomFontSize)" />
10 </UI>
11 </Fragment>
12</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/TypeLib/Language0.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/TypeLib/Language0.wxs
deleted file mode 100644
index fa64f98f..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/TypeLib/Language0.wxs
+++ /dev/null
@@ -1,11 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <Component Id="TypeLibComp" Directory="INSTALLFOLDER" Guid="E85CB46B-BC22-4943-B678-5E399CBE53A6">
6 <File Source="test.txt" Name="TypeLibComp.txt"></File>
7 <TypeLib Id="765BE8EE-BD7F-491E-90D2-C5A972462B50" Advertise="yes" Language="0" />
8 </Component>
9 </ComponentGroup>
10 </Fragment>
11</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Upgrade/DetectOnly.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Upgrade/DetectOnly.wxs
deleted file mode 100644
index 587d8e95..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Upgrade/DetectOnly.wxs
+++ /dev/null
@@ -1,12 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents">
5 <ComponentGroupRef Id="MinimalComponentGroup"></ComponentGroupRef>
6 </ComponentGroup>
7
8 <Upgrade Id="B05772EA-82B8-4DE0-B7EB-45B5F0CCFE6D">
9 <UpgradeVersion Minimum="1.0.0" Property="RELPRODFOUND"></UpgradeVersion>
10 </Upgrade>
11 </Fragment>
12</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/UsingProvides/Package.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/UsingProvides/Package.en-us.wxl
deleted file mode 100644
index 38c12ac1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/UsingProvides/Package.en-us.wxl
+++ /dev/null
@@ -1,11 +0,0 @@
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/UsingProvides/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/UsingProvides/Package.wxs
deleted file mode 100644
index 59839f30..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/UsingProvides/Package.wxs
+++ /dev/null
@@ -1,16 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package ProductCode="{A81D50F9-B696-4F3D-ABE0-E64D61590E5F}" Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a">
3
4 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
5
6 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
7 <ComponentGroupRef Id="ProductComponents" />
8 </Feature>
9 </Package>
10
11 <Fragment>
12 <StandardDirectory Id="ProgramFilesFolder">
13 <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
14 </StandardDirectory>
15 </Fragment>
16</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/UsingProvides/PackageComponents.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/UsingProvides/PackageComponents.wxs
deleted file mode 100644
index 7e459e9a..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/UsingProvides/PackageComponents.wxs
+++ /dev/null
@@ -1,10 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Fragment>
3 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
4 <Component>
5 <File Source="example.txt" />
6 <Provides Key="UsingProvides" />
7 </Component>
8 </ComponentGroup>
9 </Fragment>
10</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/UsingProvides/example.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/UsingProvides/example.txt
deleted file mode 100644
index 1b4ffe8a..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/UsingProvides/example.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is example.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Variables/Package.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/Variables/Package.en-us.wxl
deleted file mode 100644
index 38c12ac1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Variables/Package.en-us.wxl
+++ /dev/null
@@ -1,11 +0,0 @@
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/Variables/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Variables/Package.wxs
deleted file mode 100644
index 7de55810..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Variables/Package.wxs
+++ /dev/null
@@ -1,31 +0,0 @@
1<?define Foo = "Foo" ?>
2<?define Foo = "Foo" ?>
3
4<?define Bar = "Bar" ?>
5<?define Bar = "Baz" ?>
6
7<?ifdef $(sys.WIXVERSION) ?>
8<?if $(sys.WIXMAJORVERSION) >= 4 AND $(sys.WIXMAJORVERSION) < 5 ?>
9 <?warning WiX v4 is in effect! ?>
10<?endif?>
11<?endif?>
12
13<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
14 <Package Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
15
16
17 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
18
19 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
20 <ComponentGroupRef Id="ProductComponents" />
21 </Feature>
22 </Package>
23
24 <Fragment>
25 <Directory Id="TARGETDIR" Name="SourceDir">
26 <Directory Id="ProgramFilesFolder">
27 <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
28 </Directory>
29 </Directory>
30 </Fragment>
31</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Variables/PackageComponents.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Variables/PackageComponents.wxs
deleted file mode 100644
index e26c4509..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Variables/PackageComponents.wxs
+++ /dev/null
@@ -1,10 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
5 <Component>
6 <File Source="test.txt" />
7 </Component>
8 </ComponentGroup>
9 </Fragment>
10</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Variables/data/test.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/Variables/data/test.txt
deleted file mode 100644
index cd0db0e1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Variables/data/test.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is test.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/Package.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/Package.en-us.wxl
deleted file mode 100644
index 38c12ac1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/Package.en-us.wxl
+++ /dev/null
@@ -1,11 +0,0 @@
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/WixVariableOverride/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/Package.wxs
deleted file mode 100644
index f8203a07..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/Package.wxs
+++ /dev/null
@@ -1,19 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Name="MsiPackage" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
3
4
5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
6
7 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
8 <ComponentGroupRef Id="ProductComponents" />
9 </Feature>
10
11 <WixVariable Id="TestFile" Value="test2.txt" />
12 </Package>
13
14 <Fragment>
15 <StandardDirectory Id="ProgramFilesFolder">
16 <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
17 </StandardDirectory>
18 </Fragment>
19</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/PackageComponents.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/PackageComponents.wxs
deleted file mode 100644
index df867923..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/PackageComponents.wxs
+++ /dev/null
@@ -1,14 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <Binary Id="Test.txt" SourceFile="!(wix.TestFile=test.txt)" />
5 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
6 <Component>
7 <File Source="test.txt" />
8 </Component>
9 <Component Id="Shared.dll" Shared="yes">
10 <File Name="Shared.dll" Source="test.txt" />
11 </Component>
12 </ComponentGroup>
13 </Fragment>
14</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/data/test.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/data/test.txt
deleted file mode 100644
index cd0db0e1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/data/test.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is test.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/data/test2.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/data/test2.txt
deleted file mode 100644
index eab3a9b5..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/data/test2.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is test2.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Wixipl/Package.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/Wixipl/Package.en-us.wxl
deleted file mode 100644
index 38c12ac1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Wixipl/Package.en-us.wxl
+++ /dev/null
@@ -1,11 +0,0 @@
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/Wixipl/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Wixipl/Package.wxs
deleted file mode 100644
index 7e6eee9f..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Wixipl/Package.wxs
+++ /dev/null
@@ -1,19 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Name="MsiPackage" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
3
4
5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
6
7 <CustomAction Id="CAFromExtension" DllEntry="DoesntExist" BinaryRef="BinFromWir" />
8
9 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
10 <ComponentGroupRef Id="ProductComponents" />
11 </Feature>
12 </Package>
13
14 <Fragment>
15 <StandardDirectory Id="ProgramFilesFolder">
16 <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
17 </StandardDirectory>
18 </Fragment>
19</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Wixipl/PackageComponents.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Wixipl/PackageComponents.wxs
deleted file mode 100644
index e26c4509..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Wixipl/PackageComponents.wxs
+++ /dev/null
@@ -1,10 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
5 <Component>
6 <File Source="test.txt" />
7 </Component>
8 </ComponentGroup>
9 </Fragment>
10</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Wixipl/data/test.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/Wixipl/data/test.txt
deleted file mode 100644
index cd0db0e1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Wixipl/data/test.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is test.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/Package.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/Package.en-us.wxl
deleted file mode 100644
index 38c12ac1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/Package.en-us.wxl
+++ /dev/null
@@ -1,11 +0,0 @@
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/WixlibWithBinaries/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/Package.wxs
deleted file mode 100644
index b29a785f..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/Package.wxs
+++ /dev/null
@@ -1,19 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Name="MsiPackage" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="no" InstallerVersion="200" Scope="perMachine">
3
4
5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
6
7 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
8 <ComponentGroupRef Id="ProductComponents" />
9 </Feature>
10 </Package>
11
12 <Fragment>
13 <Directory Id="TARGETDIR" Name="SourceDir">
14 <Directory Id="ProgramFilesFolder">
15 <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
16 </Directory>
17 </Directory>
18 </Fragment>
19</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/PackageComponents.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/PackageComponents.wxs
deleted file mode 100644
index 7d1a4ae1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/PackageComponents.wxs
+++ /dev/null
@@ -1,26 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <Binary Id="FooAlpha" SourceFile="!(bindpath.AlphaBits)foo.dll" />
5 </Fragment>
6
7 <Fragment>
8 <Binary Id="FooMips" SourceFile="!(bindpath.MipsBits)foo.dll" />
9 </Fragment>
10
11 <Fragment>
12 <Binary Id="FooPowerPC" SourceFile="!(bindpath.PowerBits)foo.dll" />
13 </Fragment>
14
15 <Fragment>
16 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
17 <Component>
18 <File Source="test.txt" />
19 </Component>
20
21 <Component Id="Shared.dll" Shared="yes">
22 <File Name="Shared.dll" Source="test.txt" />
23 </Component>
24 </ComponentGroup>
25 </Fragment>
26</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/data/alpha/foo.dll b/src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/data/alpha/foo.dll
deleted file mode 100644
index fd36c768..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/data/alpha/foo.dll
+++ /dev/null
@@ -1 +0,0 @@
1This is alpha\foo.dll.
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/data/mips/foo.dll b/src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/data/mips/foo.dll
deleted file mode 100644
index 292925c7..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/data/mips/foo.dll
+++ /dev/null
@@ -1 +0,0 @@
1This is mips\foo.dll.
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/data/powerpc/foo.dll b/src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/data/powerpc/foo.dll
deleted file mode 100644
index 663e9d99..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/data/powerpc/foo.dll
+++ /dev/null
@@ -1 +0,0 @@
1This is powerpc\foo.dll.
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/data/test.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/data/test.txt
deleted file mode 100644
index cd0db0e1..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/data/test.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is test.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestXmlFixture.cs b/src/test/WixToolsetTest.CoreIntegration/TestXmlFixture.cs
deleted file mode 100644
index 5330305e..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/TestXmlFixture.cs
+++ /dev/null
@@ -1,62 +0,0 @@
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.Collections.Generic;
6 using WixToolset.Core.TestPackage;
7 using Xunit;
8
9 public class TestXmlFixture
10 {
11 [Fact]
12 public void ChangesIgnoredAttributesToStarToHelpMakeTestsLessFragile()
13 {
14 var original = @"<Top One='f'>
15 <First Two='t'>
16 <Target One='a' Two='b' Three='c' />
17 </First>
18 <Target One='z' Two='x' Three = 'y' />
19</Top>";
20 var expected = "<Top One='f'><First Two='t'><Target One='*' Two='*' Three='c' /></First><Target One='*' Two='*' Three='y' /></Top>";
21 var ignored = new Dictionary<string, List<string>> { { "Target", new List<string> { "One", "Two", "Missing" } } };
22 Assert.Equal(expected, original.GetTestXml(ignored));
23 }
24
25 [Fact]
26 public void OutputsSingleQuotesSinceDoubleQuotesInCsharpLiteralStringsArePainful()
27 {
28 var original = "<Test Simple=\"\" EscapedDoubleQuote=\"&quot;\" SingleQuoteValue=\"'test'\" Alternating='\"' AlternatingEscaped='&quot;' />";
29 var expected = "<Test Simple='' EscapedDoubleQuote='\"' SingleQuoteValue='&apos;test&apos;' Alternating='\"' AlternatingEscaped='\"' />";
30 Assert.Equal(expected, original.GetTestXml());
31 }
32
33 [Fact]
34 public void RemovesAllNamespacesToReduceTyping()
35 {
36 var original = "<Test xmlns='a'><Child xmlns:b='b'><Grandchild xmlns:c='c' /><Grandchild /></Child></Test>";
37 var expected = "<Test><Child><Grandchild /><Grandchild /></Child></Test>";
38 Assert.Equal(expected, original.GetTestXml());
39 }
40
41 [Fact]
42 public void RemovesUnnecessaryWhitespaceToAvoidLineEndingIssues()
43 {
44 var original = @"<Test>
45 <Child>
46 <Grandchild />
47 <Grandchild />
48 </Child>
49</Test>";
50 var expected = "<Test><Child><Grandchild /><Grandchild /></Child></Test>";
51 Assert.Equal(expected, original.GetTestXml());
52 }
53
54 [Fact]
55 public void RemovesXmlDeclarationToReduceTyping()
56 {
57 var original = "<?xml version='1.0'?><Test />";
58 var expected = "<Test />";
59 Assert.Equal(expected, original.GetTestXml());
60 }
61 }
62}
diff --git a/src/test/WixToolsetTest.CoreIntegration/VariableResolverFixture.cs b/src/test/WixToolsetTest.CoreIntegration/VariableResolverFixture.cs
deleted file mode 100644
index 15e5d334..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/VariableResolverFixture.cs
+++ /dev/null
@@ -1,75 +0,0 @@
1
2// 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.
3
4namespace WixToolsetTest.CoreIntegration
5{
6 using System.Collections.Generic;
7 using WixToolset.Core;
8 using WixToolset.Data;
9 using WixToolset.Data.Bind;
10 using WixToolset.Extensibility.Services;
11 using Xunit;
12
13 public class VariableResolverFixture
14 {
15 [Fact]
16 public void CanRecursivelyResolveVariables()
17 {
18 var serviceProvider = WixToolsetServiceProviderFactory.CreateServiceProvider();
19 var variableResolver = serviceProvider.GetService<IVariableResolver>();
20
21 var variables = new Dictionary<string, BindVariable>()
22 {
23 { "ProductName", new BindVariable() { Id = "ProductName", Value = "Localized Product Name" } },
24 { "ProductNameEdition", new BindVariable() { Id = "ProductNameEdition", Value = "!(loc.ProductName) Enterprise Edition" } },
25 { "ProductNameEditionVersion", new BindVariable() { Id = "ProductNameEditionVersion", Value = "!(loc.ProductNameEdition) v1.2.3" } },
26 };
27
28 var localization = new Localization(0, null, "x-none", variables, new Dictionary<string,LocalizedControl>());
29
30 variableResolver.AddLocalization(localization);
31
32 var result = variableResolver.ResolveVariables(null, "These are not the loc strings you're looking for.");
33 Assert.Equal("These are not the loc strings you're looking for.", result.Value);
34 Assert.False(result.UpdatedValue);
35
36 result = variableResolver.ResolveVariables(null, "Welcome to !(loc.ProductName)");
37 Assert.Equal("Welcome to Localized Product Name", result.Value);
38 Assert.True(result.UpdatedValue);
39
40 result = variableResolver.ResolveVariables(null, "Welcome to !(loc.ProductNameEdition)");
41 Assert.Equal("Welcome to Localized Product Name Enterprise Edition", result.Value);
42 Assert.True(result.UpdatedValue);
43
44 result = variableResolver.ResolveVariables(null, "Welcome to !(loc.ProductNameEditionVersion)");
45 Assert.Equal("Welcome to Localized Product Name Enterprise Edition v1.2.3", result.Value);
46 Assert.True(result.UpdatedValue);
47
48 result = variableResolver.ResolveVariables(null, "Welcome to !(bind.property.ProductVersion)");
49 Assert.Equal("Welcome to !(bind.property.ProductVersion)", result.Value);
50 Assert.False(result.UpdatedValue);
51 Assert.True(result.DelayedResolve);
52
53 var withUnknownLocString = "Welcome to !(loc.UnknownLocalizationVariable)";
54 Assert.Throws<WixException>(() => variableResolver.ResolveVariables(null, withUnknownLocString));
55
56 result = variableResolver.ResolveVariables(null, withUnknownLocString, errorOnUnknown: false);
57 Assert.Equal(withUnknownLocString, result.Value);
58 Assert.False(result.UpdatedValue);
59
60 result = variableResolver.ResolveVariables(null, "Welcome to !!(loc.UnknownLocalizationVariable)");
61 Assert.Equal("Welcome to !(loc.UnknownLocalizationVariable)", result.Value);
62 Assert.True(result.UpdatedValue);
63
64 result = variableResolver.ResolveVariables(null, "Welcome to !!(loc.UnknownLocalizationVariable) v!(bind.property.ProductVersion)");
65 Assert.Equal("Welcome to !(loc.UnknownLocalizationVariable) v!(bind.property.ProductVersion)", result.Value);
66 Assert.True(result.UpdatedValue);
67 Assert.True(result.DelayedResolve);
68
69 result = variableResolver.ResolveVariables(null, "Welcome to !(loc.ProductNameEditionVersion) !!(loc.UnknownLocalizationVariable) v!(bind.property.ProductVersion)");
70 Assert.Equal("Welcome to Localized Product Name Enterprise Edition v1.2.3 !(loc.UnknownLocalizationVariable) v!(bind.property.ProductVersion)", result.Value);
71 Assert.True(result.UpdatedValue);
72 Assert.True(result.DelayedResolve);
73 }
74 }
75}
diff --git a/src/test/WixToolsetTest.CoreIntegration/WarningFixture.cs b/src/test/WixToolsetTest.CoreIntegration/WarningFixture.cs
deleted file mode 100644
index c5b6c261..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/WarningFixture.cs
+++ /dev/null
@@ -1,63 +0,0 @@
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 WixBuildTools.TestSupport;
7 using WixToolset.Core.TestPackage;
8 using WixToolset.Data;
9 using Xunit;
10
11 public class WarningFixture
12 {
13 [Fact]
14 public void SuppressedWarningsWithWarningAsErrorsAreNotErrors()
15 {
16 var folder = TestData.Get(@"TestData\Payload");
17
18 using (var fs = new DisposableFileSystem())
19 {
20 var baseFolder = fs.GetFolder();
21 var intermediateFolder = Path.Combine(baseFolder, "obj");
22 var wixlibPath = Path.Combine(intermediateFolder, @"test.wixlib");
23
24 var result = WixRunner.Execute(warningsAsErrors: true, new[]
25 {
26 "build",
27 "-sw1152",
28 Path.Combine(folder, "CanonicalizeName.wxs"),
29 "-intermediateFolder", intermediateFolder,
30 "-o", wixlibPath,
31 });
32
33 result.AssertSuccess();
34 }
35 }
36
37 [Fact]
38 public void WarningsAsErrorsTreatsWarningsAsErrors()
39 {
40 var folder = TestData.Get(@"TestData\Payload");
41
42 using (var fs = new DisposableFileSystem())
43 {
44 var baseFolder = fs.GetFolder();
45 var intermediateFolder = Path.Combine(baseFolder, "obj");
46 var wixlibPath = Path.Combine(intermediateFolder, @"test.wixlib");
47
48 var result = WixRunner.Execute(warningsAsErrors: true, new[]
49 {
50 "build",
51 Path.Combine(folder, "CanonicalizeName.wxs"),
52 "-intermediateFolder", intermediateFolder,
53 "-o", wixlibPath,
54 });
55
56 Assert.Equal((int)WarningMessages.Ids.PathCanonicalized, result.ExitCode);
57
58 var message = Assert.Single(result.Messages);
59 Assert.Equal(MessageLevel.Warning, message.Level); // TODO: is this right?
60 }
61 }
62 }
63}
diff --git a/src/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj b/src/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj
deleted file mode 100644
index fc62e932..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj
+++ /dev/null
@@ -1,32 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!-- 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. -->
3
4<Project Sdk="Microsoft.NET.Sdk">
5 <PropertyGroup>
6 <TargetFramework>netcoreapp3.1</TargetFramework>
7 <IsPackable>false</IsPackable>
8 <DebugType>embedded</DebugType>
9 </PropertyGroup>
10
11 <ItemGroup>
12 <Content Include="TestData\**" CopyToOutputDirectory="PreserveNewest" />
13 </ItemGroup>
14
15 <ItemGroup>
16 <ProjectReference Include="..\..\WixToolset.Core\WixToolset.Core.csproj" />
17 <ProjectReference Include="..\..\WixToolset.Core.Burn\WixToolset.Core.Burn.csproj" />
18 <ProjectReference Include="..\..\WixToolset.Core.WindowsInstaller\WixToolset.Core.WindowsInstaller.csproj" />
19 <ProjectReference Include="..\..\WixToolset.Core.TestPackage\WixToolset.Core.TestPackage.csproj" />
20 <ProjectReference Include="..\Example.Extension\Example.Extension.csproj" />
21 </ItemGroup>
22
23 <ItemGroup>
24 <PackageReference Include="WixBuildTools.TestSupport" Version="4.0.*" />
25 </ItemGroup>
26
27 <ItemGroup>
28 <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.8.0" />
29 <PackageReference Include="xunit" Version="2.4.1" />
30 <PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" PrivateAssets="All" />
31 </ItemGroup>
32</Project>
diff --git a/src/test/WixToolsetTest.CoreIntegration/WixiplFixture.cs b/src/test/WixToolsetTest.CoreIntegration/WixiplFixture.cs
deleted file mode 100644
index 942f253f..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/WixiplFixture.cs
+++ /dev/null
@@ -1,205 +0,0 @@
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 WixBuildTools.TestSupport;
9 using WixToolset.Core.TestPackage;
10 using WixToolset.Data;
11 using WixToolset.Data.Symbols;
12 using Example.Extension;
13 using Xunit;
14
15 public class WixiplFixture
16 {
17 [Fact]
18 public void CanBuildSingleFile()
19 {
20 var folder = TestData.Get(@"TestData\SingleFile");
21
22 using (var fs = new DisposableFileSystem())
23 {
24 var baseFolder = fs.GetFolder();
25 var intermediateFolder = Path.Combine(baseFolder, "obj");
26 var wixiplPath = Path.Combine(intermediateFolder, @"test.wixipl");
27
28 var result = WixRunner.Execute(new[]
29 {
30 "build",
31 Path.Combine(folder, "Package.wxs"),
32 Path.Combine(folder, "PackageComponents.wxs"),
33 "-intermediateFolder", intermediateFolder,
34 "-o", wixiplPath,
35 });
36
37 result.AssertSuccess();
38
39 var intermediate = Intermediate.Load(wixiplPath);
40
41 Assert.False(intermediate.HasLevel(IntermediateLevels.Compiled));
42 Assert.True(intermediate.HasLevel(IntermediateLevels.Linked));
43 Assert.False(intermediate.HasLevel(IntermediateLevels.Resolved));
44
45 result = WixRunner.Execute(new[]
46 {
47 "build",
48 Path.Combine(intermediateFolder, @"test.wixipl"),
49 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
50 "-bindpath", Path.Combine(folder, "data"),
51 "-intermediateFolder", intermediateFolder,
52 "-o", Path.Combine(baseFolder, @"bin\test.msi")
53 });
54
55 result.AssertSuccess();
56
57 intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
58
59 Assert.False(intermediate.HasLevel(IntermediateLevels.Compiled));
60 Assert.True(intermediate.HasLevel(IntermediateLevels.Linked));
61 Assert.True(intermediate.HasLevel(IntermediateLevels.Resolved));
62
63 var section = intermediate.Sections.Single();
64
65 var fileSymbol = section.Symbols.OfType<FileSymbol>().First();
66 Assert.Equal(Path.Combine(folder, @"data\test.txt"), fileSymbol[FileSymbolFields.Source].AsPath().Path);
67 Assert.Equal(@"test.txt", fileSymbol[FileSymbolFields.Source].PreviousValue.AsPath().Path);
68 }
69 }
70
71 [Fact]
72 public void CannotBuildWithSourceFileAndWixipl()
73 {
74 var folder = TestData.Get(@"TestData\SingleFile");
75
76 using (var fs = new DisposableFileSystem())
77 {
78 var baseFolder = fs.GetFolder();
79 var intermediateFolder = Path.Combine(baseFolder, "obj");
80
81 var result = WixRunner.Execute(new[]
82 {
83 "build",
84 Path.Combine(folder, "Package.wxs"),
85 Path.Combine(folder, "PackageComponents.wxs"),
86 "-intermediateFolder", intermediateFolder,
87 "-o", Path.Combine(intermediateFolder, @"test.wixipl")
88 });
89
90 result.AssertSuccess();
91
92 result = WixRunner.Execute(new[]
93 {
94 "build",
95 Path.Combine(folder, "Package.wxs"),
96 Path.Combine(intermediateFolder, @"test.wixipl"),
97 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
98 "-bindpath", Path.Combine(folder, "data"),
99 "-intermediateFolder", intermediateFolder,
100 "-o", Path.Combine(baseFolder, @"bin\test.msi")
101 });
102 Assert.Equal((int)ErrorMessages.Ids.WixiplSourceFileIsExclusive, result.ExitCode);
103 }
104 }
105
106 [Fact]
107 public void CanBuildMsiUsingExtensionLibrary()
108 {
109 var folder = TestData.Get(@"TestData\Wixipl");
110 var extensionPath = Path.GetFullPath(new Uri(typeof(ExampleExtensionFactory).Assembly.CodeBase).LocalPath);
111
112 using (var fs = new DisposableFileSystem())
113 {
114 var baseFolder = fs.GetFolder();
115 var intermediateFolder = Path.Combine(baseFolder, "obj");
116
117 var result = WixRunner.Execute(new[]
118 {
119 "build",
120 "-ext", extensionPath,
121 Path.Combine(folder, "Package.wxs"),
122 Path.Combine(folder, "PackageComponents.wxs"),
123 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
124 "-bindpath", Path.Combine(folder, "data"),
125 "-intermediateFolder", intermediateFolder,
126 "-o", Path.Combine(baseFolder, @"bin\test.msi"),
127 });
128
129 result.AssertSuccess();
130
131 var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
132 var section = intermediate.Sections.Single();
133
134 {
135 var fileSymbol = section.Symbols.OfType<FileSymbol>().Single();
136 Assert.Equal(Path.Combine(folder, @"data\test.txt"), fileSymbol[FileSymbolFields.Source].AsPath().Path);
137 Assert.Equal(@"test.txt", fileSymbol[FileSymbolFields.Source].PreviousValue.AsPath().Path);
138 }
139
140 {
141 var binary = section.Symbols.OfType<BinarySymbol>().Single();
142 var path = binary[BinarySymbolFields.Data].AsPath().Path;
143 Assert.StartsWith(Path.Combine(baseFolder, @"obj\Example.Extension"), path);
144 Assert.EndsWith(@"wix-ir\example.txt", path);
145 Assert.Equal(@"BinFromWir", binary.Id.Id);
146 }
147 }
148 }
149
150 [Fact]
151 public void CanBuildWixiplUsingExtensionLibrary()
152 {
153 var folder = TestData.Get(@"TestData\Wixipl");
154 var extensionPath = Path.GetFullPath(new Uri(typeof(ExampleExtensionFactory).Assembly.CodeBase).LocalPath);
155
156 using (var fs = new DisposableFileSystem())
157 {
158 var baseFolder = fs.GetFolder();
159 var intermediateFolder = Path.Combine(baseFolder, "obj");
160
161 var result = WixRunner.Execute(new[]
162 {
163 "build",
164 "-ext", extensionPath,
165 Path.Combine(folder, "Package.wxs"),
166 Path.Combine(folder, "PackageComponents.wxs"),
167 "-intermediateFolder", intermediateFolder,
168 "-o", Path.Combine(intermediateFolder, @"test.wixipl"),
169 });
170
171 result.AssertSuccess();
172
173 result = WixRunner.Execute(new[]
174 {
175 "build",
176 Path.Combine(intermediateFolder, @"test.wixipl"),
177 "-ext", extensionPath,
178 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
179 "-bindpath", Path.Combine(folder, "data"),
180 "-intermediateFolder", intermediateFolder,
181 "-o", Path.Combine(baseFolder, @"bin\test.msi"),
182 });
183
184 result.AssertSuccess();
185
186 var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
187 var section = intermediate.Sections.Single();
188
189 {
190 var fileSymbol = section.Symbols.OfType<FileSymbol>().Single();
191 Assert.Equal(Path.Combine(folder, @"data\test.txt"), fileSymbol[FileSymbolFields.Source].AsPath().Path);
192 Assert.Equal(@"test.txt", fileSymbol[FileSymbolFields.Source].PreviousValue.AsPath().Path);
193 }
194
195 {
196 var binary = section.Symbols.OfType<BinarySymbol>().Single();
197 var path = binary[BinarySymbolFields.Data].AsPath().Path;
198 Assert.StartsWith(Path.Combine(baseFolder, @"obj\test"), path);
199 Assert.EndsWith(@"wix-ir\example.txt", path);
200 Assert.Equal(@"BinFromWir", binary.Id.Id);
201 }
202 }
203 }
204 }
205}
diff --git a/src/test/WixToolsetTest.CoreIntegration/WixlibFixture.cs b/src/test/WixToolsetTest.CoreIntegration/WixlibFixture.cs
deleted file mode 100644
index d7296cfe..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/WixlibFixture.cs
+++ /dev/null
@@ -1,316 +0,0 @@
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 WixBuildTools.TestSupport;
10 using WixToolset.Core.TestPackage;
11 using WixToolset.Data;
12 using WixToolset.Data.Symbols;
13 using Xunit;
14
15 public class WixlibFixture
16 {
17 [Fact]
18 public void CanBuildSimpleBundleUsingWixlib()
19 {
20 var folder = TestData.Get(@"TestData\SimpleBundle");
21
22 using (var fs = new DisposableFileSystem())
23 {
24 var baseFolder = fs.GetFolder();
25 var intermediateFolder = Path.Combine(baseFolder, "obj");
26
27 var result = WixRunner.Execute(new[]
28 {
29 "build",
30 Path.Combine(folder, "MultiFileBootstrapperApplication.wxs"),
31 "-intermediateFolder", intermediateFolder,
32 "-o", Path.Combine(intermediateFolder, @"test.wixlib")
33 });
34
35 result.AssertSuccess();
36
37 result = WixRunner.Execute(new[]
38 {
39 "build",
40 Path.Combine(folder, "MultiFileBundle.wxs"),
41 "-loc", Path.Combine(folder, "Bundle.en-us.wxl"),
42 "-lib", Path.Combine(intermediateFolder, @"test.wixlib"),
43 "-bindpath", Path.Combine(folder, "data"),
44 "-intermediateFolder", intermediateFolder,
45 "-o", Path.Combine(baseFolder, @"bin\test.exe")
46 });
47
48 result.AssertSuccess();
49
50 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.exe")));
51 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.wixpdb")));
52 }
53 }
54
55 [Fact]
56 public void CanBuildWixlibWithBinariesFromNamedBindPaths()
57 {
58 var folder = TestData.Get(@"TestData\WixlibWithBinaries");
59
60 using (var fs = new DisposableFileSystem())
61 {
62 var baseFolder = fs.GetFolder();
63 var intermediateFolder = Path.Combine(baseFolder, "obj");
64 var wixlibPath = Path.Combine(intermediateFolder, @"test.wixlib");
65
66 var result = WixRunner.Execute(new[]
67 {
68 "build",
69 Path.Combine(folder, "PackageComponents.wxs"),
70 "-bf",
71 "-bindpath", Path.Combine(folder, "data"),
72 // Use names that aren't excluded in default .gitignores.
73 "-bindpath", $"AlphaBits={Path.Combine(folder, "data", "alpha")}",
74 "-bindpath", $"MipsBits={Path.Combine(folder, "data", "mips")}",
75 "-bindpath", $"PowerBits={Path.Combine(folder, "data", "powerpc")}",
76 "-intermediateFolder", intermediateFolder,
77 "-o", wixlibPath,
78 });
79
80 result.AssertSuccess();
81
82 var wixlib = Intermediate.Load(wixlibPath);
83 var binarySymbols = wixlib.Sections.SelectMany(s => s.Symbols).OfType<BinarySymbol>().ToList();
84 Assert.Equal(3, binarySymbols.Count);
85 Assert.Single(binarySymbols.Where(t => t.Data.Path == "wix-ir/foo.dll"));
86 Assert.Single(binarySymbols.Where(t => t.Data.Path == "wix-ir/foo.dll-1"));
87 Assert.Single(binarySymbols.Where(t => t.Data.Path == "wix-ir/foo.dll-2"));
88 }
89 }
90
91 [Fact]
92 public void CanBuildSingleFileUsingWixlib()
93 {
94 var folder = TestData.Get(@"TestData\SingleFile");
95
96 using (var fs = new DisposableFileSystem())
97 {
98 var baseFolder = fs.GetFolder();
99 var intermediateFolder = Path.Combine(baseFolder, "obj");
100 var wixlibPath = Path.Combine(intermediateFolder, @"test.wixlib");
101
102 var result = WixRunner.Execute(new[]
103 {
104 "build",
105 Path.Combine(folder, "PackageComponents.wxs"),
106 "-intermediateFolder", intermediateFolder,
107 "-o", wixlibPath,
108 });
109
110 result.AssertSuccess();
111
112 var wixlib = Intermediate.Load(wixlibPath);
113
114 Assert.True(wixlib.HasLevel(IntermediateLevels.Compiled));
115 Assert.True(wixlib.HasLevel(IntermediateLevels.Combined));
116 Assert.False(wixlib.HasLevel(IntermediateLevels.Linked));
117 Assert.False(wixlib.HasLevel(IntermediateLevels.Resolved));
118
119 result = WixRunner.Execute(new[]
120 {
121 "build",
122 Path.Combine(folder, "Package.wxs"),
123 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
124 "-lib", Path.Combine(intermediateFolder, @"test.wixlib"),
125 "-bindpath", Path.Combine(folder, "data"),
126 "-intermediateFolder", intermediateFolder,
127 "-o", Path.Combine(baseFolder, @"bin\test.msi")
128 });
129
130 result.AssertSuccess();
131
132 var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
133
134 Assert.False(intermediate.HasLevel(IntermediateLevels.Compiled));
135 Assert.False(intermediate.HasLevel(IntermediateLevels.Combined));
136 Assert.True(intermediate.HasLevel(IntermediateLevels.Linked));
137 Assert.True(intermediate.HasLevel(IntermediateLevels.Resolved));
138
139 var section = intermediate.Sections.Single();
140
141 var wixFile = section.Symbols.OfType<FileSymbol>().First();
142 Assert.Equal(Path.Combine(folder, @"data\test.txt"), wixFile[FileSymbolFields.Source].AsPath().Path);
143 Assert.Equal(@"test.txt", wixFile[FileSymbolFields.Source].PreviousValue.AsPath().Path);
144 }
145 }
146
147 [Fact]
148 public void CanOverridePathWixVariable()
149 {
150 var folder = TestData.Get(@"TestData\WixVariableOverride");
151
152 using (var fs = new DisposableFileSystem())
153 {
154 var baseFolder = fs.GetFolder();
155 var intermediateFolder = Path.Combine(baseFolder, "obj");
156 var wixlibPath = Path.Combine(intermediateFolder, @"test.wixlib");
157
158 var result = WixRunner.Execute(new[]
159 {
160 "build",
161 Path.Combine(folder, "PackageComponents.wxs"),
162 "-bf",
163 "-bindpath", Path.Combine(folder, "data"),
164 "-intermediateFolder", intermediateFolder,
165 "-o", wixlibPath,
166 });
167
168 result.AssertSuccess();
169
170 var wixlib = Intermediate.Load(wixlibPath);
171
172 Assert.True(wixlib.HasLevel(IntermediateLevels.Compiled));
173 Assert.True(wixlib.HasLevel(IntermediateLevels.Combined));
174 Assert.False(wixlib.HasLevel(IntermediateLevels.Linked));
175 Assert.False(wixlib.HasLevel(IntermediateLevels.Resolved));
176
177 result = WixRunner.Execute(new[]
178 {
179 "build",
180 Path.Combine(folder, "Package.wxs"),
181 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
182 "-lib", Path.Combine(intermediateFolder, @"test.wixlib"),
183 "-bindpath", Path.Combine(folder, "data"),
184 "-intermediateFolder", intermediateFolder,
185 "-o", Path.Combine(baseFolder, @"bin\test.msi")
186 });
187
188 result.AssertSuccess();
189
190 var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
191
192 Assert.False(intermediate.HasLevel(IntermediateLevels.Compiled));
193 Assert.False(intermediate.HasLevel(IntermediateLevels.Combined));
194 Assert.True(intermediate.HasLevel(IntermediateLevels.Linked));
195 Assert.True(intermediate.HasLevel(IntermediateLevels.Resolved));
196
197 var section = intermediate.Sections.Single();
198
199 var wixFile = section.Symbols.OfType<BinarySymbol>().First();
200 Assert.Equal(Path.Combine(folder, @"data\test2.txt"), wixFile.Data.Path);
201 }
202 }
203
204 [Fact]
205 public void CanBuildWithExtensionUsingWixlib()
206 {
207 var folder = TestData.Get(@"TestData\ExampleExtension");
208 var extensionPath = Path.GetFullPath(new Uri(typeof(ExampleExtensionFactory).Assembly.CodeBase).LocalPath);
209
210 using (var fs = new DisposableFileSystem())
211 {
212 var baseFolder = fs.GetFolder();
213 var intermediateFolder = Path.Combine(baseFolder, "obj");
214
215 var result = WixRunner.Execute(new[]
216 {
217 "build",
218 Path.Combine(folder, "PackageComponents.wxs"),
219 "-ext", extensionPath,
220 "-intermediateFolder", intermediateFolder,
221 "-o", Path.Combine(intermediateFolder, @"test.wixlib")
222 });
223
224 result.AssertSuccess();
225
226 result = WixRunner.Execute(new[]
227 {
228 "build",
229 Path.Combine(folder, "Package.wxs"),
230 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
231 "-lib", Path.Combine(intermediateFolder, @"test.wixlib"),
232 "-ext", extensionPath,
233 "-bindpath", Path.Combine(folder, "data"),
234 "-intermediateFolder", intermediateFolder,
235 "-o", Path.Combine(intermediateFolder, @"bin\test.msi")
236 });
237
238 result.AssertSuccess();
239
240 var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"bin\test.wixpdb"));
241 var section = intermediate.Sections.Single();
242
243 var fileSymbol = section.Symbols.OfType<FileSymbol>().Single();
244 Assert.Equal(Path.Combine(folder, @"data\example.txt"), fileSymbol[FileSymbolFields.Source].AsPath().Path);
245 Assert.Equal(@"example.txt", fileSymbol[FileSymbolFields.Source].PreviousValue.AsPath().Path);
246
247 var example = section.Symbols.Where(t => t.Definition.Type == SymbolDefinitionType.MustBeFromAnExtension).Single();
248 Assert.Equal("Foo", example.Id?.Id);
249 Assert.Equal("Bar", example[0].AsString());
250 }
251 }
252
253 [Fact]
254 public void CanBuildWithExtensionUsingMultipleWixlibs()
255 {
256 var folder = TestData.Get(@"TestData\ComplexExampleExtension");
257 var extensionPath = Path.GetFullPath(new Uri(typeof(ExampleExtensionFactory).Assembly.CodeBase).LocalPath);
258
259 using (var fs = new DisposableFileSystem())
260 {
261 var baseFolder = fs.GetFolder();
262 var intermediateFolder = Path.Combine(baseFolder, "obj");
263
264 var result = WixRunner.Execute(new[]
265 {
266 "build",
267 Path.Combine(folder, "PackageComponents.wxs"),
268 "-ext", extensionPath,
269 "-intermediateFolder", intermediateFolder,
270 "-o", Path.Combine(intermediateFolder, @"components.wixlib")
271 });
272
273 result.AssertSuccess();
274
275 result = WixRunner.Execute(new[]
276 {
277 "build",
278 Path.Combine(folder, "OtherComponents.wxs"),
279 "-ext", extensionPath,
280 "-intermediateFolder", intermediateFolder,
281 "-o", Path.Combine(intermediateFolder, @"other.wixlib")
282 });
283
284 result.AssertSuccess();
285
286 result = WixRunner.Execute(new[]
287 {
288 "build",
289 Path.Combine(folder, "Package.wxs"),
290 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
291 "-lib", Path.Combine(intermediateFolder, @"components.wixlib"),
292 "-lib", Path.Combine(intermediateFolder, @"other.wixlib"),
293 "-ext", extensionPath,
294 "-bindpath", Path.Combine(folder, "data"),
295 "-intermediateFolder", intermediateFolder,
296 "-o", Path.Combine(intermediateFolder, @"bin\test.msi")
297 });
298
299 result.AssertSuccess();
300
301 var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"bin\test.wixpdb"));
302 var section = intermediate.Sections.Single();
303
304 var fileSymbols = section.Symbols.OfType<FileSymbol>().OrderBy(t => Path.GetFileName(t.Source.Path)).ToArray();
305 Assert.Equal(Path.Combine(folder, @"data\example.txt"), fileSymbols[0][FileSymbolFields.Source].AsPath().Path);
306 Assert.Equal(@"example.txt", fileSymbols[0][FileSymbolFields.Source].PreviousValue.AsPath().Path);
307 Assert.Equal(Path.Combine(folder, @"data\other.txt"), fileSymbols[1][FileSymbolFields.Source].AsPath().Path);
308 Assert.Equal(@"other.txt", fileSymbols[1][FileSymbolFields.Source].PreviousValue.AsPath().Path);
309
310 var examples = section.Symbols.Where(t => t.Definition.Type == SymbolDefinitionType.MustBeFromAnExtension).ToArray();
311 Assert.Equal(new string[] { "Foo", "Other" }, examples.Select(t => t.Id?.Id).ToArray());
312 Assert.Equal(new[] { "Bar", "Value" }, examples.Select(t => t[0].AsString()).ToArray());
313 }
314 }
315 }
316}
diff --git a/src/test/WixToolsetTest.CoreIntegration/WixlibQueryFixture.cs b/src/test/WixToolsetTest.CoreIntegration/WixlibQueryFixture.cs
deleted file mode 100644
index 57351b27..00000000
--- a/src/test/WixToolsetTest.CoreIntegration/WixlibQueryFixture.cs
+++ /dev/null
@@ -1,81 +0,0 @@
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 WixlibQueryFixture
14 {
15 [Fact]
16 public void UpgradeProducesReferenceToRemoveExistingProducts()
17 {
18 var folder = TestData.Get(@"TestData\Upgrade");
19
20 using (var fs = new DisposableFileSystem())
21 {
22 var baseFolder = fs.GetFolder();
23 var intermediateFolder = Path.Combine(baseFolder, "obj");
24 var wixlibPath = Path.Combine(intermediateFolder, @"test.wixlib");
25
26 var result = WixRunner.Execute(new[]
27 {
28 "build",
29 Path.Combine(folder, "DetectOnly.wxs"),
30 "-intermediateFolder", intermediateFolder,
31 "-o", wixlibPath,
32 });
33
34 result.AssertSuccess();
35
36 var intermediate = Intermediate.Load(wixlibPath);
37 var allSymbols = intermediate.Sections.SelectMany(s => s.Symbols);
38 var wixSimpleRefSymbols = allSymbols.OfType<WixSimpleReferenceSymbol>();
39 var repRef = wixSimpleRefSymbols.Where(t => t.Table == "WixAction" &&
40 t.PrimaryKeys == "InstallExecuteSequence/RemoveExistingProducts")
41 .SingleOrDefault();
42 Assert.NotNull(repRef);
43 }
44 }
45
46 [Fact]
47 public void TypeLibLanguageAsStringReturnsZero()
48 {
49 var folder = TestData.Get(@"TestData\TypeLib");
50
51 using (var fs = new DisposableFileSystem())
52 {
53 var baseFolder = fs.GetFolder();
54 var intermediateFolder = Path.Combine(baseFolder, "obj");
55 var wixlibPath = Path.Combine(intermediateFolder, @"test.wixlib");
56
57 var result = WixRunner.Execute(new[]
58 {
59 "build",
60 Path.Combine(folder, "Language0.wxs"),
61 "-intermediateFolder", intermediateFolder,
62 "-o", wixlibPath
63 });
64
65 result.AssertSuccess();
66
67 var intermediate = Intermediate.Load(wixlibPath);
68 var allSymbols = intermediate.Sections.SelectMany(s => s.Symbols);
69 var typeLibSymbol = allSymbols.OfType<TypeLibSymbol>()
70 .SingleOrDefault();
71 Assert.NotNull(typeLibSymbol);
72
73 var fields = typeLibSymbol.Fields.Select(field => field?.Type == IntermediateFieldType.Bool
74 ? field.AsNullableNumber()?.ToString()
75 : field?.AsString())
76 .ToList();
77 Assert.Equal("0", fields[1]);
78 }
79 }
80 }
81}