diff options
| author | Sean Hall <r.sean.hall@gmail.com> | 2022-03-30 17:07:12 -0500 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2022-04-01 22:06:11 -0500 |
| commit | d97c0d1685ef4c3840776327e76ce25d4dbdbeb1 (patch) | |
| tree | 03df42379fb670389ce5c2d67f56907617072a18 /src/test/burn/WixTestTools | |
| parent | fec789e9645a0f1dc1d91143bf7592cba8c4f0a2 (diff) | |
| download | wix-d97c0d1685ef4c3840776327e76ce25d4dbdbeb1.tar.gz wix-d97c0d1685ef4c3840776327e76ce25d4dbdbeb1.tar.bz2 wix-d97c0d1685ef4c3840776327e76ce25d4dbdbeb1.zip | |
Update PackageVerifier to calculate installed path of file.
Fixes 6676
Diffstat (limited to 'src/test/burn/WixTestTools')
| -rw-r--r-- | src/test/burn/WixTestTools/PackageVerifier.cs | 43 |
1 files changed, 33 insertions, 10 deletions
diff --git a/src/test/burn/WixTestTools/PackageVerifier.cs b/src/test/burn/WixTestTools/PackageVerifier.cs index 2f42dd21..fd8378e0 100644 --- a/src/test/burn/WixTestTools/PackageVerifier.cs +++ b/src/test/burn/WixTestTools/PackageVerifier.cs | |||
| @@ -19,19 +19,42 @@ namespace WixTestTools | |||
| 19 | 19 | ||
| 20 | public string GetInstalledFilePath(string filename) | 20 | public string GetInstalledFilePath(string filename) |
| 21 | { | 21 | { |
| 22 | return this.TestContext.GetTestInstallFolder(this.IsX64, Path.Combine(this.GetInstallFolderName(), filename)); | 22 | var fileRow = this.WiData.Tables["File"].Rows.Single(r => r.FieldAsString(2).Contains(filename)); |
| 23 | } | 23 | var componentRow = this.WiData.Tables["Component"].Rows.Single(r => r.FieldAsString(0) == fileRow.FieldAsString(1)); |
| 24 | var directoryId = componentRow.FieldAsString(2); | ||
| 25 | var path = filename; | ||
| 24 | 26 | ||
| 25 | public string GetInstallFolderName() | 27 | while (directoryId != null) |
| 26 | { | ||
| 27 | var row = this.WiData.Tables["Directory"].Rows.Single(r => r.FieldAsString(0) == "INSTALLFOLDER"); | ||
| 28 | var value = row.FieldAsString(2); | ||
| 29 | var longNameIndex = value.IndexOf('|') + 1; | ||
| 30 | if (longNameIndex > 0) | ||
| 31 | { | 28 | { |
| 32 | return value.Substring(longNameIndex); | 29 | string directoryName; |
| 30 | |||
| 31 | if (directoryId == "ProgramFiles6432Folder") | ||
| 32 | { | ||
| 33 | var baseDirectory = this.IsX64 ? Environment.SpecialFolder.ProgramFiles : Environment.SpecialFolder.ProgramFilesX86; | ||
| 34 | directoryName = Environment.GetFolderPath(baseDirectory); | ||
| 35 | |||
| 36 | directoryId = null; | ||
| 37 | } | ||
| 38 | else if (directoryId == "LocalAppDataFolder") | ||
| 39 | { | ||
| 40 | directoryName = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); | ||
| 41 | |||
| 42 | directoryId = null; | ||
| 43 | } | ||
| 44 | else | ||
| 45 | { | ||
| 46 | var directoryRow = this.WiData.Tables["Directory"].Rows.Single(r => r.FieldAsString(0) == directoryId); | ||
| 47 | var value = directoryRow.FieldAsString(2); | ||
| 48 | var longNameIndex = value.IndexOf('|') + 1; | ||
| 49 | directoryName = longNameIndex > 0 ? value.Substring(longNameIndex) : value; | ||
| 50 | |||
| 51 | directoryId = directoryRow.FieldAsString(1); | ||
| 52 | } | ||
| 53 | |||
| 54 | path = Path.Combine(directoryName, path); | ||
| 33 | } | 55 | } |
| 34 | return value; | 56 | |
| 57 | return path; | ||
| 35 | } | 58 | } |
| 36 | 59 | ||
| 37 | public string GetProperty(string name) | 60 | public string GetProperty(string name) |
