Skip to content

Commit 35f65a2

Browse files
Shazwazzanul800sebastiaan
authored andcommitted
re-enables LoadMinimalDocument and adds this to the optimized check, even in optimized model the OnRenderNode can still execute with a minimal doc.
1 parent e5320f0 commit 35f65a2

File tree

7 files changed

+109
-71
lines changed

7 files changed

+109
-71
lines changed

src/Umbraco.Tests/Trees/BaseContentTreeTests.cs

Lines changed: 37 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,10 @@
77

88
namespace Umbraco.Tests.Trees
99
{
10-
1110
[TestFixture]
12-
public class BaseMediaTreeTests
11+
public class BaseContentTreeTests
1312
{
14-
13+
1514
[TearDown]
1615
public void TestTearDown()
1716
{
@@ -22,15 +21,17 @@ public void TestTearDown()
2221
[Test]
2322
public void Run_Optimized()
2423
{
25-
var tree = new MyOptimizedMediaTree("media");
24+
var tree1 = new MyOptimizedContentTree1("content");
25+
var tree2 = new MyOptimizedContentTree2("content");
2626

27-
Assert.IsTrue(tree.UseOptimizedRendering);
27+
Assert.IsTrue(tree1.UseOptimizedRendering);
28+
Assert.IsTrue(tree2.UseOptimizedRendering);
2829
}
2930

3031
[Test]
3132
public void Not_Optimized_Events_AfterRender()
3233
{
33-
var tree = new MyOptimizedMediaTree("media");
34+
var tree = new MyOptimizedContentTree1("content");
3435

3536
BaseTree.AfterTreeRender += EventHandler;
3637

@@ -40,21 +41,30 @@ public void Not_Optimized_Events_AfterRender()
4041
[Test]
4142
public void Not_Optimized_Events_BeforeRender()
4243
{
43-
var tree = new MyOptimizedMediaTree("media");
44+
var tree = new MyOptimizedContentTree1("content");
4445

4546
BaseTree.BeforeTreeRender += EventHandler;
4647

4748
Assert.IsFalse(tree.UseOptimizedRendering);
4849
}
4950

51+
[Test]
52+
public void Not_Optimized_Overriden_Method()
53+
{
54+
var tree = new MyNotOptimizedContentTree("content");
55+
56+
Assert.IsFalse(tree.UseOptimizedRendering);
57+
}
58+
5059
private void EventHandler(object sender, TreeEventArgs treeEventArgs)
5160
{
5261

5362
}
5463

55-
public class MyOptimizedMediaTree : BaseMediaTree
64+
//optimized because we are not overriding OnRenderNode
65+
public class MyOptimizedContentTree1 : BaseContentTree
5666
{
57-
public MyOptimizedMediaTree(string application)
67+
public MyOptimizedContentTree1(string application)
5868
: base(application)
5969
{
6070
}
@@ -64,73 +74,29 @@ protected override void CreateRootNode(ref XmlTreeNode rootNode)
6474

6575
}
6676
}
67-
68-
69-
}
70-
71-
[TestFixture]
72-
public class BaseContentTreeTests
73-
{
74-
75-
[TearDown]
76-
public void TestTearDown()
77-
{
78-
BaseTree.AfterTreeRender -= EventHandler;
79-
BaseTree.BeforeTreeRender -= EventHandler;
80-
}
81-
82-
[Test]
83-
public void Run_Optimized()
84-
{
85-
var tree = new MyOptimizedContentTree("content");
86-
87-
Assert.IsTrue(tree.UseOptimizedRendering);
88-
}
89-
90-
[Test]
91-
public void Not_Optimized_Events_AfterRender()
92-
{
93-
var tree = new MyOptimizedContentTree("content");
94-
95-
BaseTree.AfterTreeRender += EventHandler;
96-
97-
Assert.IsFalse(tree.UseOptimizedRendering);
98-
}
9977

100-
[Test]
101-
public void Not_Optimized_Events_BeforeRender()
78+
public class MyOptimizedContentTree2 : BaseContentTree
10279
{
103-
var tree = new MyOptimizedContentTree("content");
104-
105-
BaseTree.BeforeTreeRender += EventHandler;
106-
107-
Assert.IsFalse(tree.UseOptimizedRendering);
108-
}
109-
110-
[Test]
111-
public void Not_Optimized_Overriden_Method()
112-
{
113-
var tree = new MyNotOptimizedContentTree("content");
114-
115-
Assert.IsFalse(tree.UseOptimizedRendering);
116-
}
117-
118-
private void EventHandler(object sender, TreeEventArgs treeEventArgs)
119-
{
120-
121-
}
122-
123-
public class MyOptimizedContentTree : BaseContentTree
124-
{
125-
public MyOptimizedContentTree(string application)
80+
public MyOptimizedContentTree2(string application)
12681
: base(application)
12782
{
12883
}
12984

85+
protected override bool LoadMinimalDocument
86+
{
87+
get { return true; }
88+
}
89+
13090
protected override void CreateRootNode(ref XmlTreeNode rootNode)
13191
{
13292

13393
}
94+
95+
//even if we override it will still be optimized because of the LoadMinimalDocument flag
96+
protected override void OnRenderNode(ref XmlTreeNode xNode, umbraco.cms.businesslogic.web.Document doc)
97+
{
98+
base.OnRenderNode(ref xNode, doc);
99+
}
134100
}
135101

136102
public class MyNotOptimizedContentTree : BaseContentTree
@@ -145,6 +111,11 @@ protected override void CreateRootNode(ref XmlTreeNode rootNode)
145111

146112
}
147113

114+
protected override bool LoadMinimalDocument
115+
{
116+
get { return false; }
117+
}
118+
148119
protected override void OnRenderNode(ref XmlTreeNode xNode, umbraco.cms.businesslogic.web.Document doc)
149120
{
150121
base.OnRenderNode(ref xNode, doc);
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
using NUnit.Framework;
2+
using umbraco.cms.presentation.Trees;
3+
4+
namespace Umbraco.Tests.Trees
5+
{
6+
[TestFixture]
7+
public class BaseMediaTreeTests
8+
{
9+
10+
[TearDown]
11+
public void TestTearDown()
12+
{
13+
BaseTree.AfterTreeRender -= EventHandler;
14+
BaseTree.BeforeTreeRender -= EventHandler;
15+
}
16+
17+
[Test]
18+
public void Run_Optimized()
19+
{
20+
var tree = new MyOptimizedMediaTree("media");
21+
22+
Assert.IsTrue(tree.UseOptimizedRendering);
23+
}
24+
25+
[Test]
26+
public void Not_Optimized_Events_AfterRender()
27+
{
28+
var tree = new MyOptimizedMediaTree("media");
29+
30+
BaseTree.AfterTreeRender += EventHandler;
31+
32+
Assert.IsFalse(tree.UseOptimizedRendering);
33+
}
34+
35+
[Test]
36+
public void Not_Optimized_Events_BeforeRender()
37+
{
38+
var tree = new MyOptimizedMediaTree("media");
39+
40+
BaseTree.BeforeTreeRender += EventHandler;
41+
42+
Assert.IsFalse(tree.UseOptimizedRendering);
43+
}
44+
45+
private void EventHandler(object sender, TreeEventArgs treeEventArgs)
46+
{
47+
48+
}
49+
50+
public class MyOptimizedMediaTree : BaseMediaTree
51+
{
52+
public MyOptimizedMediaTree(string application)
53+
: base(application)
54+
{
55+
}
56+
57+
protected override void CreateRootNode(ref XmlTreeNode rootNode)
58+
{
59+
60+
}
61+
}
62+
63+
64+
}
65+
}

src/Umbraco.Tests/Umbraco.Tests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -351,6 +351,7 @@
351351
<Compile Include="TestHelpers\Entities\MockedEntity.cs" />
352352
<Compile Include="TestHelpers\Entities\MockedMedia.cs" />
353353
<Compile Include="Trees\BaseContentTreeTests.cs" />
354+
<Compile Include="Trees\BaseMediaTreeTests.cs" />
354355
<Compile Include="UmbracoExamine\ContentServiceTest.cs" />
355356
<Compile Include="UmbracoExamine\EventsTest.cs" />
356357
<Compile Include="TypeHelperTests.cs" />

src/Umbraco.Web/umbraco.presentation/umbraco/Trees/BaseContentTree.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ public BaseContentTree(string application) : base(application) { }
2727

2828
private User _user;
2929

30-
[Obsolete("This is no longer used and has no effect")]
3130
protected virtual bool LoadMinimalDocument { get; set; }
3231

3332
/// <summary>
@@ -118,6 +117,11 @@ public override void Render(ref XmlTree Tree)
118117
{
119118
var node = CreateNode(e, allowedUserOptions);
120119

120+
//in optimized mode the LoadMinimalDocument will ALWAYS be true, if it is not true then we will
121+
// be rendering in non-optimized mode and this code will not get executed so we don't need to worry
122+
// about performance here.
123+
OnRenderNode(ref node, new Document(e, LoadMinimalDocument));
124+
121125
OnBeforeNodeRender(ref Tree, ref node, EventArgs.Empty);
122126
if (node != null)
123127
{
@@ -495,7 +499,7 @@ internal bool UseOptimizedRendering
495499
//now we need to check if the current tree type has OnRenderNode overridden with a custom implementation
496500
//Strangely - this even works in med trust!
497501
var method = this.GetType().GetMethod("OnRenderNode", BindingFlags.Instance | BindingFlags.NonPublic, null, new[] { typeof(XmlTreeNode).MakeByRefType(), typeof(Document) }, null);
498-
if (TypeHelper.IsOverride(method))
502+
if (TypeHelper.IsOverride(method) && LoadMinimalDocument == false)
499503
{
500504
return false;
501505
}

src/Umbraco.Web/umbraco.presentation/umbraco/Trees/ContentRecycleBin.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ public class ContentRecycleBin : BaseContentTree
2020

2121
public ContentRecycleBin(string application) : base(application) { }
2222

23-
[Obsolete("This is no longer used and has no effect")]
2423
protected override bool LoadMinimalDocument
2524
{
2625
get

src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadContent.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ protected Document StartNode
5656
}
5757
}
5858

59-
[Obsolete("This is no longer used and has no effect")]
6059
protected override bool LoadMinimalDocument
6160
{
6261
get

src/umbraco.editorControls/MultiNodeTreePicker/FilteredContentTree.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ public FilteredContentTree(string app)
3636
/// </summary>
3737
private int? m_DeterminedStartNodeId = null;
3838

39-
[Obsolete("This is no longer used and has no effect")]
4039
protected override bool LoadMinimalDocument
4140
{
4241
get

0 commit comments

Comments
 (0)