|
3 | 3 | // See the LICENSE file in the project root for more information. |
4 | 4 | // Maintainer: Argo Zhang([email protected]) Website: https://www.blazor.zone |
5 | 5 |
|
6 | | -using Microsoft.AspNetCore.Components.Web; |
7 | | - |
8 | 6 | namespace UnitTest.Components; |
9 | 7 |
|
10 | 8 | public class TreeViewTest : BootstrapBlazorTestBase |
@@ -1223,158 +1221,6 @@ public async Task ShowToolbar_Ok() |
1223 | 1221 | Assert.Contains("test-toolbar-template", cut.Markup); |
1224 | 1222 | } |
1225 | 1223 |
|
1226 | | - [Fact] |
1227 | | - public async Task Draggable_Basic_MoveAsLastChild() |
1228 | | - { |
1229 | | - // Arrange |
1230 | | - var items = new List<TreeFoo> |
1231 | | - { |
1232 | | - new() { Text = "Root", Id = "1" }, |
1233 | | - new() { Text = "Child1", Id = "2", ParentId = "1" }, |
1234 | | - new() { Text = "Child2", Id = "3", ParentId = "1" }, |
1235 | | - new() { Text = "Root2", Id = "4" }, |
1236 | | - new() { Text = "Child3", Id = "5", ParentId = "4" } |
1237 | | - }; |
1238 | | - var nodes = TreeFoo.CascadingTree(items); |
1239 | | - nodes[0].IsExpand = true; |
1240 | | - var cut = Context.RenderComponent<TreeView<TreeFoo>>(pb => |
1241 | | - { |
1242 | | - pb.Add(a => a.Items, nodes); |
1243 | | - pb.Add(a => a.ItemDraggable, true); |
1244 | | - }); |
1245 | | - |
1246 | | - var rows = cut.FindComponents<TreeViewRow<TreeFoo>>(); |
1247 | | - var dragSource = rows[1]; // Child1 |
1248 | | - var dragTarget = rows[3]; // Root2 |
1249 | | - |
1250 | | - var dragSourceElement = dragSource.Find(".tree-node"); |
1251 | | - var dragTargetDropZone = dragTarget.Find(".tree-drop-child-inside"); |
1252 | | - // 1. 触发 dragstart |
1253 | | - await dragSourceElement.TriggerEventAsync("ondragstart", new DragEventArgs()); |
1254 | | - // 2. 触发 dragenter 到目标 drop zone |
1255 | | - await dragTargetDropZone.TriggerEventAsync("ondragenter", new DragEventArgs()); |
1256 | | - // 3. 触发 drop 到目标 drop zone |
1257 | | - await dragTargetDropZone.TriggerEventAsync("ondrop", new DragEventArgs()); |
1258 | | - // 成功移动,原对象销毁,不触发dragend |
1259 | | - |
1260 | | - // Assert |
1261 | | - Assert.Equal("Root2", nodes[1].Text); |
1262 | | - Assert.Equal(2, nodes[1].Items.Count); |
1263 | | - Assert.Equal("Child1", nodes[1].Items[1].Text); |
1264 | | - Assert.Equal(nodes[1], nodes[1].Items[1].Parent); |
1265 | | - } |
1266 | | - |
1267 | | - [Fact] |
1268 | | - public async Task Draggable_Basic_MoveAsSiblingBelow() |
1269 | | - { |
1270 | | - // Arrange |
1271 | | - var items = new List<TreeFoo> |
1272 | | - { |
1273 | | - new() { Text = "Root", Id = "1" }, |
1274 | | - new() { Text = "Child1", Id = "2", ParentId = "1" }, |
1275 | | - new() { Text = "Child2", Id = "3", ParentId = "1" } |
1276 | | - }; |
1277 | | - var nodes = TreeFoo.CascadingTree(items); |
1278 | | - nodes[0].IsExpand = true; |
1279 | | - var cut = Context.RenderComponent<TreeView<TreeFoo>>(pb => |
1280 | | - { |
1281 | | - pb.Add(a => a.Items, nodes); |
1282 | | - pb.Add(a => a.ItemDraggable, true); |
1283 | | - }); |
1284 | | - |
1285 | | - var rows = cut.FindComponents<TreeViewRow<TreeFoo>>(); |
1286 | | - var dragSource = rows[1]; // Child1 |
1287 | | - var dragTarget = rows[2]; // Child2 |
1288 | | - |
1289 | | - // 获取可拖拽的 DOM 元素(DynamicElement) |
1290 | | - var dragSourceElement = dragSource.Find(".tree-node"); |
1291 | | - var dragTargetDropZone = dragTarget.Find(".tree-drop-child-below"); |
1292 | | - // 1. 触发 dragstart |
1293 | | - await dragSourceElement.TriggerEventAsync("ondragstart", new DragEventArgs()); |
1294 | | - // 2. 触发 dragenter 到目标 drop zone |
1295 | | - await dragTargetDropZone.TriggerEventAsync("ondragenter", new DragEventArgs()); |
1296 | | - // 3. 触发 drop 到目标 drop zone |
1297 | | - await dragTargetDropZone.TriggerEventAsync("ondrop", new DragEventArgs()); |
1298 | | - // 成功移动,原对象销毁,不触发dragend |
1299 | | - |
1300 | | - // Assert |
1301 | | - var parent = nodes[0]; |
1302 | | - Assert.Equal(2, parent.Items.Count); |
1303 | | - Assert.Equal("Child2", parent.Items[0].Text); |
1304 | | - Assert.Equal("Child1", parent.Items[1].Text); |
1305 | | - } |
1306 | | - |
1307 | | - [Fact] |
1308 | | - public async Task Draggable_OnDrop_Cancel() |
1309 | | - { |
1310 | | - // Arrange |
1311 | | - var items = new List<TreeFoo> |
1312 | | - { |
1313 | | - new() { Text = "Root", Id = "1" }, |
1314 | | - new() { Text = "Child1", Id = "2", ParentId = "1" }, |
1315 | | - new() { Text = "Child2", Id = "3", ParentId = "1" } |
1316 | | - }; |
1317 | | - var nodes = TreeFoo.CascadingTree(items); |
1318 | | - nodes[0].IsExpand = true; |
1319 | | - var cut = Context.RenderComponent<TreeView<TreeFoo>>(pb => |
1320 | | - { |
1321 | | - pb.Add(a => a.Items, nodes); |
1322 | | - pb.Add(a => a.ItemDraggable, true); |
1323 | | - pb.Add(a => a.OnDrop, args => Task.FromResult(false)); // 拒绝拖拽 |
1324 | | - }); |
1325 | | - |
1326 | | - var rows = cut.FindComponents<TreeViewRow<TreeFoo>>(); |
1327 | | - var dragSource = rows[1]; // Child1 |
1328 | | - var dragTarget = rows[2]; // Child2 |
1329 | | - |
1330 | | - // 获取可拖拽的 DOM 元素(DynamicElement) |
1331 | | - var dragSourceElement = dragSource.Find(".tree-node"); |
1332 | | - var dragTargetDropZone = dragTarget.Find(".tree-drop-child-below"); |
1333 | | - // 1. 触发 dragstart |
1334 | | - await dragSourceElement.TriggerEventAsync("ondragstart", new DragEventArgs()); |
1335 | | - // 2. 触发 dragenter 到目标 drop zone |
1336 | | - await dragTargetDropZone.TriggerEventAsync("ondragenter", new DragEventArgs()); |
1337 | | - // 3. 触发 drop 到目标 drop zone |
1338 | | - await dragTargetDropZone.TriggerEventAsync("ondrop", new DragEventArgs()); |
1339 | | - // 4. 触发 dragend |
1340 | | - await dragSourceElement.TriggerEventAsync("ondragend", new DragEventArgs()); |
1341 | | - |
1342 | | - // Assert: 顺序未变 |
1343 | | - var parent = nodes[0]; |
1344 | | - Assert.Equal("Child1", parent.Items[0].Text); |
1345 | | - Assert.Equal("Child2", parent.Items[1].Text); |
1346 | | - } |
1347 | | - |
1348 | | - [Fact] |
1349 | | - public async Task Draggable_DragClassState() |
1350 | | - { |
1351 | | - // Arrange |
1352 | | - var items = new List<TreeFoo> |
1353 | | - { |
1354 | | - new() { Text = "Root", Id = "1" } |
1355 | | - }; |
1356 | | - var nodes = TreeFoo.CascadingTree(items); |
1357 | | - var cut = Context.RenderComponent<TreeView<TreeFoo>>(pb => |
1358 | | - { |
1359 | | - pb.Add(a => a.Items, nodes); |
1360 | | - pb.Add(a => a.ItemDraggable, true); |
1361 | | - }); |
1362 | | - |
1363 | | - var row = cut.FindComponent<TreeViewRow<TreeFoo>>(); |
1364 | | - var dragEvent = new DragEventArgs(); |
1365 | | - |
1366 | | - // 获取可拖拽的 DOM 元素 |
1367 | | - var dragSourceElement = row.Find(".tree-node"); |
1368 | | - |
1369 | | - // 触发拖拽开始 |
1370 | | - await dragSourceElement.TriggerEventAsync("ondragstart", new DragEventArgs()); |
1371 | | - Assert.Contains("tree-drop-pass", row.Markup); |
1372 | | - |
1373 | | - // 触发拖拽结束 |
1374 | | - await dragSourceElement.TriggerEventAsync("ondragend", new DragEventArgs()); |
1375 | | - Assert.DoesNotContain("tree-drop-pass", row.Markup); |
1376 | | - } |
1377 | | - |
1378 | 1224 | class MockTree<TItem> : TreeView<TItem> where TItem : class |
1379 | 1225 | { |
1380 | 1226 | public bool TestComparerItem(TItem? a, TItem? b) => base.Equals(a, b); |
|
0 commit comments