public void TestEmulateSelectItemEventAsync() { NativeTree tree = new NativeTree(testDlg.IdentifyFromDialogId(1042)); Async async = new Async(); tree.EmulateSelectItem(tree.FindNode(0, 0), async); Assert.IsTrue(0 < MessageBoxUtility.CloseAll(testDlg, async)); }
public void TestEnsureVisible() { NativeTree tree = new NativeTree(testDlg.IdentifyFromDialogId(1041)); tree.EmulateExpand(tree.Nodes[1], true); IntPtr node = tree.FindNode(1, 99); RECT native = new RECT(); NativeMethods.GetWindowRect(tree.Handle, out native); Rectangle rect = new Rectangle(0, 0, native.Right - native.Left + 1, native.Bottom - native.Top + 1); Assert.IsFalse(rect.Contains(tree.GetItemRect(node, false))); Assert.IsTrue(tree.EnsureVisible(node)); Assert.IsTrue(rect.Contains(tree.GetItemRect(node, false))); }
public void TestSetGetItem() { NativeTree tree = new NativeTree(testDlg.IdentifyFromDialogId(1041)); TVITEMEX item = new TVITEMEX(); foreach (TVIF element in (TVIF[])Enum.GetValues(typeof(TVIF))) { item.mask |= element; } foreach (TVIS element in (TVIS[])Enum.GetValues(typeof(TVIS))) { item.stateMask |= element; } //アイテムのすべての情報が正常に取得できることを確認。 item.hItem = tree.Nodes[0]; tree.GetItem(item); Assert.AreEqual("0", item.pszText); Assert.AreEqual(0, item.iImage); Assert.AreEqual(4, item.iSelectedImage); Assert.AreEqual(1, item.cChildren); Assert.AreEqual(new IntPtr(100), item.lParam); Assert.AreEqual((TVIS)0, (item.state & TVIS.EXPANDED)); tree.EmulateExpand(item.hItem, true); tree.GetItem(item); Assert.AreEqual(TVIS.EXPANDED, (item.state & TVIS.EXPANDED)); item.hItem = tree.FindNode(0, 0); //iImageは上記では0確認であるため、念のため、値の入ったアイテムでもテスト。 tree.GetItem(item); Assert.AreEqual(1, item.iImage); //全ての情報情報を設定できることを確認。 item.hItem = tree.Nodes[0]; tree.GetItem(item);//もとに戻す用 TVITEMEX newItem = new TVITEMEX(); newItem.hItem = item.hItem; newItem.mask = item.mask; newItem.pszText = "xxx"; newItem.iImage = 1; newItem.iSelectedImage = 2; newItem.cChildren = 0; newItem.lParam = new IntPtr(200); newItem.stateMask = TVIS.SELECTED; newItem.state = TVIS.SELECTED; tree.EmulateChangeItem(newItem); TVITEMEX check = new TVITEMEX(); check.hItem = item.hItem; check.mask = item.mask; check.stateMask = item.stateMask; tree.GetItem(check); Assert.AreEqual("xxx", check.pszText); Assert.AreEqual(1, check.iImage); Assert.AreEqual(2, check.iSelectedImage); Assert.AreEqual(0, check.cChildren); Assert.AreEqual(new IntPtr(200), check.lParam); Assert.AreEqual(TVIS.SELECTED, check.state & TVIS.SELECTED); }
public void TestGetBrotherNodes() { NativeTree tree = new NativeTree(testDlg.IdentifyFromDialogId(1041)); AssertEx.AreEqual(tree.Nodes, tree.GetBrotherNodes(tree.Nodes[0])); IntPtr[] brother = tree.GetBrotherNodes(tree.FindNode(0, 0)); Assert.AreEqual("1", tree.GetItemText(brother[0])); Assert.AreEqual("2", tree.GetItemText(brother[1])); //途中から取得してもすべて列挙されること brother = tree.GetBrotherNodes(tree.FindNode(0, 1)); Assert.AreEqual("1", tree.GetItemText(brother[0])); Assert.AreEqual("2", tree.GetItemText(brother[1])); }
public void TestFindNode() { NativeTree tree = new NativeTree(testDlg.IdentifyFromDialogId(1041)); Assert.AreEqual("2", tree.GetItemText(tree.FindNode(0, 1))); Assert.AreEqual("1", tree.GetItemText(tree.FindNode("0", "1"))); }
public void TestSelectedItem() { NativeTree tree = new NativeTree(testDlg.IdentifyFromDialogId(1041)); tree.EmulateSelectItem(tree.FindNode(0, 1)); Assert.AreEqual("2", tree.GetItemText(tree.SelectedItem)); //非同期でも同様の効果があることの確認。 Async a = new Async(); tree.EmulateSelectItem(tree.FindNode(1, 0), a); while (!a.IsCompleted) { Thread.Sleep(10); } Assert.AreEqual("0", tree.GetItemText(tree.SelectedItem)); }