Skip to content
This repository was archived by the owner on Dec 5, 2024. It is now read-only.

Commit 79ea6c4

Browse files
Adding a good set of tests
1 parent cb42cc0 commit 79ea6c4

File tree

2 files changed

+678
-43
lines changed

2 files changed

+678
-43
lines changed

src/GitHub.Api/UI/TreeBase.cs

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,14 @@ public void Load(IEnumerable<TData> treeDatas)
4242
var collapsedFolders = new HashSet<string>(GetCollapsedFolders());
4343
var selectedNodePath = SelectedNodePath;
4444
var checkedFiles = new HashSet<string>(GetCheckedFiles());
45+
var pathSeparator = PathSeparator;
4546

4647
Clear();
4748

4849
var displayRootLevel = DisplayRootNode ? 1 : 0;
4950

51+
var isCheckable = IsCheckable;
52+
5053
var isSelected = IsSelectable && selectedNodePath != null && Title == selectedNodePath;
5154
AddNode(Title, Title, -1 + displayRootLevel, true, false, false, false, isSelected, false, null);
5255

@@ -57,12 +60,12 @@ public void Load(IEnumerable<TData> treeDatas)
5760

5861
foreach (var treeData in treeDatas)
5962
{
60-
var parts = treeData.Path.Split(new[] { PathSeparator }, StringSplitOptions.None);
63+
var parts = treeData.Path.Split(new[] { pathSeparator }, StringSplitOptions.None);
6164
for (var i = 0; i < parts.Length; i++)
6265
{
6366
var label = parts[i];
6467
var level = i + 1;
65-
var nodePath = String.Join(PathSeparator, parts, 0, level);
68+
var nodePath = String.Join(pathSeparator, parts, 0, level);
6669
var isFolder = i < parts.Length - 1;
6770
var alreadyExists = folders.Contains(nodePath);
6871
if (!alreadyExists)
@@ -104,7 +107,7 @@ public void Load(IEnumerable<TData> treeDatas)
104107
{
105108
isActive = treeData.IsActive;
106109
treeNodeTreeData = treeData;
107-
isChecked = checkedFiles.Contains(nodePath);
110+
isChecked = isCheckable && checkedFiles.Contains(nodePath);
108111
}
109112

110113
isSelected = selectedNodePath != null && nodePath == selectedNodePath;
@@ -114,19 +117,20 @@ public void Load(IEnumerable<TData> treeDatas)
114117
}
115118
}
116119

117-
if (IsCheckable && checkedFiles.Any())
120+
if (isCheckable && checkedFiles.Any())
118121
{
119-
for (var index = Nodes.Count - 1; index >= 0; index--)
122+
var nodes = Nodes;
123+
for (var index = nodes.Count - 1; index >= 0; index--)
120124
{
121-
var node = Nodes[index];
125+
var node = nodes[index];
122126
if (node.Level >= 0 && node.IsFolder)
123127
{
124128
bool? anyChecked = null;
125129
bool? allChecked = null;
126130

127-
for (var i = index + 1; i < Nodes.Count; i++)
131+
for (var i = index + 1; i < nodes.Count; i++)
128132
{
129-
var nodeCompare = Nodes[i];
133+
var nodeCompare = nodes[i];
130134
if (nodeCompare.Level < node.Level + 1)
131135
{
132136
break;

0 commit comments

Comments
 (0)