diff --git a/src/Umbraco.Tests/Trees/BaseContentTreeTests.cs b/src/Umbraco.Tests/Trees/BaseContentTreeTests.cs
index 70c4ed9326..4a2c856a15 100644
--- a/src/Umbraco.Tests/Trees/BaseContentTreeTests.cs
+++ b/src/Umbraco.Tests/Trees/BaseContentTreeTests.cs
@@ -7,67 +7,6 @@ using umbraco.cms.presentation.Trees;
namespace Umbraco.Tests.Trees
{
-
- [TestFixture]
- public class BaseMediaTreeTests
- {
-
- [TearDown]
- public void TestTearDown()
- {
- BaseTree.AfterTreeRender -= EventHandler;
- BaseTree.BeforeTreeRender -= EventHandler;
- }
-
- [Test]
- public void Run_Optimized()
- {
- var tree = new MyOptimizedMediaTree("media");
-
- Assert.IsTrue(tree.UseOptimizedRendering);
- }
-
- [Test]
- public void Not_Optimized_Events_AfterRender()
- {
- var tree = new MyOptimizedMediaTree("media");
-
- BaseTree.AfterTreeRender += EventHandler;
-
- Assert.IsFalse(tree.UseOptimizedRendering);
- }
-
- [Test]
- public void Not_Optimized_Events_BeforeRender()
- {
- var tree = new MyOptimizedMediaTree("media");
-
- BaseTree.BeforeTreeRender += EventHandler;
-
- Assert.IsFalse(tree.UseOptimizedRendering);
- }
-
- private void EventHandler(object sender, TreeEventArgs treeEventArgs)
- {
-
- }
-
- public class MyOptimizedMediaTree : BaseMediaTree
- {
- public MyOptimizedMediaTree(string application)
- : base(application)
- {
- }
-
- protected override void CreateRootNode(ref XmlTreeNode rootNode)
- {
-
- }
- }
-
-
- }
-
[TestFixture]
public class BaseContentTreeTests
{
@@ -82,15 +21,17 @@ namespace Umbraco.Tests.Trees
[Test]
public void Run_Optimized()
{
- var tree = new MyOptimizedContentTree("content");
+ var tree1 = new MyOptimizedContentTree1("content");
+ var tree2 = new MyOptimizedContentTree2("content");
- Assert.IsTrue(tree.UseOptimizedRendering);
+ Assert.IsTrue(tree1.UseOptimizedRendering);
+ Assert.IsTrue(tree2.UseOptimizedRendering);
}
[Test]
public void Not_Optimized_Events_AfterRender()
{
- var tree = new MyOptimizedContentTree("content");
+ var tree = new MyOptimizedContentTree1("content");
BaseTree.AfterTreeRender += EventHandler;
@@ -100,7 +41,7 @@ namespace Umbraco.Tests.Trees
[Test]
public void Not_Optimized_Events_BeforeRender()
{
- var tree = new MyOptimizedContentTree("content");
+ var tree = new MyOptimizedContentTree1("content");
BaseTree.BeforeTreeRender += EventHandler;
@@ -120,17 +61,42 @@ namespace Umbraco.Tests.Trees
}
- public class MyOptimizedContentTree : BaseContentTree
+ //optimized because we are not overriding OnRenderNode
+ public class MyOptimizedContentTree1 : BaseContentTree
{
- public MyOptimizedContentTree(string application)
+ public MyOptimizedContentTree1(string application)
: base(application)
{
}
+ protected override void CreateRootNode(ref XmlTreeNode rootNode)
+ {
+
+ }
+ }
+
+ public class MyOptimizedContentTree2 : BaseContentTree
+ {
+ public MyOptimizedContentTree2(string application)
+ : base(application)
+ {
+ }
+
+ protected override bool LoadMinimalDocument
+ {
+ get { return true; }
+ }
+
protected override void CreateRootNode(ref XmlTreeNode rootNode)
{
}
+
+ //even if we override it will still be optimized because of the LoadMinimalDocument flag
+ protected override void OnRenderNode(ref XmlTreeNode xNode, umbraco.cms.businesslogic.web.Document doc)
+ {
+ base.OnRenderNode(ref xNode, doc);
+ }
}
public class MyNotOptimizedContentTree : BaseContentTree
@@ -145,6 +111,11 @@ namespace Umbraco.Tests.Trees
}
+ protected override bool LoadMinimalDocument
+ {
+ get { return false; }
+ }
+
protected override void OnRenderNode(ref XmlTreeNode xNode, umbraco.cms.businesslogic.web.Document doc)
{
base.OnRenderNode(ref xNode, doc);
diff --git a/src/Umbraco.Tests/Trees/BaseMediaTreeTests.cs b/src/Umbraco.Tests/Trees/BaseMediaTreeTests.cs
new file mode 100644
index 0000000000..0e93b3db78
--- /dev/null
+++ b/src/Umbraco.Tests/Trees/BaseMediaTreeTests.cs
@@ -0,0 +1,65 @@
+using NUnit.Framework;
+using umbraco.cms.presentation.Trees;
+
+namespace Umbraco.Tests.Trees
+{
+ [TestFixture]
+ public class BaseMediaTreeTests
+ {
+
+ [TearDown]
+ public void TestTearDown()
+ {
+ BaseTree.AfterTreeRender -= EventHandler;
+ BaseTree.BeforeTreeRender -= EventHandler;
+ }
+
+ [Test]
+ public void Run_Optimized()
+ {
+ var tree = new MyOptimizedMediaTree("media");
+
+ Assert.IsTrue(tree.UseOptimizedRendering);
+ }
+
+ [Test]
+ public void Not_Optimized_Events_AfterRender()
+ {
+ var tree = new MyOptimizedMediaTree("media");
+
+ BaseTree.AfterTreeRender += EventHandler;
+
+ Assert.IsFalse(tree.UseOptimizedRendering);
+ }
+
+ [Test]
+ public void Not_Optimized_Events_BeforeRender()
+ {
+ var tree = new MyOptimizedMediaTree("media");
+
+ BaseTree.BeforeTreeRender += EventHandler;
+
+ Assert.IsFalse(tree.UseOptimizedRendering);
+ }
+
+ private void EventHandler(object sender, TreeEventArgs treeEventArgs)
+ {
+
+ }
+
+ public class MyOptimizedMediaTree : BaseMediaTree
+ {
+ public MyOptimizedMediaTree(string application)
+ : base(application)
+ {
+ }
+
+ protected override void CreateRootNode(ref XmlTreeNode rootNode)
+ {
+
+ }
+ }
+
+
+ }
+}
\ No newline at end of file
diff --git a/src/Umbraco.Tests/Umbraco.Tests.csproj b/src/Umbraco.Tests/Umbraco.Tests.csproj
index 003b7611a3..a37a253e9b 100644
--- a/src/Umbraco.Tests/Umbraco.Tests.csproj
+++ b/src/Umbraco.Tests/Umbraco.Tests.csproj
@@ -363,6 +363,7 @@
+
diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/BaseContentTree.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/BaseContentTree.cs
index 31f65e3dde..81a97ab593 100644
--- a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/BaseContentTree.cs
+++ b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/BaseContentTree.cs
@@ -27,7 +27,6 @@ namespace umbraco.cms.presentation.Trees
private User _user;
- [Obsolete("This is no longer used and has no effect")]
protected virtual bool LoadMinimalDocument { get; set; }
///
@@ -118,6 +117,11 @@ function openContent(id) {
{
var node = CreateNode(e, allowedUserOptions);
+ //in optimized mode the LoadMinimalDocument will ALWAYS be true, if it is not true then we will
+ // be rendering in non-optimized mode and this code will not get executed so we don't need to worry
+ // about performance here.
+ OnRenderNode(ref node, new Document(e, LoadMinimalDocument));
+
OnBeforeNodeRender(ref Tree, ref node, EventArgs.Empty);
if (node != null)
{
@@ -495,7 +499,7 @@ function openContent(id) {
//now we need to check if the current tree type has OnRenderNode overridden with a custom implementation
//Strangely - this even works in med trust!
var method = this.GetType().GetMethod("OnRenderNode", BindingFlags.Instance | BindingFlags.NonPublic, null, new[] { typeof(XmlTreeNode).MakeByRefType(), typeof(Document) }, null);
- if (TypeHelper.IsOverride(method))
+ if (TypeHelper.IsOverride(method) && LoadMinimalDocument == false)
{
return false;
}
diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/ContentRecycleBin.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/ContentRecycleBin.cs
index c8ef6f2b2f..31dc820127 100644
--- a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/ContentRecycleBin.cs
+++ b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/ContentRecycleBin.cs
@@ -20,7 +20,6 @@ namespace umbraco.cms.presentation.Trees
public ContentRecycleBin(string application) : base(application) { }
- [Obsolete("This is no longer used and has no effect")]
protected override bool LoadMinimalDocument
{
get
diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadContent.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadContent.cs
index 15b7a2dfad..3eb086debc 100644
--- a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadContent.cs
+++ b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadContent.cs
@@ -56,7 +56,6 @@ namespace umbraco
}
}
- [Obsolete("This is no longer used and has no effect")]
protected override bool LoadMinimalDocument
{
get
diff --git a/src/umbraco.editorControls/MultiNodeTreePicker/FilteredContentTree.cs b/src/umbraco.editorControls/MultiNodeTreePicker/FilteredContentTree.cs
index c05f9849d9..664282ec89 100644
--- a/src/umbraco.editorControls/MultiNodeTreePicker/FilteredContentTree.cs
+++ b/src/umbraco.editorControls/MultiNodeTreePicker/FilteredContentTree.cs
@@ -36,7 +36,6 @@ namespace umbraco.editorControls.MultiNodeTreePicker
///
private int? m_DeterminedStartNodeId = null;
- [Obsolete("This is no longer used and has no effect")]
protected override bool LoadMinimalDocument
{
get