public void TestConstructor()
 {
     //WindowControlから作成。
     int itemCount = (NativeMethods.IsWindowUnicode(testDlg.Handle)) ? 4 : 3;
     {
         NativeTab tab = new NativeTab(testDlg.IdentifyFromDialogId(1022));
         Assert.AreEqual(itemCount, tab.ItemCount);
     }
     //ハンドルから作成。
     {
         NativeTab tab = new NativeTab(app, testDlg.IdentifyFromDialogId(1022).Handle);
         Assert.AreEqual(itemCount, tab.ItemCount);
     }
 }
 public void TestItemText()
 {
     NativeTab tab = new NativeTab(testDlg.IdentifyFromDialogId(1022));
     Assert.AreEqual("a", tab.GetItemText(0));
     Assert.AreEqual("あ", tab.GetItemText(1));
     if (NativeMethods.IsWindowUnicode(testDlg.Handle))
     {
         Assert.AreEqual("𩸽", tab.GetItemText(3));
     }
 }
 public void TestItemCount()
 {
     NativeTab tab = new NativeTab(testDlg.IdentifyFromDialogId(1022));
     Assert.AreEqual(NativeMethods.IsWindowUnicode(testDlg.Handle) ? 4 : 3, tab.ItemCount);
 }
 public void TestSelectedItemIndexEventAsync()
 {
     NativeTab tab = new NativeTab(testDlg.IdentifyFromDialogId(1023));
     Async async = new Async();
     tab.EmulateSelectItem(1, async);
     Assert.IsTrue(0 < MessageBoxUtility.CloseAll(testDlg, async));
 }
        public void TestSelectedItemIndexEvent()
        {
            NativeTab tab = new NativeTab(testDlg.IdentifyFromDialogId(1022));
            Assert.IsTrue(EventChecker.IsSameTestEvent(testDlg,
                delegate { tab.EmulateSelectItem(1); },
                new CodeInfo(1022, NativeMethods.WM_NOTIFY, TCN_SELCHANGING),
                new CodeInfo(1022, NativeMethods.WM_NOTIFY, TCN_SELCHANGE)));

            //同じインデックスの場合はイベントは発生しない。
            Assert.IsTrue(EventChecker.IsSameTestEvent(testDlg,
                delegate { tab.EmulateSelectItem(1); }));
        }
        public void TestSelectedItemIndexValue()
        {
            NativeTab tab = new NativeTab(testDlg.IdentifyFromDialogId(1022));
            tab.EmulateSelectItem(2);
            Assert.AreEqual(2, tab.SelectedItemIndex);

            //非同期でも同様の効果があることを確認
            Async a = new Async();
            tab.EmulateSelectItem(1, a);
            while (!a.IsCompleted)
            {
                Thread.Sleep(10);
            }
            Assert.AreEqual(1, tab.SelectedItemIndex);
        }
        public void TestGetItem()
        {
            NativeTab tab = new NativeTab(testDlg.IdentifyFromDialogId(1022));

            TCITEM item = new TCITEM();
            item.mask = (TCIF.TEXT | TCIF.IMAGE | TCIF.PARAM | TCIF.STATE);
            item.dwStateMask = (TCIS.BUTTONPRESSED | TCIS.HIGHLIGHTED);

            tab.GetItem(0, item);
            Assert.AreEqual("a", item.pszText);
            Assert.AreEqual(0, item.iImage);
            Assert.AreEqual(new IntPtr(10), item.lParam);
            Assert.AreEqual(TCIS.BUTTONPRESSED, item.dwState);
            tab.GetItem(1, item);
            Assert.AreEqual("あ", item.pszText);
            Assert.AreEqual(1, item.iImage);
            Assert.AreEqual(new IntPtr(11), item.lParam);
            Assert.AreEqual((TCIS)0, item.dwState);
        }
 public void TestGetItemData()
 {
     NativeTab tab = new NativeTab(testDlg.IdentifyFromDialogId(1022));
     Assert.AreEqual(new IntPtr(10), tab.GetItemData(0));
 }
 public void TestGetItemTextOver256()
 {
     NativeTab tab = new NativeTab(testDlg.IdentifyFromDialogId(1022));
     StringBuilder overText = new StringBuilder();
     for (int i = 0; i < 259; i++)
     {
         overText.Append("a");
     }
     Assert.AreEqual(overText.ToString(), tab.GetItemText(2));
 }