diff options
Diffstat (limited to 'testcases/t/238-ipc-binding-event.t')
-rw-r--r-- | testcases/t/238-ipc-binding-event.t | 25 |
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); } |