1 // OpenTween - Client of Twitter
2 // Copyright (c) 2015 kim_upsilon (@kim_upsilon) <https://upsilo.net/~upsilon/>
3 // All rights reserved.
5 // This file is part of OpenTween.
7 // This program is free software; you can redistribute it and/or modify it
8 // under the terms of the GNU General Public License as published by the Free
9 // Software Foundation; either version 3 of the License, or (at your option)
12 // This program is distributed in the hope that it will be useful, but
13 // WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
17 // You should have received a copy of the GNU General Public License along
18 // with this program. If not, see <http://www.gnu.org/licenses/>, or write to
19 // the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
20 // Boston, MA 02110-1301, USA.
23 using System.Collections.Generic;
27 using System.Threading.Tasks;
28 using System.Windows.Forms;
33 public class OTBaseFormTest
35 private class TestForm : OTBaseForm
39 public OTBaseFormTest()
40 => this.SetupSynchronizationContext();
42 protected void SetupSynchronizationContext()
43 => WindowsFormsSynchronizationContext.AutoInstall = false;
46 public async Task InvokeAsync_Test()
48 using var form = new TestForm();
49 await Task.Run(async () =>
51 await form.InvokeAsync(() => form.Text = "hoge");
54 Assert.Equal("hoge", form.Text);
58 public async Task InvokeAsync_ReturnValueTest()
60 using var form = new TestForm();
63 await Task.Run(async () =>
65 var ret = await form.InvokeAsync(() => form.Text);
66 Assert.Equal("hoge", ret);
71 public async Task InvokeAsync_TaskTest()
73 using var form = new TestForm();
74 await Task.Run(async () =>
76 await form.InvokeAsync(async () =>
83 Assert.Equal("hoge", form.Text);
87 public async Task InvokeAsync_TaskWithValueTest()
89 using var form = new TestForm();
92 await Task.Run(async () =>
94 var ret = await form.InvokeAsync(async () =>
100 Assert.Equal("hoge", ret);
105 public void ScaleChildControl_ListViewTest()
107 using var listview = new ListView { Width = 200, Height = 200 };
108 listview.Columns.AddRange(new[]
110 new ColumnHeader { Width = 60 },
111 new ColumnHeader { Width = 140 },
114 OTBaseForm.ScaleChildControl(listview, new SizeF(1.25f, 1.25f));
116 Assert.Equal(75, listview.Columns[0].Width);
117 Assert.Equal(175, listview.Columns[1].Width);
121 public void ScaleChildControl_VScrollBarTest()
123 using var scrollBar = new VScrollBar { Width = 20, Height = 200 };
124 OTBaseForm.ScaleChildControl(scrollBar, new SizeF(2.0f, 2.0f));
126 Assert.Equal(40, scrollBar.Width);
130 public void ScaleChildControl_ImageListTest()
132 using var imageList = new ImageList() { ImageSize = new(16, 16) };
133 OTBaseForm.ScaleChildControl(imageList, new SizeF(2.0f, 2.0f));
135 Assert.Equal(new(32, 32), imageList.ImageSize);
139 public void ScaleBy_SizeTest()
141 var factor = new SizeF(2.0f, 2.0f);
142 Assert.Equal(new(32, 32), OTBaseForm.ScaleBy(factor, new(16, 16)));
146 public void ScaleBy_IntegerTest()
149 Assert.Equal(32, OTBaseForm.ScaleBy(factor, 16));