--- /dev/null
+// OpenTween - Client of Twitter
+// Copyright (c) 2024 kim_upsilon (@kim_upsilon) <https://upsilo.net/~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 <http://www.gnu.org/licenses/>, or write to
+// the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+using Xunit;
+
+namespace OpenTween
+{
+ public class ListElementTest
+ {
+ [Fact]
+ public void ToString_PublicTest()
+ {
+ var list = new ListElement
+ {
+ Id = 12345L,
+ Name = "tetete",
+ Username = "opentween",
+ IsPublic = true,
+ };
+ Assert.Equal("@opentween/tetete [Public]", list.ToString());
+ }
+
+ [Fact]
+ public void ToString_ProtectedTest()
+ {
+ var list = new ListElement
+ {
+ Id = 12345L,
+ Name = "tetete",
+ Username = "opentween",
+ IsPublic = false,
+ };
+ Assert.Equal("@opentween/tetete [Protected]", list.ToString());
+ }
+ }
+}
using OpenTween.Api.DataModel;
using OpenTween.Connection;
using OpenTween.Models;
+using OpenTween.OpenTweenCustomControl;
using OpenTween.Setting;
using OpenTween.Thumbnail;
using Xunit;
public class TweenMainTest
{
private record TestContext(
- SettingManager Settings
+ SettingManager Settings,
+ TabInformations TabInfo
);
private void UsingTweenMain(Action<TweenMain, TestContext> func)
var thumbnailGenerator = new ThumbnailGenerator(new(autoupdate: false));
using var tweenMain = new TweenMain(settings, tabinfo, twitter, imageCache, iconAssets, thumbnailGenerator);
- var context = new TestContext(settings);
+ var context = new TestContext(settings, tabinfo);
func(tweenMain, context);
}
=> this.UsingTweenMain((_, _) => { });
[WinFormsFact]
+ public void AddNewTab_FilterTabTest()
+ {
+ this.UsingTweenMain((tweenMain, context) =>
+ {
+ Assert.Equal(4, tweenMain.ListTab.TabPages.Count);
+
+ var tab = new FilterTabModel("hoge");
+ context.TabInfo.AddTab(tab);
+ tweenMain.AddNewTab(tab, startup: false);
+
+ Assert.Equal(5, tweenMain.ListTab.TabPages.Count);
+
+ var tabPage = tweenMain.ListTab.TabPages[4];
+ Assert.Equal("hoge", tabPage.Text);
+ Assert.Single(tabPage.Controls);
+ Assert.IsType<DetailsListView>(tabPage.Controls[0]);
+ });
+ }
+
+ [WinFormsFact]
+ public void AddNewTab_UserTimelineTabTest()
+ {
+ this.UsingTweenMain((tweenMain, context) =>
+ {
+ Assert.Equal(4, tweenMain.ListTab.TabPages.Count);
+
+ var tab = new UserTimelineTabModel("hoge", "twitterapi");
+ context.TabInfo.AddTab(tab);
+ tweenMain.AddNewTab(tab, startup: false);
+
+ Assert.Equal(5, tweenMain.ListTab.TabPages.Count);
+
+ var tabPage = tweenMain.ListTab.TabPages[4];
+ Assert.Equal("hoge", tabPage.Text);
+ Assert.Equal(2, tabPage.Controls.Count);
+ Assert.IsType<DetailsListView>(tabPage.Controls[0]);
+
+ var label = Assert.IsType<Label>(tabPage.Controls[1]);
+ Assert.Equal("twitterapi's Timeline", label.Text);
+ });
+ }
+
+ [WinFormsFact]
+ public void AddNewTab_ListTimelineTabTest()
+ {
+ this.UsingTweenMain((tweenMain, context) =>
+ {
+ Assert.Equal(4, tweenMain.ListTab.TabPages.Count);
+
+ var list = new ListElement
+ {
+ Id = 12345L,
+ Name = "tetete",
+ Username = "opentween",
+ IsPublic = false,
+ };
+ var tab = new ListTimelineTabModel("hoge", list);
+ context.TabInfo.AddTab(tab);
+ tweenMain.AddNewTab(tab, startup: false);
+
+ Assert.Equal(5, tweenMain.ListTab.TabPages.Count);
+
+ var tabPage = tweenMain.ListTab.TabPages[4];
+ Assert.Equal("hoge", tabPage.Text);
+ Assert.Equal(2, tabPage.Controls.Count);
+ Assert.IsType<DetailsListView>(tabPage.Controls[0]);
+
+ var label = Assert.IsType<Label>(tabPage.Controls[1]);
+ Assert.Equal("@opentween/tetete [Protected]", label.Text);
+ });
+ }
+
+ [WinFormsFact]
+ public void AddNewTab_PublicSearchTabTest()
+ {
+ this.UsingTweenMain((tweenMain, context) =>
+ {
+ Assert.Equal(4, tweenMain.ListTab.TabPages.Count);
+
+ var tab = new PublicSearchTabModel("hoge")
+ {
+ SearchWords = "#OpenTween",
+ SearchLang = "ja",
+ };
+ context.TabInfo.AddTab(tab);
+ tweenMain.AddNewTab(tab, startup: false);
+
+ Assert.Equal(5, tweenMain.ListTab.TabPages.Count);
+
+ var tabPage = tweenMain.ListTab.TabPages[4];
+ Assert.Equal("hoge", tabPage.Text);
+ Assert.Equal(2, tabPage.Controls.Count);
+ Assert.IsType<DetailsListView>(tabPage.Controls[0]);
+
+ var panel = Assert.IsType<Panel>(tabPage.Controls[1]);
+ Assert.Equal(4, panel.Controls.Count);
+
+ var comboSearchWord = Assert.IsType<ComboBox>(panel.Controls[0]);
+ Assert.Equal("#OpenTween", comboSearchWord.Text);
+
+ var comboSearchLang = Assert.IsType<ComboBox>(panel.Controls[1]);
+ Assert.Equal("ja", comboSearchLang.Text);
+
+ Assert.IsType<Button>(panel.Controls[2]);
+ Assert.IsType<Label>(panel.Controls[3]);
+ });
+ }
+
+ [WinFormsFact]
public void FormatStatusText_NewLineTest()
{
this.UsingTweenMain((tweenMain, _) =>