All files
[pithos-ms-client] / trunk / Pithos.ShellExtensions.Test / IconOverlayTest.cs
1 using System;
2 using System.IO;
3 using NUnit.Framework;
4 using Pithos.ShellExtensions.Overlays;
5
6 namespace Pithos.ShellExtensions.Test
7 {
8     [TestFixture]
9     public class IconOverlayTest
10     {
11         public const int S_OK = 0x0000;
12         public const int S_FALSE = 0x0001;
13
14         [SetUp]
15         public void Setup()
16         {/*
17             var ioc = IoC.Current;
18             var catalog = new AggregateCatalog();
19             catalog.Catalogs.Add(new AssemblyCatalog(Assembly.GetExecutingAssembly()));
20
21             ioc.Container = new CompositionContainer(catalog);
22 */   
23         }
24
25         [Test]
26         public void CreateOverlayTest()
27         {
28             var normalOverlay=new NormalIconOverlay();
29             
30             Assert.IsFalse(String.IsNullOrWhiteSpace(normalOverlay.IconPath ));
31             Assert.IsFalse(String.IsNullOrWhiteSpace(normalOverlay.OverlayName));
32             Assert.AreEqual("0PithosNormal", normalOverlay.OverlayName);
33
34             var iconPath = @"C:\Program Files\Common Files\TortoiseOverlays\icons\XPStyle\";
35
36             Assert.AreEqual(Path.Combine(iconPath,"NormalIcon.ico"),normalOverlay.IconPath);
37
38             var conflictOverlay = new ConflictIconOverlay();
39             Assert.AreEqual(Path.Combine(iconPath, "ConflictIcon.ico"), conflictOverlay.IconPath);
40
41             var modifiedOverlay = new ModifiedIconOverlay();
42             Assert.AreEqual(Path.Combine(iconPath, "ModifiedIcon.ico"), modifiedOverlay.IconPath);
43
44             var synchOverlay = new SynchIconOverlay();
45             Assert.AreEqual(Path.Combine(iconPath, "SynchIcon.ico"), synchOverlay.IconPath);
46         }
47         
48         [Test]
49         public void TestMembership()
50         {
51             var overlay=new NormalIconOverlay();
52
53             var status = overlay.IsMemberOf(@"e:\pithos\0file.txt", 0);
54             Assert.AreEqual(status,S_OK);
55
56             status = overlay.IsMemberOf(@"e:\Pithos\0file.txt", 0);
57             Assert.AreEqual(status, S_OK,"Failed checking Camel cased folder");
58
59             status = overlay.IsMemberOf(@"e:\Pithos\", 0);
60             Assert.AreEqual(status, S_OK,"Failed checking camel folder with slash");
61
62             status = overlay.IsMemberOf(@"e:\pithos\", 0);
63             Assert.AreEqual(status, S_OK,"Failed lower folder with slash");
64
65             status = overlay.IsMemberOf(@"e:\pithos", 0);
66             Assert.AreEqual(status, S_OK,"Failed lower folder no slash");
67
68             status = overlay.IsMemberOf(@"e:\0file.txt", 0);
69             Assert.AreEqual(status, S_FALSE,"Failed unrelated file");
70
71             status = overlay.IsMemberOf(@"e:\pithos\1file.txt", 0);
72             Assert.AreEqual(status, S_FALSE,"Failed different state file");
73
74         }
75
76     }
77 }