summaryrefslogtreecommitdiff
path: root/src/test/burn/WixTestTools/PackageVerifier.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/burn/WixTestTools/PackageVerifier.cs')
-rw-r--r--src/test/burn/WixTestTools/PackageVerifier.cs43
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)