// // // // // $Revision$ // using ICSharpCode.SharpDevelop.Project; using ICSharpCode.WixBinding; using NUnit.Framework; using System; using System.Collections; using System.Collections.Specialized; using System.IO; using System.Xml; using WixBinding.Tests.PackageFiles; using WixBinding.Tests.Utils; namespace WixBinding.Tests.DirectoryImport { /// /// Adds several directories and its contained files to the setup package. /// The original package has several components already defined. This /// test fixture checks that unique component ids are generated for the new /// files. /// [TestFixture] public class DuplicateComponentIdTestFixture : PackageFilesTestFixtureBase { WixDirectoryElement appDirectoryElement; WixComponentElement readmeComponentElement; WixComponentElement licenseComponentElement; WixComponentElement exeComponentElement; string directory = @"C:\Projects\Test\MyApp"; string[] files = new string[] {"MyApp.exe", "readme.txt", "license.txt"}; [TestFixtureSetUp] public void SetUpFixture() { base.InitFixture(); editor.AddDirectory(directory); WixNamespaceManager nsManager = new WixNamespaceManager(editor.Document.NameTable); appDirectoryElement = (WixDirectoryElement)editor.Document.RootDirectory.SelectSingleNode("w:Directory[@Name='MyApp']", nsManager);; readmeComponentElement = (WixComponentElement)appDirectoryElement.SelectSingleNode("w:Component[w:File/@Name='readme.txt']", nsManager); licenseComponentElement = (WixComponentElement)appDirectoryElement.SelectSingleNode("w:Component[w:File/@Name='license.txt']", nsManager); exeComponentElement = (WixComponentElement)appDirectoryElement.SelectSingleNode("w:Component[w:File/@Name='MyApp.exe']", nsManager); } /// /// Parent directory is added to component id. /// [Test] public void ReadmeComponentId() { Assert.AreEqual("MyAppReadmeTxt", readmeComponentElement.Id); } [Test] public void LicenseComponentId() { Assert.AreEqual("MyAppLicenseTxt1", licenseComponentElement.Id); } [Test] public void AppExeComponentId() { Assert.AreEqual("MyAppMyAppExe2", exeComponentElement.Id); } public override string[] GetFiles(string path) { if (path == directory) { return files; } return new string[0]; } public override string[] GetDirectories(string path) { return new string[0]; } protected override string GetWixXml() { return "\r\n" + "\t\r\n" + "\t\t\r\n" + "\t\t\r\n" + "\t\t\t\r\n" + "\t\t\t\t\r\n" + "\t\t\t\t\t\r\n" + "\t\t\t\t\t\r\n" + "\t\t\t\t\t\r\n" + "\t\t\t\t\t\r\n" + "\t\t\t\t\t\r\n" + "\t\t\t\t\t\r\n" + "\t\t\t\t\t\r\n" + "\t\t\t\t\t\r\n" + "\t\t\t\t\t\r\n" + "\t\t\t\t\t\r\n" + "\t\t\t\t\t\r\n" + "\t\t\t\t\t\r\n" + "\t\t\t\t\r\n" + "\t\t\t\r\n" + "\t\t\r\n" + "\t\r\n" + ""; } } }