From 85f0d13379d10710d812a0b03da10d2d3895599b Mon Sep 17 00:00:00 2001 From: ayende Date: Fri, 23 Nov 2007 07:43:56 +0000 Subject: [PATCH] Changed the way the paths from AssemblySourceInfo will be returned, will use \ instead of . as a way to separate folders, fixes MR-359 git-svn-id: https://svn.castleproject.org/svn/castle/trunk@4515 73e77b4c-caa6-f847-a29a-24ab75ae54b6 --- .../Castle.Windsor.Tests-vs2005.csproj | 1 + .../FileAssemblyViewSourceLoaderTestCase.cs | 4 +-- .../Internal/AssemblySourceInfo.cs | 32 ++++++++++++++-------- .../BaseViewOnlyTestFixture.cs | 1 + .../RhinoMocksTestCase.cs | 11 ++++---- 5 files changed, 30 insertions(+), 19 deletions(-) diff --git a/InversionOfControl/Castle.Windsor.Tests/Castle.Windsor.Tests-vs2005.csproj b/InversionOfControl/Castle.Windsor.Tests/Castle.Windsor.Tests-vs2005.csproj index 002b61afd..72ebcc9ed 100644 --- a/InversionOfControl/Castle.Windsor.Tests/Castle.Windsor.Tests-vs2005.csproj +++ b/InversionOfControl/Castle.Windsor.Tests/Castle.Windsor.Tests-vs2005.csproj @@ -127,6 +127,7 @@ + Code diff --git a/MonoRail/Castle.MonoRail.Framework.Tests/FileAssemblyViewSourceLoaderTestCase.cs b/MonoRail/Castle.MonoRail.Framework.Tests/FileAssemblyViewSourceLoaderTestCase.cs index e3fc7580c..b59c7d9e4 100644 --- a/MonoRail/Castle.MonoRail.Framework.Tests/FileAssemblyViewSourceLoaderTestCase.cs +++ b/MonoRail/Castle.MonoRail.Framework.Tests/FileAssemblyViewSourceLoaderTestCase.cs @@ -67,7 +67,7 @@ namespace Castle.MonoRail.Framework.Tests Assert.AreEqual(3, views.Length); Assert.AreEqual(@"Content" + Path.DirectorySeparatorChar + "contentinassembly.vm", views[0]); Assert.AreEqual(@"Content" + Path.DirectorySeparatorChar + "notinassembly.vm", views[1]); - Assert.AreEqual(@"content.contentinassembly.vm", views[2]); + Assert.AreEqual(@"Content" + Path.DirectorySeparatorChar + "contentinassembly.vm", views[2]); foreach(string view in views) { @@ -124,7 +124,7 @@ namespace Castle.MonoRail.Framework.Tests Assert.AreEqual(1, views.Length); //Assert.AreEqual(@"Content" + Path.DirectorySeparatorChar + "contentinassembly.vm", views[0]); //Assert.AreEqual(@"Content" + Path.DirectorySeparatorChar + "notinassembly.vm", views[1]); - Assert.AreEqual(@"content.contentinassembly.vm", views[0]); + Assert.AreEqual(@"Content"+ Path.DirectorySeparatorChar +"contentinassembly.vm", views[0]); foreach (string view in views) { diff --git a/MonoRail/Castle.MonoRail.Framework/Internal/AssemblySourceInfo.cs b/MonoRail/Castle.MonoRail.Framework/Internal/AssemblySourceInfo.cs index 7badbdc20..0f08997b2 100644 --- a/MonoRail/Castle.MonoRail.Framework/Internal/AssemblySourceInfo.cs +++ b/MonoRail/Castle.MonoRail.Framework/Internal/AssemblySourceInfo.cs @@ -94,7 +94,6 @@ namespace Castle.MonoRail.Framework /// The views. public void CollectViews(string dirName, ArrayList views) { - int toStripLength = _namespace.Length; dirName = NormalizeTemplateName(dirName); @@ -104,23 +103,32 @@ namespace Castle.MonoRail.Framework { String name = names[i].ToLower(System.Globalization.CultureInfo.InvariantCulture); - if (name.StartsWith(_namespace.ToLower(System.Globalization.CultureInfo.InvariantCulture))) + name = RemovePrefix(_namespace, name); + + if (name.StartsWith(dirName.ToLower(System.Globalization.CultureInfo.InvariantCulture))) { - if (name[toStripLength] == '.') - { - name = name.Substring(toStripLength + 1); - } - else - { - name = name.Substring(toStripLength); - } + views.Add( + Path.Combine(dirName, RemovePrefix(dirName, name)) + ); } + } + } - if (name.StartsWith(dirName.ToLower(System.Globalization.CultureInfo.InvariantCulture))) + private string RemovePrefix(string prefix, string name) + { + int toStripLength = prefix.Length; + if (name.StartsWith(prefix.ToLower(System.Globalization.CultureInfo.InvariantCulture))) + { + if (name[toStripLength] == '.') + { + return name.Substring(toStripLength + 1); + } + else { - views.Add(name); + return name.Substring(toStripLength); } } + return name; } /// diff --git a/MonoRail/Castle.MonoRail.Views.Brail.Tests/BaseViewOnlyTestFixture.cs b/MonoRail/Castle.MonoRail.Views.Brail.Tests/BaseViewOnlyTestFixture.cs index e1489b145..f8dd1193a 100644 --- a/MonoRail/Castle.MonoRail.Views.Brail.Tests/BaseViewOnlyTestFixture.cs +++ b/MonoRail/Castle.MonoRail.Views.Brail.Tests/BaseViewOnlyTestFixture.cs @@ -35,6 +35,7 @@ namespace Castle.MonoRail.Views.Brail.Tests options.SaveDirectory = Environment.CurrentDirectory; options.SaveToDisk = true; options.Debug = true; + options.BatchCompile = true; string viewPath = Path.Combine(ConfigurationManager.AppSettings["tests.src"], "Views"); FileAssemblyViewSourceLoader loader = new FileAssemblyViewSourceLoader(viewPath); diff --git a/Tools/Castle.DynamicProxy2/Castle.DynamicProxy.Tests/RhinoMocksTestCase.cs b/Tools/Castle.DynamicProxy2/Castle.DynamicProxy.Tests/RhinoMocksTestCase.cs index 7a463053f..ddf1ce32d 100644 --- a/Tools/Castle.DynamicProxy2/Castle.DynamicProxy.Tests/RhinoMocksTestCase.cs +++ b/Tools/Castle.DynamicProxy2/Castle.DynamicProxy.Tests/RhinoMocksTestCase.cs @@ -137,9 +137,10 @@ namespace Castle.DynamicProxy.Tests [Test] public void CanGetCorrectValuesFromIntPtr() { - IHaveMethodThatReturnsIntPtr o = (IHaveMethodThatReturnsIntPtr)generator - .CreateInterfaceProxyWithoutTarget(typeof(IHaveMethodThatReturnsIntPtr), new IntPtrInterceptor()); - Assert.AreEqual(IntPtr.Zero, o.Foo()); + IFooWithIntPtr o = (IFooWithIntPtr)generator + .CreateInterfaceProxyWithoutTarget(typeof(IFooWithIntPtr), new IntPtrInterceptor()); + IntPtr buffer = o.Buffer(15); + Assert.AreEqual(IntPtr.Zero, buffer); } [Test] @@ -270,9 +271,9 @@ namespace Castle.DynamicProxy.Tests T Create() where T : List; } - public interface IHaveMethodThatReturnsIntPtr + public interface IFooWithIntPtr { - IntPtr Foo(); + IntPtr Buffer(UInt32 index); } public abstract class -- 2.11.4.GIT