if (virtualPath [0] != '/')\r
throw new ArgumentException ("The virtual path is not rooted", "virtualPath");\r
\r
- string result = UrlUtils.GetDirectory (virtualPath);\r
+ if (virtualPath == "/")\r
+ return null; //.net behavior\r
+\r
+ //In .Net - will look for one '/' before the last one, and will return it as a directory\r
+ //therefor we always should remove the last slash.\r
+ if (virtualPath.EndsWith("/")) \r
+ virtualPath = virtualPath.Substring(0, virtualPath.Length - 1);\r
+\r
+ string result = UrlUtils.GetDirectory (virtualPath);\r
return AppendTrailingSlash (result);\r
}\r
\r
public static string GetExtension (string virtualPath)\r
{\r
- string filename = GetFileName (virtualPath);\r
+ if (virtualPath != null && virtualPath != "" && \r
+ virtualPath.IndexOf('/') == -1)\r
+ {\r
+ virtualPath = "./" + virtualPath;\r
+ }\r
+\r
+ string filename = GetFileName (virtualPath);\r
int dot = filename.LastIndexOf ('.');\r
if (dot == -1 || dot == filename.Length + 1)\r
return "";\r
\r
#endif\r
\r
+\r
using System;\r
using System.Web;\r
using VPU = System.Web.VirtualPathUtility;\r
+using MonoTests.SystemWeb.Framework;\r
+using MonoTests.stand_alone.WebHarness;\r
+using System.Web.UI;\r
\r
using NUnit.Framework;\r
\r
}\r
\r
[Test]\r
- [Category ("NotWorking")]\r
public void GetDirectory ()\r
{\r
Assert.AreEqual ("/hi/", VPU.GetDirectory ("/hi/there"), "A1");\r
}\r
\r
[Test]\r
- [Category ("NotWorking")]\r
public void GetExtension ()\r
{\r
Assert.AreEqual (".aspx", VPU.GetExtension ("/hi/index.aspx"), "A1");\r
}\r
\r
[Test]\r
- [Category ("NotWorking")]\r
public void MakeRelative5 ()\r
{\r
Assert.AreEqual ("", VPU.MakeRelative ("", ""));\r
Assert.AreEqual ("", VPU.MakeRelative ("/something", ""));\r
- Assert.AreEqual ("./", VPU.MakeRelative ("/", "/"));\r
}\r
\r
+ [Test]\r
+ [Category ("NotWorking")]\r
+ public void MakeRelative6()\r
+ {\r
+ //The test is not working due to the : System.URI.MakeRelativeUri - not implemented exception\r
+ Assert.AreEqual("./", VPU.MakeRelative("/", "/"));\r
+ }\r
+\r
[Test]\r
public void RemoveTrailingSlash2 ()\r
{\r
}\r
\r
[Test]\r
- [Category ("NotWorking")]\r
+ [Category("NunitWeb")]\r
[ExpectedException (typeof (ArgumentNullException))]\r
public void ToAbsolute1 ()\r
{\r
- VPU.ToAbsolute (null);\r
+ new WebTest(PageInvoker.CreateOnLoad(ToAbsolute1_Load)).Run();\r
}\r
\r
+ public static void ToAbsolute1_Load(Page p)\r
+ {\r
+ VPU.ToAbsolute(null);\r
+ }\r
+\r
[Test]\r
- [Category ("NotWorking")]\r
+ [Category("NunitWeb")]\r
[ExpectedException (typeof (ArgumentNullException))]\r
public void ToAbsolute2 ()\r
{\r
- VPU.ToAbsolute ("");\r
+ new WebTest(PageInvoker.CreateOnLoad(ToAbsolute2_Load)).Run();\r
}\r
\r
+ public static void ToAbsolute2_Load(Page p) \r
+ {\r
+ VPU.ToAbsolute("");\r
+ }\r
+\r
[Test]\r
- [Category ("NotWorking")]\r
+ [Category("NunitWeb")]\r
[ExpectedException (typeof (ArgumentException))]\r
public void ToAbsolute3 ()\r
{\r
- VPU.ToAbsolute ("..");\r
+ new WebTest(PageInvoker.CreateOnLoad(ToAbsolute3_Load)).Run();\r
}\r
\r
+ public static void ToAbsolute3_Load(Page p)\r
+ {\r
+ VPU.ToAbsolute("..");\r
+ }\r
+\r
[Test]\r
- [Category ("NotWorking")]\r
+ [Category ("NunitWeb")]\r
[ExpectedException (typeof (ArgumentException))]\r
public void ToAbsolute4 ()\r
{\r
- VPU.ToAbsolute ("...");\r
+ new WebTest(PageInvoker.CreateOnLoad(ToAbsolute4_Load)).Run();\r
}\r
\r
+ public static void ToAbsolute4_Load(Page p)\r
+ {\r
+ VPU.ToAbsolute("...");\r
+ }\r
+\r
[Test]\r
- [Category ("NotWorking")]\r
+ [Category ("NunitWeb")]\r
[ExpectedException (typeof (ArgumentException))]\r
public void ToAbsolute5 ()\r
{\r
- VPU.ToAbsolute ("../blah");\r
+ new WebTest(PageInvoker.CreateOnLoad(ToAbsolute5_Load)).Run();\r
}\r
\r
+ public static void ToAbsolute5_Load(Page p)\r
+ {\r
+ VPU.ToAbsolute("../blah");\r
+ }\r
+\r
[Test]\r
- [ExpectedException (typeof (HttpException))]\r
-#if TARGET_JVM\r
- [Ignore ("TD #6964")]\r
-#endif\r
- public void ToAbsolute6 ()\r
+ [Category("NunitWeb")]\r
+ public void ToAbsolute6()\r
{\r
- VPU.ToAbsolute ("~/");\r
+ new WebTest(PageInvoker.CreateOnLoad(ToAbsolute6_Load)).Run();\r
}\r
+ public static void ToAbsolute6_Load(Page p)\r
+ {\r
+ Assert.IsNotEmpty(VPU.ToAbsolute("~/"));\r
+ }\r
\r
[Test]\r
- [ExpectedException (typeof (HttpException))]\r
-#if TARGET_JVM\r
- [Ignore ("TD #6964")]\r
-#endif\r
+ [Category("NunitWeb")]\r
public void ToAbsolute7 ()\r
{\r
- Assert.AreEqual ("/", VPU.ToAbsolute ("/"));\r
+ new WebTest(PageInvoker.CreateOnLoad(ToAbsolute7_Load)).Run();\r
}\r
-\r
+ public static void ToAbsolute7_Load(Page p)\r
+ {\r
+ Assert.AreEqual("/", VPU.ToAbsolute("/"));\r
+ }\r
[Test]\r
public void ToAbsolute8 ()\r
{\r
\r
#endif\r
\r
+\r