//
//
//
//
// $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" +
"";
}
}
}