diff --git a/test/test_gui.py b/test/test_gui.py
index 8f7f3989c9771bfba36901d6d9767a625aa73e1a..f0b582d3779618702a81d0b81fa66511508c7dc4 100644
--- a/test/test_gui.py
+++ b/test/test_gui.py
@@ -1,3 +1,6 @@
+from qtpy import QtCore
+
+
 import pytest
 
 try:
@@ -35,7 +38,6 @@ def test_flip(qtbot, datadir):
     assert not dragbutton.is_flipped()
     dragbutton._flip()
     assert dragbutton.is_flipped()
-
     widget.exit_app()
 
 
@@ -52,3 +54,51 @@ def test_sfg_invalidated_by_remove_of_operation(qtbot, datadir):
     assert ops_before_remove -1 == len(widget.operationDragDict)
 
     widget.exit_app()
+
+
+def test_select_operation(qtbot, datadir):
+    widget = GUI.MainWindow()
+    qtbot.addWidget(widget)
+    widget._load_from_file(datadir.join('twotapfir.py'))
+    sfg = widget.sfg_dict['twotapfir']
+    op = sfg.find_by_name("cmul2")[0]
+    dragbutton = widget.operationDragDict[op]
+    assert not dragbutton.pressed
+    assert not widget.pressed_operations
+
+    # Click
+    qtbot.mouseClick(dragbutton, QtCore.Qt.MouseButton.LeftButton)
+    assert dragbutton.pressed
+    assert len(widget.pressed_operations) == 1
+
+    # Click again, should unselect
+    qtbot.mouseClick(dragbutton, QtCore.Qt.MouseButton.LeftButton)
+    # Currently failing
+    # assert not dragbutton.pressed
+    # assert not widget.pressed_operations
+
+    # Select another operation
+    op2 = sfg.find_by_name("add1")[0]
+    dragbutton2 = widget.operationDragDict[op2]
+    assert not dragbutton2.pressed
+
+    # Click
+    qtbot.mouseClick(dragbutton2, QtCore.Qt.MouseButton.LeftButton)
+    assert dragbutton2.pressed
+    # Unselect previous
+    assert not dragbutton.pressed
+    assert len(widget.pressed_operations) == 1
+
+    # Control-click first
+    qtbot.mouseClick(dragbutton, QtCore.Qt.MouseButton.LeftButton, QtCore.Qt.KeyboardModifier.ControlModifier)
+    assert dragbutton2.pressed
+    assert dragbutton.pressed
+    assert len(widget.pressed_operations) == 2
+
+    # Control-click second
+    qtbot.mouseClick(dragbutton2, QtCore.Qt.MouseButton.LeftButton, QtCore.Qt.KeyboardModifier.ControlModifier)
+    assert not dragbutton2.pressed
+    assert dragbutton.pressed
+    assert len(widget.pressed_operations) == 1
+
+    widget.exit_app()
diff --git a/test/test_gui/twotapfir.py b/test/test_gui/twotapfir.py
index 97d76c3298ebbfba998dca6da9b21de73678cbe1..15660359fa8c83dca20a12e79c0b9af6c9c9dcca 100644
--- a/test/test_gui/twotapfir.py
+++ b/test/test_gui/twotapfir.py
@@ -14,7 +14,7 @@ out1 = Output(name="")
 # Operations:
 t1 = Delay(initial_value=0, name="")
 cmul1 = ConstantMultiplication(value=0.5, name="cmul2", latency_offsets={'in0': None, 'out0': None})
-add1 = Addition(name="", latency_offsets={'in0': None, 'in1': None, 'out0': None})
+add1 = Addition(name="add1", latency_offsets={'in0': None, 'in1': None, 'out0': None})
 cmul2 = ConstantMultiplication(value=0.5, name="cmul", latency_offsets={'in0': None, 'out0': None})
 
 # Signals: