// OpenTween - Client of Twitter // Copyright (c) 2015 kim_upsilon (@kim_upsilon) // All rights reserved. // // This file is part of OpenTween. // // This program is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by the Free // Software Foundation; either version 3 of the License, or (at your option) // any later version. // // This program is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License // for more details. // // You should have received a copy of the GNU General Public License along // with this program. If not, see , or write to // the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, // Boston, MA 02110-1301, USA. using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Xunit; namespace OpenTween { public class OTBaseFormTest { private class TestForm : OTBaseForm { } public OTBaseFormTest() => this.SetupSynchronizationContext(); protected void SetupSynchronizationContext() => WindowsFormsSynchronizationContext.AutoInstall = false; [Fact] public async Task InvokeAsync_Test() { using (var form = new TestForm()) { await Task.Run(async () => { await form.InvokeAsync(() => form.Text = "hoge"); }); Assert.Equal("hoge", form.Text); } } [Fact] public async Task InvokeAsync_ReturnValueTest() { using (var form = new TestForm()) { form.Text = "hoge"; await Task.Run(async () => { var ret = await form.InvokeAsync(() => form.Text); Assert.Equal("hoge", ret); }); } } [Fact] public async Task InvokeAsync_TaskTest() { using (var form = new TestForm()) { await Task.Run(async () => { await form.InvokeAsync(async () => { await Task.Delay(1); form.Text = "hoge"; }); }); Assert.Equal("hoge", form.Text); } } [Fact] public async Task InvokeAsync_TaskWithValueTest() { using (var form = new TestForm()) { form.Text = "hoge"; await Task.Run(async () => { var ret = await form.InvokeAsync(async () => { await Task.Delay(1); return form.Text; }); Assert.Equal("hoge", ret); }); } } [Fact] public void ScaleChildControl_ListViewTest() { using (var listview = new ListView { Width = 200, Height = 200 }) { listview.Columns.AddRange(new[] { new ColumnHeader { Width = 60 }, new ColumnHeader { Width = 140 }, }); OTBaseForm.ScaleChildControl(listview, new SizeF(1.25f, 1.25f)); Assert.Equal(75, listview.Columns[0].Width); Assert.Equal(175, listview.Columns[1].Width); } } [Fact] public void ScaleChildControl_VScrollBarTest() { using (var scrollBar = new VScrollBar { Width = 20, Height = 200 }) { OTBaseForm.ScaleChildControl(scrollBar, new SizeF(2.0f, 2.0f)); Assert.Equal(40, scrollBar.Width); } } } }