Statistics
| Branch: | Revision:

root / trunk / Pithos.ShellExtensions.Test / IconOverlayTest.cs @ 28076364

History | View | Annotate | Download (3.8 kB)

1 d78cbf09 Panagiotis Kanavos
using System;
2 29672672 Panagiotis Kanavos
using System.Collections;
3 29672672 Panagiotis Kanavos
using System.Collections.Generic;
4 d78cbf09 Panagiotis Kanavos
using System.IO;
5 29672672 Panagiotis Kanavos
using System.Linq;
6 29672672 Panagiotis Kanavos
using Microsoft.Win32;
7 d78cbf09 Panagiotis Kanavos
using NUnit.Framework;
8 d78cbf09 Panagiotis Kanavos
using Pithos.ShellExtensions.Overlays;
9 d78cbf09 Panagiotis Kanavos
10 d78cbf09 Panagiotis Kanavos
namespace Pithos.ShellExtensions.Test
11 d78cbf09 Panagiotis Kanavos
{
12 d78cbf09 Panagiotis Kanavos
    [TestFixture]
13 d78cbf09 Panagiotis Kanavos
    public class IconOverlayTest
14 d78cbf09 Panagiotis Kanavos
    {
15 d78cbf09 Panagiotis Kanavos
        public const int S_OK = 0x0000;
16 d78cbf09 Panagiotis Kanavos
        public const int S_FALSE = 0x0001;
17 d78cbf09 Panagiotis Kanavos
18 d78cbf09 Panagiotis Kanavos
        [SetUp]
19 d78cbf09 Panagiotis Kanavos
        public void Setup()
20 d78cbf09 Panagiotis Kanavos
        {/*
21 d78cbf09 Panagiotis Kanavos
            var ioc = IoC.Current;
22 d78cbf09 Panagiotis Kanavos
            var catalog = new AggregateCatalog();
23 d78cbf09 Panagiotis Kanavos
            catalog.Catalogs.Add(new AssemblyCatalog(Assembly.GetExecutingAssembly()));
24 d78cbf09 Panagiotis Kanavos
25 d78cbf09 Panagiotis Kanavos
            ioc.Container = new CompositionContainer(catalog);
26 d78cbf09 Panagiotis Kanavos
*/   
27 d78cbf09 Panagiotis Kanavos
        }
28 d78cbf09 Panagiotis Kanavos
29 29672672 Panagiotis Kanavos
30 29672672 Panagiotis Kanavos
        [Test]
31 29672672 Panagiotis Kanavos
        public void TestRegister()
32 29672672 Panagiotis Kanavos
        {
33 29672672 Panagiotis Kanavos
            var installer = new ProjectInstaller();
34 29672672 Panagiotis Kanavos
            IDictionary state=new Dictionary<object,object>();
35 29672672 Panagiotis Kanavos
            installer.Install(state);
36 29672672 Panagiotis Kanavos
37 29672672 Panagiotis Kanavos
            using (var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\TortoiseOverlays\Normal"))
38 29672672 Panagiotis Kanavos
            {
39 29672672 Panagiotis Kanavos
                var values = key.GetValueNames();
40 29672672 Panagiotis Kanavos
                Assert.Contains("Pithos",values);
41 29672672 Panagiotis Kanavos
            }
42 29672672 Panagiotis Kanavos
43 29672672 Panagiotis Kanavos
            installer.Uninstall(state);
44 29672672 Panagiotis Kanavos
        }
45 29672672 Panagiotis Kanavos
46 d78cbf09 Panagiotis Kanavos
        [Test]
47 29672672 Panagiotis Kanavos
        public void TestUnRegister()
48 29672672 Panagiotis Kanavos
        {
49 29672672 Panagiotis Kanavos
            var installer = new ProjectInstaller();
50 29672672 Panagiotis Kanavos
            IDictionary state = new Dictionary<object, object>();
51 29672672 Panagiotis Kanavos
            installer.Install(state);
52 29672672 Panagiotis Kanavos
            installer.Uninstall(state);
53 29672672 Panagiotis Kanavos
54 29672672 Panagiotis Kanavos
55 29672672 Panagiotis Kanavos
            using (var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\TortoiseOverlays\Normal"))
56 29672672 Panagiotis Kanavos
            {
57 29672672 Panagiotis Kanavos
                var values = key.GetValueNames();
58 29672672 Panagiotis Kanavos
                Assert.IsFalse(values.Contains("Pithos"));
59 29672672 Panagiotis Kanavos
            }
60 29672672 Panagiotis Kanavos
61 29672672 Panagiotis Kanavos
            
62 29672672 Panagiotis Kanavos
        }
63 29672672 Panagiotis Kanavos
64 29672672 Panagiotis Kanavos
        
65 29672672 Panagiotis Kanavos
        /*[Test]
66 d78cbf09 Panagiotis Kanavos
        public void CreateOverlayTest()
67 d78cbf09 Panagiotis Kanavos
        {
68 d78cbf09 Panagiotis Kanavos
            var normalOverlay=new NormalIconOverlay();
69 d78cbf09 Panagiotis Kanavos
            
70 d78cbf09 Panagiotis Kanavos
            Assert.IsFalse(String.IsNullOrWhiteSpace(normalOverlay.IconPath ));
71 d78cbf09 Panagiotis Kanavos
            Assert.IsFalse(String.IsNullOrWhiteSpace(normalOverlay.OverlayName));
72 d78cbf09 Panagiotis Kanavos
            Assert.AreEqual("0PithosNormal", normalOverlay.OverlayName);
73 d78cbf09 Panagiotis Kanavos
74 d78cbf09 Panagiotis Kanavos
            var iconPath = @"C:\Program Files\Common Files\TortoiseOverlays\icons\XPStyle\";
75 d78cbf09 Panagiotis Kanavos
76 d78cbf09 Panagiotis Kanavos
            Assert.AreEqual(Path.Combine(iconPath,"NormalIcon.ico"),normalOverlay.IconPath);
77 d78cbf09 Panagiotis Kanavos
78 d78cbf09 Panagiotis Kanavos
            var conflictOverlay = new ConflictIconOverlay();
79 d78cbf09 Panagiotis Kanavos
            Assert.AreEqual(Path.Combine(iconPath, "ConflictIcon.ico"), conflictOverlay.IconPath);
80 d78cbf09 Panagiotis Kanavos
81 d78cbf09 Panagiotis Kanavos
            var modifiedOverlay = new ModifiedIconOverlay();
82 d78cbf09 Panagiotis Kanavos
            Assert.AreEqual(Path.Combine(iconPath, "ModifiedIcon.ico"), modifiedOverlay.IconPath);
83 d78cbf09 Panagiotis Kanavos
84 d78cbf09 Panagiotis Kanavos
            var synchOverlay = new SynchIconOverlay();
85 d78cbf09 Panagiotis Kanavos
            Assert.AreEqual(Path.Combine(iconPath, "SynchIcon.ico"), synchOverlay.IconPath);
86 29672672 Panagiotis Kanavos
        }*/
87 d78cbf09 Panagiotis Kanavos
        
88 d78cbf09 Panagiotis Kanavos
        [Test]
89 d78cbf09 Panagiotis Kanavos
        public void TestMembership()
90 d78cbf09 Panagiotis Kanavos
        {
91 d78cbf09 Panagiotis Kanavos
            var overlay=new NormalIconOverlay();
92 d78cbf09 Panagiotis Kanavos
93 d78cbf09 Panagiotis Kanavos
            var status = overlay.IsMemberOf(@"e:\pithos\0file.txt", 0);
94 d78cbf09 Panagiotis Kanavos
            Assert.AreEqual(status,S_OK);
95 d78cbf09 Panagiotis Kanavos
96 d78cbf09 Panagiotis Kanavos
            status = overlay.IsMemberOf(@"e:\Pithos\0file.txt", 0);
97 d78cbf09 Panagiotis Kanavos
            Assert.AreEqual(status, S_OK,"Failed checking Camel cased folder");
98 d78cbf09 Panagiotis Kanavos
99 d78cbf09 Panagiotis Kanavos
            status = overlay.IsMemberOf(@"e:\Pithos\", 0);
100 d78cbf09 Panagiotis Kanavos
            Assert.AreEqual(status, S_OK,"Failed checking camel folder with slash");
101 d78cbf09 Panagiotis Kanavos
102 d78cbf09 Panagiotis Kanavos
            status = overlay.IsMemberOf(@"e:\pithos\", 0);
103 d78cbf09 Panagiotis Kanavos
            Assert.AreEqual(status, S_OK,"Failed lower folder with slash");
104 d78cbf09 Panagiotis Kanavos
105 d78cbf09 Panagiotis Kanavos
            status = overlay.IsMemberOf(@"e:\pithos", 0);
106 d78cbf09 Panagiotis Kanavos
            Assert.AreEqual(status, S_OK,"Failed lower folder no slash");
107 d78cbf09 Panagiotis Kanavos
108 d78cbf09 Panagiotis Kanavos
            status = overlay.IsMemberOf(@"e:\0file.txt", 0);
109 d78cbf09 Panagiotis Kanavos
            Assert.AreEqual(status, S_FALSE,"Failed unrelated file");
110 d78cbf09 Panagiotis Kanavos
111 d78cbf09 Panagiotis Kanavos
            status = overlay.IsMemberOf(@"e:\pithos\1file.txt", 0);
112 d78cbf09 Panagiotis Kanavos
            Assert.AreEqual(status, S_FALSE,"Failed different state file");
113 d78cbf09 Panagiotis Kanavos
114 d78cbf09 Panagiotis Kanavos
        }
115 d78cbf09 Panagiotis Kanavos
116 d78cbf09 Panagiotis Kanavos
    }
117 d78cbf09 Panagiotis Kanavos
}