Index: Core/Common/src/Core.Common.Gui/Forms/MessageWindow/MessageWindow.cs =================================================================== diff -u -rd3799a1c82bea28251025ee283caffe44e27313a -r5a060f26da621886709a00b60b819f75e359eacb --- Core/Common/src/Core.Common.Gui/Forms/MessageWindow/MessageWindow.cs (.../MessageWindow.cs) (revision d3799a1c82bea28251025ee283caffe44e27313a) +++ Core/Common/src/Core.Common.Gui/Forms/MessageWindow/MessageWindow.cs (.../MessageWindow.cs) (revision 5a060f26da621886709a00b60b819f75e359eacb) @@ -281,14 +281,19 @@ private void MessagesDataGridViewCellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e) { - ShowMessageWindowDialog(); + if (e.Button == MouseButtons.Left && e.ColumnIndex > -1 && e.RowIndex > -1) + { + ShowMessageWindowDialog(); + } } private void MessagesDataGridViewKeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { ShowMessageWindowDialog(); + + e.Handled = true; } } Index: Core/Common/test/Core.Common.Gui.Test/Forms/MessageWindow/MessageWindowTest.cs =================================================================== diff -u -rf1925f854871661dec925e71bf3f7bb012dfc7ca -r5a060f26da621886709a00b60b819f75e359eacb --- Core/Common/test/Core.Common.Gui.Test/Forms/MessageWindow/MessageWindowTest.cs (.../MessageWindowTest.cs) (revision f1925f854871661dec925e71bf3f7bb012dfc7ca) +++ Core/Common/test/Core.Common.Gui.Test/Forms/MessageWindow/MessageWindowTest.cs (.../MessageWindowTest.cs) (revision 5a060f26da621886709a00b60b819f75e359eacb) @@ -156,8 +156,6 @@ }; messageWindow.AddMessage(Level.Warn, new DateTime(), detailedMessage); messageWindow.Refresh(); - var dataGridView = (DataGridView) new ControlTester("messagesDataGridView").TheObject; - dataGridView.CurrentCell = dataGridView.Rows[0].Cells[0]; var buttonTester = new ToolStripButtonTester("buttonShowDetails"); // Call @@ -191,9 +189,62 @@ } [Test] - public void ShowDetailsButton_MessageSelectedSelectedOnDoubleClick_ShowMessageWindowDialogWithDetails() + public void ShowDetailsButton_DoubleClickOnHeader_DoNotShowMessageWindowDialog() { // Setup + using (var form = new Form()) + using (GuiFormsMessageWindow.MessageWindow messageWindow = ShowMessageWindow(null)) + { + form.Controls.Add(messageWindow); + form.Show(); + + var gridView = new ControlTester("messagesDataGridView"); + messageWindow.AddMessage(Level.Warn, new DateTime(), "TestDetailedMessage"); + messageWindow.Refresh(); + + // Call + gridView.FireEvent("CellMouseDoubleClick", new DataGridViewCellMouseEventArgs( + -1, -1, 0, 0, + new MouseEventArgs(MouseButtons.Left, 2, 0, 0, 0))); + + // Assert + // No dialog window shown + } + } + + [Test] + [TestCase(MouseButtons.Middle)] + [TestCase(MouseButtons.None)] + [TestCase(MouseButtons.Right)] + [TestCase(MouseButtons.XButton1)] + [TestCase(MouseButtons.XButton2)] + public void ShowDetailsButton_MessageSelectedOnDoubleClickOtherThanLeft_DoNotShowMessageWindowDialog(MouseButtons mouseButton) + { + // Setup + using (var form = new Form()) + using (GuiFormsMessageWindow.MessageWindow messageWindow = ShowMessageWindow(null)) + { + form.Controls.Add(messageWindow); + form.Show(); + + var gridView = new ControlTester("messagesDataGridView"); + messageWindow.AddMessage(Level.Warn, new DateTime(), "TestDetailedMessage"); + messageWindow.Refresh(); + + // Call + gridView.FireEvent("CellMouseDoubleClick", new DataGridViewCellMouseEventArgs( + 0, 0, 0, 0, + new MouseEventArgs(mouseButton, 2, 0, 0, 0))); + + // Assert + // No dialog window shown + } + } + + [Test] + public void ShowDetailsButton_MessageSelectedOnDoubleClick_ShowMessageWindowDialogWithDetails() + { + // Setup var mocks = new MockRepository(); var dialogParent = mocks.Stub(); mocks.ReplayAll(); @@ -220,13 +271,11 @@ var gridView = new ControlTester("messagesDataGridView"); messageWindow.AddMessage(Level.Warn, new DateTime(), detailedMessage); messageWindow.Refresh(); - var dataGridView = (DataGridView) new ControlTester("messagesDataGridView").TheObject; - dataGridView.CurrentCell = dataGridView.Rows[0].Cells[0]; // Call gridView.FireEvent("CellMouseDoubleClick", new DataGridViewCellMouseEventArgs( 0, 0, 0, 0, - new MouseEventArgs(MouseButtons.Left, 1, 0, 0, 0))); + new MouseEventArgs(MouseButtons.Left, 2, 0, 0, 0))); // Assert Assert.AreEqual("Berichtdetails", dialogTitle); @@ -256,7 +305,7 @@ } [Test] - public void ShowDetailsButton_MessageSelectedSelectedOnEnterKeyDown_ShowMessageWindowDialogWithDetails() + public void ShowDetailsButton_MessageSelectedOnEnterKeyDown_ShowMessageWindowDialogWithDetails() { // Setup var mocks = new MockRepository(); @@ -285,8 +334,6 @@ var gridView = new ControlTester("messagesDataGridView"); messageWindow.AddMessage(Level.Warn, new DateTime(), detailedMessage); messageWindow.Refresh(); - var dataGridView = (DataGridView) new ControlTester("messagesDataGridView").TheObject; - dataGridView.CurrentCell = dataGridView.Rows[0].Cells[0]; // Call gridView.FireEvent("KeyDown", new KeyEventArgs(Keys.Enter)); @@ -311,7 +358,6 @@ messageWindow.AddMessage(Level.Warn, new DateTime(), "message"); messageWindow.Refresh(); var dataGridView = (DataGridView) new ControlTester("messagesDataGridView").TheObject; - dataGridView.CurrentCell = dataGridView.Rows[0].Cells[0]; var button = new ToolStripItemTester("buttonClearAll"); @@ -336,14 +382,12 @@ messageWindow.AddMessage(Level.Warn, new DateTime(), "message"); messageWindow.Refresh(); - var dataGridView = (DataGridView) new ControlTester("messagesDataGridView").TheObject; - dataGridView.CurrentCell = dataGridView.Rows[0].Cells[0]; var button = new ToolStripItemTester("buttonCopy"); // Call button.Click(); - + // Assert IDataObject actualDataObject = Clipboard.GetDataObject(); Assert.IsTrue(actualDataObject != null && actualDataObject.GetDataPresent(DataFormats.Text)); @@ -364,15 +408,14 @@ AddMessages(messageWindow); var dataGridView = (DataGridView) new ControlTester("messagesDataGridView").TheObject; - dataGridView.CurrentCell = dataGridView.Rows[0].Cells[0]; var button = new ToolStripButtonTester("buttonShowInfo"); // Call button.Click(); // Assert - Assert.IsFalse(((ToolStripButton)button.TheObject).Checked); + Assert.IsFalse(((ToolStripButton) button.TheObject).Checked); Assert.AreEqual(2, dataGridView.Rows.Count); var filteredLevel = Level.Info.ToString(); foreach (DataGridViewRow row in dataGridView.Rows) @@ -394,15 +437,13 @@ AddMessages(messageWindow); var dataGridView = (DataGridView) new ControlTester("messagesDataGridView").TheObject; - dataGridView.CurrentCell = dataGridView.Rows[0].Cells[0]; - var button = new ToolStripButtonTester("buttonShowWarning"); // Call button.Click(); // Assert - Assert.IsFalse(((ToolStripButton)button.TheObject).Checked); + Assert.IsFalse(((ToolStripButton) button.TheObject).Checked); Assert.AreEqual(2, dataGridView.Rows.Count); var filteredLevel = Level.Warn.ToString(); foreach (DataGridViewRow row in dataGridView.Rows) @@ -424,15 +465,13 @@ AddMessages(messageWindow); var dataGridView = (DataGridView) new ControlTester("messagesDataGridView").TheObject; - dataGridView.CurrentCell = dataGridView.Rows[0].Cells[0]; - var button = new ToolStripButtonTester("buttonShowError"); // Call button.Click(); // Assert - Assert.IsFalse(((ToolStripButton)button.TheObject).Checked); + Assert.IsFalse(((ToolStripButton) button.TheObject).Checked); Assert.AreEqual(2, dataGridView.Rows.Count); var filteredLevel = Level.Error.ToString(); foreach (DataGridViewRow row in dataGridView.Rows) Index: Core/Common/test/Core.Common.Gui.Test/GuiCoreTest.cs =================================================================== diff -u -r4c653ca26b45ca9141158597fd548fb052dbe0df -r5a060f26da621886709a00b60b819f75e359eacb --- Core/Common/test/Core.Common.Gui.Test/GuiCoreTest.cs (.../GuiCoreTest.cs) (revision 4c653ca26b45ca9141158597fd548fb052dbe0df) +++ Core/Common/test/Core.Common.Gui.Test/GuiCoreTest.cs (.../GuiCoreTest.cs) (revision 5a060f26da621886709a00b60b819f75e359eacb) @@ -159,7 +159,7 @@ [Test] [STAThread] [ExpectedException(typeof(InvalidOperationException))] - public void Constructor_ConstuctedAfterAnotherInstanceHasBeenCreated_ThrowsInvalidOperationException() + public void Constructor_ConstructedAfterAnotherInstanceHasBeenCreated_ThrowsInvalidOperationException() { // Setup var mocks = new MockRepository();