public void GaugeHeightTest() { using (var toolStrip = new ToolStripAPIGauge()) { toolStrip.AutoSize = false; toolStrip.Size = new Size(100, 10); MyCommon.TwitterApiInfo.AccessLimit["endpoint"] = new ApiLimit(15, 15, DateTime.MaxValue); toolStrip.ApiEndpoint = "endpoint"; toolStrip.GaugeHeight = 5; Assert.Equal(new Rectangle(0, 0, 100, 5), toolStrip.apiGaugeBounds); Assert.Equal(new Rectangle(0, 5, 100, 5), toolStrip.timeGaugeBounds); toolStrip.GaugeHeight = 3; Assert.Equal(new Rectangle(0, 2, 100, 3), toolStrip.apiGaugeBounds); Assert.Equal(new Rectangle(0, 5, 100, 3), toolStrip.timeGaugeBounds); toolStrip.GaugeHeight = 0; Assert.Equal(Rectangle.Empty, toolStrip.apiGaugeBounds); Assert.Equal(Rectangle.Empty, toolStrip.timeGaugeBounds); MyCommon.TwitterApiInfo.AccessLimit.Clear(); } }
public void GaugeHeightTest() { using (var toolStrip = new ToolStripAPIGauge()) { toolStrip.AutoSize = false; toolStrip.Size = new Size(100, 10); MyCommon.TwitterApiInfo.AccessLimit["endpoint"] = new ApiLimit(15, 15, DateTimeUtc.MaxValue); toolStrip.ApiEndpoint = "endpoint"; toolStrip.GaugeHeight = 5; Assert.Equal(new Rectangle(0, 0, 100, 5), toolStrip.apiGaugeBounds); Assert.Equal(new Rectangle(0, 5, 100, 5), toolStrip.timeGaugeBounds); toolStrip.GaugeHeight = 3; Assert.Equal(new Rectangle(0, 2, 100, 3), toolStrip.apiGaugeBounds); Assert.Equal(new Rectangle(0, 5, 100, 3), toolStrip.timeGaugeBounds); toolStrip.GaugeHeight = 0; Assert.Equal(Rectangle.Empty, toolStrip.apiGaugeBounds); Assert.Equal(Rectangle.Empty, toolStrip.timeGaugeBounds); MyCommon.TwitterApiInfo.AccessLimit.Clear(); } }
public void TextTest() { using (var toolStrip = new ToolStripAPIGauge()) { MyCommon.TwitterApiInfo.AccessLimit["/statuses/home_timeline"] = new ApiLimit(15, 15, DateTimeUtc.Now + TimeSpan.FromMinutes(15)); MyCommon.TwitterApiInfo.AccessLimit["/statuses/user_timeline"] = new ApiLimit(180, 18, DateTimeUtc.Now + TimeSpan.FromMinutes(-2)); MyCommon.TwitterApiInfo.AccessLimit["/search/tweets"] = new ApiLimit(180, 90, DateTimeUtc.Now + TimeSpan.FromMinutes(5)); // toolStrip.ApiEndpoint の初期値は null Assert.Equal("API ???/???", toolStrip.Text); Assert.Equal("API rest unknown ???/???" + Environment.NewLine + "(reset after ??? minutes)", toolStrip.ToolTipText); toolStrip.ApiEndpoint = "/search/tweets"; Assert.Equal("API 90/180", toolStrip.Text); Assert.Equal("API rest /search/tweets 90/180" + Environment.NewLine + "(reset after 5 minutes)", toolStrip.ToolTipText); toolStrip.ApiEndpoint = "/statuses/user_timeline"; Assert.Equal("API ???/???", toolStrip.Text); Assert.Equal("API rest /statuses/user_timeline ???/???" + Environment.NewLine + "(reset after ??? minutes)", toolStrip.ToolTipText); MyCommon.TwitterApiInfo.AccessLimit["/statuses/user_timeline"] = new ApiLimit(180, 180, DateTimeUtc.Now + TimeSpan.FromMinutes(15)); toolStrip.ApiEndpoint = "/statuses/user_timeline"; Assert.Equal("API 180/180", toolStrip.Text); Assert.Equal("API rest /statuses/user_timeline 180/180" + Environment.NewLine + "(reset after 15 minutes)", toolStrip.ToolTipText); MyCommon.TwitterApiInfo.AccessLimit["/statuses/user_timeline"] = new ApiLimit(180, 179, DateTimeUtc.Now + TimeSpan.FromMinutes(15)); toolStrip.ApiEndpoint = "/statuses/user_timeline"; Assert.Equal("API 179/180", toolStrip.Text); Assert.Equal("API rest /statuses/user_timeline 179/180" + Environment.NewLine + "(reset after 15 minutes)", toolStrip.ToolTipText); toolStrip.ApiEndpoint = "hoge"; Assert.Equal("API ???/???", toolStrip.Text); Assert.Equal("API rest hoge ???/???" + Environment.NewLine + "(reset after ??? minutes)", toolStrip.ToolTipText); toolStrip.ApiEndpoint = ""; Assert.Equal("API ???/???", toolStrip.Text); Assert.Equal("API rest unknown ???/???" + Environment.NewLine + "(reset after ??? minutes)", toolStrip.ToolTipText); MyCommon.TwitterApiInfo.AccessLimit.Clear(); } }
public void API11EnabledTest() { using (var toolStrip = new ToolStripAPIGauge()) { // toolStrip.API11Enabled の初期値は true Assert.That(toolStrip.Text, Is.EqualTo("API v1.1 ???/???")); toolStrip.API11Enabled = false; Assert.That(toolStrip.Text, Is.EqualTo("API v1 ???/???")); toolStrip.API11Enabled = true; Assert.That(toolStrip.Text, Is.EqualTo("API v1.1 ???/???")); } }
public void TextTest() { using (var toolStrip = new ToolStripAPIGauge()) { // toolStrip.ApiLimit の初期値は null Assert.Equal("API ???/???", toolStrip.Text); Assert.Equal("API rest ???/???" + Environment.NewLine + "(reset after ??? minutes)", toolStrip.ToolTipText); toolStrip.ApiLimit = new ApiLimit(15, 14, DateTime.Now.AddMinutes(15)); Assert.Equal("API 14/15", toolStrip.Text); Assert.Equal("API rest 14/15" + Environment.NewLine + "(reset after 15 minutes)", toolStrip.ToolTipText); toolStrip.ApiLimit = null; Assert.Equal("API ???/???", toolStrip.Text); Assert.Equal("API rest ???/???" + Environment.NewLine + "(reset after ??? minutes)", toolStrip.ToolTipText); } }
public void TextTest() { using (var toolStrip = new ToolStripAPIGauge()) { // toolStrip.ApiLimit の初期値は null Assert.That(toolStrip.Text, Is.EqualTo("API v1.1 ???/???")); Assert.That(toolStrip.ToolTipText, Is.EqualTo("API rest ???/???" + Environment.NewLine + "(reset after ??? minutes)")); toolStrip.ApiLimit = new ApiLimit(15, 14, DateTime.Now.AddMinutes(15)); Assert.That(toolStrip.Text, Is.EqualTo("API v1.1 14/15")); Assert.That(toolStrip.ToolTipText, Is.EqualTo("API rest 14/15" + Environment.NewLine + "(reset after 15 minutes)")); toolStrip.ApiLimit = null; Assert.That(toolStrip.Text, Is.EqualTo("API v1.1 ???/???")); Assert.That(toolStrip.ToolTipText, Is.EqualTo("API rest ???/???" + Environment.NewLine + "(reset after ??? minutes)")); } }
public void ApiEndpointTest() { using (var toolStrip = new ToolStripAPIGauge()) { MyCommon.TwitterApiInfo.AccessLimit["endpoint1"] = new ApiLimit(15, 15, Clock.Now.AddMinutes(15)); MyCommon.TwitterApiInfo.AccessLimit["endpoint2"] = new ApiLimit(180, 18, Clock.Now.AddMinutes(5)); // toolStrip.ApiEndpoint の初期値は null Assert.Equal(null, toolStrip.ApiEndpoint); Assert.Equal(null, toolStrip.ApiLimit); toolStrip.ApiEndpoint = "endpoint1"; Assert.Equal("endpoint1", toolStrip.ApiEndpoint); Assert.Equal(new ApiLimit(15, 15, Clock.Now.AddMinutes(15)), toolStrip.ApiLimit); toolStrip.ApiEndpoint = "endpoint2"; Assert.Equal("endpoint2", toolStrip.ApiEndpoint); Assert.Equal(new ApiLimit(180, 18, Clock.Now.AddMinutes(5)), toolStrip.ApiLimit); MyCommon.TwitterApiInfo.AccessLimit["endpoint2"] = new ApiLimit(180, 17, Clock.Now.AddMinutes(5)); toolStrip.ApiEndpoint = "endpoint2"; Assert.Equal("endpoint2", toolStrip.ApiEndpoint); Assert.Equal(new ApiLimit(180, 17, Clock.Now.AddMinutes(5)), toolStrip.ApiLimit); toolStrip.ApiEndpoint = "hoge"; Assert.Equal("hoge", toolStrip.ApiEndpoint); Assert.Equal(null, toolStrip.ApiLimit); toolStrip.ApiEndpoint = ""; Assert.Equal(null, toolStrip.ApiEndpoint); Assert.Equal(null, toolStrip.ApiLimit); MyCommon.TwitterApiInfo.AccessLimit.Clear(); } }
public void GaugeHeightTest() { using (var toolStrip = new ToolStripAPIGauge()) { toolStrip.AutoSize = false; toolStrip.Size = new Size(100, 10); toolStrip.ApiLimit = new ApiLimit(150, 150, DateTime.MaxValue); toolStrip.GaugeHeight = 5; Assert.That(toolStrip.apiGaugeBounds, Is.EqualTo(new Rectangle(0, 0, 100, 5))); Assert.That(toolStrip.timeGaugeBounds, Is.EqualTo(new Rectangle(0, 5, 100, 5))); toolStrip.GaugeHeight = 3; Assert.That(toolStrip.apiGaugeBounds, Is.EqualTo(new Rectangle(0, 2, 100, 3))); Assert.That(toolStrip.timeGaugeBounds, Is.EqualTo(new Rectangle(0, 5, 100, 3))); toolStrip.GaugeHeight = 0; Assert.That(toolStrip.apiGaugeBounds, Is.EqualTo(Rectangle.Empty)); Assert.That(toolStrip.timeGaugeBounds, Is.EqualTo(Rectangle.Empty)); } }
public TweenMain() { _hookGlobalHotkey = new HookGlobalHotkey(this); // この呼び出しは、Windows フォーム デザイナで必要です。 InitializeComponent(); // InitializeComponent() 呼び出しの後で初期化を追加します。 this.SettingDialog.IntervalChanged += this.TimerInterval_Changed; this.TimerTimeline.Elapsed += this.TimerTimeline_Elapsed; this._hookGlobalHotkey.HotkeyPressed += _hookGlobalHotkey_HotkeyPressed; this.gh.NotifyClicked += GrowlHelper_Callback; // メイリオフォント指定時にタブの最小幅が広くなる問題の対策 this.ListTab.HandleCreated += (s, e) => Win32Api.SetMinTabWidth((TabControl)s, 40); this._apiGauge = new ToolStripAPIGauge(); this._apiGauge.ForeColor = Color.Black; this.StatusStrip1.Items.Insert(2, this._apiGauge); this.ReplaceAppName(); }
public TweenMain() { _hookGlobalHotkey = new HookGlobalHotkey(this); // この呼び出しは、Windows フォーム デザイナで必要です。 InitializeComponent(); // InitializeComponent() 呼び出しの後で初期化を追加します。 this.SettingDialog.IntervalChanged += this.TimerInterval_Changed; this.TimerTimeline.Elapsed += this.TimerTimeline_Elapsed; this._hookGlobalHotkey.HotkeyPressed += _hookGlobalHotkey_HotkeyPressed; this.gh.NotifyClicked += GrowlHelper_Callback; // メイリオフォント指定時にタブの最小幅が広くなる問題の対策 this.ListTab.HandleCreated += (s, e) => NativeMethods.SetMinTabWidth((TabControl)s, 40); this._apiGauge = new ToolStripAPIGauge(); this._apiGauge.BorderSides = ToolStripStatusLabelBorderSides.Right; this.StatusStrip1.Items.Insert(2, this._apiGauge); this.ImageSelector.Visible = false; this.ImageSelector.Enabled = false; this.ImageSelector.FilePickDialog = OpenFileDialog1; this.ReplaceAppName(); }
public TweenMain() { _hookGlobalHotkey = new HookGlobalHotkey(this); // この呼び出しは、Windows フォーム デザイナで必要です。 InitializeComponent(); // InitializeComponent() 呼び出しの後で初期化を追加します。 this.SettingDialog.IntervalChanged += this.TimerInterval_Changed; this.TimerTimeline.Elapsed += this.TimerTimeline_Elapsed; this._hookGlobalHotkey.HotkeyPressed += _hookGlobalHotkey_HotkeyPressed; this.gh.NotifyClicked += GrowlHelper_Callback; this._apiGauge = new ToolStripAPIGauge(); this.StatusStrip1.Items.Insert(2, this._apiGauge); this.ReplaceAppName(); }
public void TextTest() { using (var toolStrip = new ToolStripAPIGauge()) { // toolStrip.ApiLimit の初期値は null Assert.That(toolStrip.Text, Is.EqualTo("API ???/???")); Assert.That(toolStrip.ToolTipText, Is.EqualTo("API rest ???/???" + Environment.NewLine + "(reset after ??? minutes)")); toolStrip.ApiLimit = new ApiLimit(150, 100, DateTime.Now.AddMinutes(10)); Assert.That(toolStrip.Text, Is.EqualTo("API 100/150")); Assert.That(toolStrip.ToolTipText, Is.EqualTo("API rest 100/150" + Environment.NewLine + "(reset after 10 minutes)")); toolStrip.ApiLimit = null; Assert.That(toolStrip.Text, Is.EqualTo("API ???/???")); Assert.That(toolStrip.ToolTipText, Is.EqualTo("API rest ???/???" + Environment.NewLine + "(reset after ??? minutes)")); } }
public void TextTest() { using (var toolStrip = new ToolStripAPIGauge()) { MyCommon.TwitterApiInfo.AccessLimit["/statuses/home_timeline"] = new ApiLimit(15, 15, DateTime.Now.AddMinutes(15)); MyCommon.TwitterApiInfo.AccessLimit["/statuses/user_timeline"] = new ApiLimit(180, 18, DateTime.Now.AddMinutes(-2)); MyCommon.TwitterApiInfo.AccessLimit["/search/tweets"] = new ApiLimit(180, 90, DateTime.Now.AddMinutes(5)); // toolStrip.ApiEndpoint の初期値は null Assert.Equal("API ???/???", toolStrip.Text); Assert.Equal("API rest unknown ???/???" + Environment.NewLine + "(reset after ??? minutes)", toolStrip.ToolTipText); toolStrip.ApiEndpoint = "/search/tweets"; Assert.Equal("API 90/180", toolStrip.Text); Assert.Equal("API rest /search/tweets 90/180" + Environment.NewLine + "(reset after 5 minutes)", toolStrip.ToolTipText); toolStrip.ApiEndpoint = "/statuses/user_timeline"; Assert.Equal("API ???/???", toolStrip.Text); Assert.Equal("API rest /statuses/user_timeline ???/???" + Environment.NewLine + "(reset after ??? minutes)", toolStrip.ToolTipText); MyCommon.TwitterApiInfo.AccessLimit["/statuses/user_timeline"] = new ApiLimit(180, 180, DateTime.Now.AddMinutes(15)); toolStrip.ApiEndpoint = "/statuses/user_timeline"; Assert.Equal("API 180/180", toolStrip.Text); Assert.Equal("API rest /statuses/user_timeline 180/180" + Environment.NewLine + "(reset after 15 minutes)", toolStrip.ToolTipText); MyCommon.TwitterApiInfo.AccessLimit["/statuses/user_timeline"] = new ApiLimit(180, 179, DateTime.Now.AddMinutes(15)); toolStrip.ApiEndpoint = "/statuses/user_timeline"; Assert.Equal("API 179/180", toolStrip.Text); Assert.Equal("API rest /statuses/user_timeline 179/180" + Environment.NewLine + "(reset after 15 minutes)", toolStrip.ToolTipText); toolStrip.ApiEndpoint = "hoge"; Assert.Equal("API ???/???", toolStrip.Text); Assert.Equal("API rest hoge ???/???" + Environment.NewLine + "(reset after ??? minutes)", toolStrip.ToolTipText); toolStrip.ApiEndpoint = ""; Assert.Equal("API ???/???", toolStrip.Text); Assert.Equal("API rest unknown ???/???" + Environment.NewLine + "(reset after ??? minutes)", toolStrip.ToolTipText); MyCommon.TwitterApiInfo.AccessLimit.Clear(); } }
public TweenMain() { _hookGlobalHotkey = new HookGlobalHotkey(this); // この呼び出しは、Windows フォーム デザイナで必要です。 InitializeComponent(); // InitializeComponent() 呼び出しの後で初期化を追加します。 this.SettingDialog.IntervalChanged += this.TimerInterval_Changed; this.TimerTimeline.Elapsed += this.TimerTimeline_Elapsed; this._hookGlobalHotkey.HotkeyPressed += _hookGlobalHotkey_HotkeyPressed; this.gh.NotifyClicked += GrowlHelper_Callback; this._apiGauge = new ToolStripAPIGauge(); this._apiGauge.Click += (s, e) => { var api11Enabled = !HttpTwitter.API11Enabled; HttpTwitter.API11Enabled = api11Enabled; (s as ToolStripAPIGauge).API11Enabled = api11Enabled; if (api11Enabled) MyCommon.TwitterApiInfo11.Reset(); else MyCommon.TwitterApiInfo.Reset(); }; this.StatusStrip1.Items.Insert(2, this._apiGauge); this.ReplaceAppName(); }
public TweenMain() { _hookGlobalHotkey = new HookGlobalHotkey(this); // この呼び出しは、Windows フォーム デザイナで必要です。 InitializeComponent(); // InitializeComponent() 呼び出しの後で初期化を追加します。 this.SettingDialog.IntervalChanged += this.TimerInterval_Changed; this.TimerTimeline.Elapsed += this.TimerTimeline_Elapsed; this._hookGlobalHotkey.HotkeyPressed += _hookGlobalHotkey_HotkeyPressed; this.gh.NotifyClicked += GrowlHelper_Callback; // メイリオフォント指定時にタブの最小幅が広くなる問題の対策 this.ListTab.HandleCreated += (s, e) => NativeMethods.SetMinTabWidth((TabControl)s, 40); // IE10/11 がインストールされた環境で WebBrowser コントロールを ToolStripContainer コントロール内に配置すると // ダブルクリックでの単語選択ができなくなる問題の回避策 // InitializeComponent() での初期化が終わってから、PostBrowserPanel を挟んで PostBrowser を追加する // // 詳細: // Windows.Forms.WebBrowser on UserControl with IE 10 Installed Breaks Double-Click Text Select // https://connect.microsoft.com/VisualStudio/feedback/details/792884/windows-forms-webbrowser-on-usercontrol-with-ie-10-installed-breaks-double-click-text-select this.PostBrowserPanel.Dock = DockStyle.Fill; this.PostBrowserPanel.Controls.Add(this.PostBrowser); this.TableLayoutPanel1.Controls.Add(this.PostBrowserPanel, 1, 1); this.TableLayoutPanel1.SetColumnSpan(this.PostBrowserPanel, 3); this._apiGauge = new ToolStripAPIGauge(); this._apiGauge.BorderSides = ToolStripStatusLabelBorderSides.Right; this.StatusStrip1.Items.Insert(2, this._apiGauge); this.ImageSelector.Visible = false; this.ImageSelector.Enabled = false; this.ImageSelector.FilePickDialog = OpenFileDialog1; this.ReplaceAppName(); }