1 //
2 // System.Web.Hosting.VirtualPathProviderTest
3 //
4 // Author:
5 //	Gonzalo Paniagua Javier (gonzalo@ximian.com)
6 //
7 //
8 // Copyright (C) 2006 Novell, Inc (http://www.novell.com)
9 //
10 // Permission is hereby granted, free of charge, to any person obtaining
11 // a copy of this software and associated documentation files (the
12 // "Software"), to deal in the Software without restriction, including
13 // without limitation the rights to use, copy, modify, merge, publish,
14 // distribute, sublicense, and/or sell copies of the Software, and to
15 // permit persons to whom the Software is furnished to do so, subject to
16 // the following conditions:
17 //
18 // The above copyright notice and this permission notice shall be
19 // included in all copies or substantial portions of the Software.
20 //
21 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
24 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
25 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
27 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28 //
29 using System;
30 using System.Collections;
31 using System.IO;
32 using System.Web;
33 using System.Web.Caching;
34 using System.Web.Hosting;
35 using NUnit.Framework;
36 
37 namespace MonoTests.System.Web.Hosting {
38 	class DummyVPP : VirtualPathProvider {
FileExists(string virtualPath)39 		public override bool FileExists (string virtualPath)
40 		{
41 			bool de = base.FileExists (virtualPath);
42 			return de;
43 		}
44 
DirectoryExists(string virtualDir)45 		public override bool DirectoryExists (string virtualDir)
46 		{
47 			bool de = base.DirectoryExists (virtualDir);
48 			return de;
49 		}
50 
GetFile(string virtualPath)51 		public override VirtualFile GetFile (string virtualPath)
52 		{
53 			VirtualFile vf = base.GetFile (virtualPath);
54 			return vf;
55 		}
56 
GetFileHash(string virtualPath, IEnumerable dependencies)57 		public override string GetFileHash (string virtualPath, IEnumerable dependencies)
58 		{
59 			return base.GetFileHash (virtualPath, dependencies);
60 		}
61 
GetDirectory(string virtualDir)62 		public override VirtualDirectory GetDirectory (string virtualDir)
63 		{
64 			VirtualDirectory vd = base.GetDirectory (virtualDir);
65 			return vd;
66 		}
67 
GetCacheDependency(string virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart)68 		public override CacheDependency GetCacheDependency (string virtualPath,
69 						IEnumerable virtualPathDependencies, DateTime utcStart)
70 		{
71 			CacheDependency cd = base.GetCacheDependency (virtualPath, virtualPathDependencies, utcStart);
72 			return cd;
73 		}
74 	}
75 
76 	[TestFixture]
77 	public class VirtualPathProviderTest {
78 		// Unhosted tests: not running inside an ASP.NET appdomain.
79 		// Some tests may yield different results when hosted. I'll add those later.
80 		[Test]
FileExists1()81 		public void FileExists1 ()
82 		{
83 			DummyVPP dummy = new DummyVPP ();
84 			Assert.IsFalse (dummy.FileExists ("hola.aspx"));
85 		}
86 
87 		[Test]
DirectoryExists1()88 		public void DirectoryExists1 ()
89 		{
90 			DummyVPP dummy = new DummyVPP ();
91 			Assert.IsFalse (dummy.DirectoryExists ("hola"));
92 		}
93 
94 		[Test]
GetFile1()95 		public void GetFile1 ()
96 		{
97 			DummyVPP dummy = new DummyVPP ();
98 			Assert.IsNull (dummy.GetFile ("index.aspx"));
99 		}
100 
101 		[Test]
GetFileHash1()102 		public void GetFileHash1 ()
103 		{
104 			DummyVPP dummy = new DummyVPP ();
105 			Assert.IsNull (dummy.GetFileHash (null, null));
106 		}
107 
108 		[Test]
GetFileHash2()109 		public void GetFileHash2 ()
110 		{
111 			DummyVPP dummy = new DummyVPP ();
112 			Assert.IsNull (dummy.GetFileHash ("something", null));
113 		}
114 
115 		[Test]
GetDirectory1()116 		public void GetDirectory1 ()
117 		{
118 			DummyVPP dummy = new DummyVPP ();
119 			Assert.IsNull (dummy.GetDirectory ("some_directory"));
120 		}
121 
122 		[Test]
GetCacheDependency1()123 		public void GetCacheDependency1 ()
124 		{
125 			DummyVPP dummy = new DummyVPP ();
126 			Assert.IsNull (dummy.GetCacheDependency (null, null, DateTime.UtcNow));
127 		}
128 
129 		[Test]
GetCacheKey1()130 		public void GetCacheKey1 ()
131 		{
132 			DummyVPP dummy = new DummyVPP ();
133 			Assert.IsNull (dummy.GetCacheKey ("index.aspx"));
134 		}
135 
136 		[Test]
137 		[ExpectedException (typeof (NullReferenceException))]
OpenFile1()138 		public void OpenFile1 ()
139 		{
140 			VirtualPathProvider.OpenFile ("index.aspx");
141 		}
142 
143 		[Test]
CombineVirtualPaths1()144 		public void CombineVirtualPaths1 ()
145 		{
146 			DummyVPP dummy = new DummyVPP ();
147 			Assert.AreEqual ("/otherroot", dummy.CombineVirtualPaths ("/root", "/otherroot"));
148 		}
149 
150 		[Test]
CombineVirtualPaths2()151 		public void CombineVirtualPaths2 ()
152 		{
153 			DummyVPP dummy = new DummyVPP ();
154 			Assert.AreEqual ("/otherleaf", dummy.CombineVirtualPaths ("/root", "otherleaf"));
155 		}
156 
157 		[Test]
CombineVirtualPaths3()158 		public void CombineVirtualPaths3 ()
159 		{
160 			DummyVPP dummy = new DummyVPP ();
161 			Assert.AreEqual ("/otherleaf/index.aspx", dummy.CombineVirtualPaths ("/root", "otherleaf/index.aspx"));
162 		}
163 
164 		[Test]
165         [Category ("NotWorking")]
CombineVirtualPaths4()166 		public void CombineVirtualPaths4 ()
167 		{
168 			DummyVPP dummy = new DummyVPP ();
169 			Assert.AreEqual ("/otherleaf/index.aspx", dummy.CombineVirtualPaths ("/root", "./otherleaf/index.aspx"));
170 		}
171 
172 		[Test]
173 		[ExpectedException (typeof (ArgumentException))]
CombineVirtualPaths5()174 		public void CombineVirtualPaths5 ()
175 		{
176 			DummyVPP dummy = new DummyVPP ();
177 			dummy.CombineVirtualPaths ("root", "./otherleaf/index.aspx");
178 		}
179 	}
180 
181 }
182 
183