aboutsummaryrefslogtreecommitdiff
path: root/testcases/t/238-ipc-binding-event.t
diff options
context:
space:
mode:
Diffstat (limited to 'testcases/t/238-ipc-binding-event.t')
-rw-r--r--testcases/t/238-ipc-binding-event.t25
1 files changed, 24 insertions, 1 deletions
diff --git a/testcases/t/238-ipc-binding-event.t b/testcases/t/238-ipc-binding-event.t
index bec95a23..6916593d 100644
--- a/testcases/t/238-ipc-binding-event.t
+++ b/testcases/t/238-ipc-binding-event.t
@@ -16,6 +16,7 @@
#
# Test that the binding event works properly
# Ticket: #1210
+# Ticket: #5323
use i3test i3_autostart => 0;
my $keysym = 't';
@@ -28,6 +29,12 @@ my $config = <<EOT;
font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
bindsym $binding_symbol $command
+
+bindsym m mode some-mode
+mode some-mode {
+ bindsym a nop
+ bindsym b mode default
+}
EOT
SKIP: {
@@ -46,12 +53,13 @@ SKIP: {
qx(xdotool key $binding_symbol);
},
'binding');
-
is(scalar @events, 1, 'Received 1 event');
is($events[0]->{change}, 'run',
'the `change` field should indicate this binding has run');
+ is($events[0]->{mode}, 'default', 'the `mode` field should be "default"');
+
ok($events[0]->{binding},
'the `binding` field should be a hash that contains information about the binding');
@@ -69,6 +77,21 @@ SKIP: {
is($events[0]->{binding}->{input_code}, 0,
'the input_code should be the specified code if the key was bound with bindcode, and otherwise zero');
+ # Test that the mode field is correct
+ # See #5323.
+ @events = events_for(
+ sub {
+ qx(xdotool key m);
+ qx(xdotool key a);
+ qx(xdotool key b);
+ },
+ 'binding');
+ is(scalar @events, 3, 'Received 3 events');
+
+ is($events[0]->{mode}, 'default', 'Event for binding to enter new mode is atributed to default mode');
+ is($events[1]->{mode}, 'some-mode', 'Event for binding while in mode is attributed to the non-default mode');
+ is($events[2]->{mode}, 'some-mode', 'Event for binding exiting mode is attributed to the non-default mode');
+
exit_gracefully($pid);
}