}
[Fact]
+ public void AddTab_Test()
+ {
+ var list = new ListElement { };
+ var ret = this.tabinfo.AddTab("MyTab", MyCommon.TabUsageType.Lists, list);
+
+ Assert.True(ret);
+
+ var lastTab = this.tabinfo.Tabs.Values.Last();
+ Assert.Equal("MyTab", lastTab.TabName);
+ Assert.Equal(MyCommon.TabUsageType.Lists, lastTab.TabType);
+ Assert.Same(list, lastTab.ListInfo);
+ }
+
+ [Fact]
+ public void AddTab_DuplicateTest()
+ {
+ var ret = this.tabinfo.AddTab("Recent", MyCommon.TabUsageType.UserDefined, null);
+
+ Assert.False(ret);
+ }
+
+ [Fact]
public void MakeTabName_Test()
{
var baseTabName = "NewTab";
{
this.tabinfo.MuteUserIds = new HashSet<long> { };
- this.tabinfo.AddTab("Mute", MyCommon.TabUsageType.Mute, null);
- var muteTab = this.tabinfo.Tabs["Mute"];
+ var muteTab = new TabClass("Mute", MyCommon.TabUsageType.Mute);
muteTab.AddFilter(new PostFilterRule
{
FilterName = "foo",
MoveMatches = true,
});
+ this.tabinfo.AddTab(muteTab);
var post = new PostClass
{
{
this.tabinfo.MuteUserIds = new HashSet<long> { };
- this.tabinfo.AddTab("Mute", MyCommon.TabUsageType.Mute, null);
- var muteTab = this.tabinfo.Tabs["Mute"];
+ var muteTab = new TabClass("Mute", MyCommon.TabUsageType.Mute);
muteTab.AddFilter(new PostFilterRule
{
FilterName = "foo",
MoveMatches = true,
});
+ this.tabinfo.AddTab(muteTab);
// ミュートタブによるミュートはリプライも対象とする
var post = new PostClass
[Fact]
public void SetReadAllTab_MarkAsReadTest()
{
- this.tabinfo.AddTab("search1", MyCommon.TabUsageType.PublicSearch, null);
- this.tabinfo.AddTab("search2", MyCommon.TabUsageType.PublicSearch, null);
+ var tab1 = new TabClass("search1", MyCommon.TabUsageType.PublicSearch);
+ var tab2 = new TabClass("search2", MyCommon.TabUsageType.PublicSearch);
- var tab1 = this.tabinfo.Tabs["search1"];
- var tab2 = this.tabinfo.Tabs["search2"];
+ this.tabinfo.AddTab(tab1);
+ this.tabinfo.AddTab(tab2);
// search1 に追加するツイート (StatusId: 100, 150, 200; すべて未読)
tab1.UnreadManage = true;
[Fact]
public void SetReadAllTab_MarkAsUnreadTest()
{
- this.tabinfo.AddTab("search1", MyCommon.TabUsageType.PublicSearch, null);
- this.tabinfo.AddTab("search2", MyCommon.TabUsageType.PublicSearch, null);
+ var tab1 = new TabClass("search1", MyCommon.TabUsageType.PublicSearch);
+ var tab2 = new TabClass("search2", MyCommon.TabUsageType.PublicSearch);
- var tab1 = this.tabinfo.Tabs["search1"];
- var tab2 = this.tabinfo.Tabs["search2"];
+ this.tabinfo.AddTab(tab1);
+ this.tabinfo.AddTab(tab2);
// search1 に追加するツイート (StatusId: 100, 150, 200; すべて既読)
tab1.UnreadManage = true;
{
var homeTab = this.tabinfo.GetTabByType(MyCommon.TabUsageType.Home);
- this.tabinfo.AddTab("MyTab1", MyCommon.TabUsageType.UserDefined, null);
- var myTab1 = this.tabinfo.Tabs["MyTab1"];
+ var myTab1 = new TabClass("MyTab1", MyCommon.TabUsageType.UserDefined);
+ this.tabinfo.AddTab(myTab1);
var filter = new PostFilterRule
{
{
var homeTab = this.tabinfo.GetTabByType(MyCommon.TabUsageType.Home);
- this.tabinfo.AddTab("MyTab1", MyCommon.TabUsageType.UserDefined, null);
- var myTab1 = this.tabinfo.Tabs["MyTab1"];
+ var myTab1 = new TabClass("MyTab1", MyCommon.TabUsageType.UserDefined);
+ this.tabinfo.AddTab(myTab1);
var filter = new PostFilterRule
{
{
var homeTab = this.tabinfo.GetTabByType(MyCommon.TabUsageType.Home);
- this.tabinfo.AddTab("MyTab1", MyCommon.TabUsageType.UserDefined, null);
- var myTab1 = this.tabinfo.Tabs["MyTab1"];
+ var myTab1 = new TabClass("MyTab1", MyCommon.TabUsageType.UserDefined);
+ this.tabinfo.AddTab(myTab1);
var filter = new PostFilterRule
{
{
var homeTab = this.tabinfo.GetTabByType(MyCommon.TabUsageType.Home);
- this.tabinfo.AddTab("MyTab1", MyCommon.TabUsageType.UserDefined, null);
- this.tabinfo.AddTab("MyTab2", MyCommon.TabUsageType.UserDefined, null);
- var myTab1 = this.tabinfo.Tabs["MyTab1"];
- var myTab2 = this.tabinfo.Tabs["MyTab2"];
+ var myTab1 = new TabClass("MyTab1", MyCommon.TabUsageType.UserDefined);
+ var myTab2 = new TabClass("MyTab2", MyCommon.TabUsageType.UserDefined);
+ this.tabinfo.AddTab(myTab1);
+ this.tabinfo.AddTab(myTab2);
var filter1 = new PostFilterRule
{
}
public bool AddTab(string TabName, MyCommon.TabUsageType TabType, ListElement List)
+ => this.AddTab(new TabClass(TabName, TabType, List));
+
+ public bool AddTab(TabClass tab)
{
- if (_tabs.ContainsKey(TabName)) return false;
- var tb = new TabClass(TabName, TabType, List);
- _tabs.Add(TabName, tb);
- tb.SetSortMode(this.SortMode, this.SortOrder);
+ if (this._tabs.ContainsKey(tab.TabName))
+ return false;
+
+ this._tabs.Add(tab.TabName, tab);
+ tab.SetSortMode(this.SortMode, this.SortOrder);
+
return true;
}
_listInfo = null;
}
+ public TabClass(string name, MyCommon.TabUsageType type) : this(name, type, list: null)
+ {
+ }
+
public TabClass(string TabName, MyCommon.TabUsageType TabType, ListElement list) : this()
{
this.TabName = TabName;
tabName += "_";
}
//タブ追加
- _statuses.AddTab(tabName, MyCommon.TabUsageType.UserTimeline, null);
- var tab = this._statuses.Tabs[tabName];
+ var tab = new TabClass(tabName, MyCommon.TabUsageType.UserTimeline);
+ this._statuses.AddTab(tab);
tab.User = user;
AddNewTab(tabName, false, MyCommon.TabUsageType.UserTimeline);
//追加したタブをアクティブに
MessageBox.Show(this, ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
+ var resultTab = new TabClass(tabName, MyCommon.TabUsageType.SearchResults);
this.AddNewTab(tabName, false, MyCommon.TabUsageType.SearchResults);
- this._statuses.AddTab(tabName, MyCommon.TabUsageType.SearchResults, null);
+ this._statuses.AddTab(resultTab);
var targetTab = this._statuses.Tabs[this._curTab.Text];
}
var foundPosts = foundIndices.Select(x => targetTab[x]);
-
- var resultTab = this._statuses.Tabs[tabName];
foreach (var post in foundPosts)
{
resultTab.AddPostToInnerStorage(post);
{
tabName = this._statuses.MakeTabName("Related Tweets");
- this.AddNewTab(tabName, false, MyCommon.TabUsageType.Related);
- this._statuses.AddTab(tabName, MyCommon.TabUsageType.Related, null);
-
- tabRelated = this._statuses.GetTabByType(MyCommon.TabUsageType.Related);
+ tabRelated = new TabClass(tabName, MyCommon.TabUsageType.Related);
tabRelated.UnreadManage = false;
tabRelated.Notify = false;
+
+ this.AddNewTab(tabName, false, MyCommon.TabUsageType.Related);
+ this._statuses.AddTab(tabRelated);
}
else
{