]> git.sur5r.net Git - i3/i3/blobdiff - testcases/t/199-ipc-mode-event.t
resize set: accept 'width' and 'height' keywords
[i3/i3] / testcases / t / 199-ipc-mode-event.t
index 43f7b1783f80b977e86ba92e6909030177cbaa6e..0e4f89600c47b39686609e6456e2bd652bd48a18 100644 (file)
@@ -2,22 +2,20 @@
 # vim:ts=4:sw=4:expandtab
 #
 # Please read the following documents before working on tests:
-# • http://build.i3wm.org/docs/testsuite.html
+# • https://build.i3wm.org/docs/testsuite.html
 #   (or docs/testsuite)
 #
-# • http://build.i3wm.org/docs/lib-i3test.html
+# • https://build.i3wm.org/docs/lib-i3test.html
 #   (alternatively: perldoc ./testcases/lib/i3test.pm)
 #
-# • http://build.i3wm.org/docs/ipc.html
+# • https://build.i3wm.org/docs/ipc.html
 #   (or docs/ipc)
 #
 # • http://onyxneon.com/books/modern_perl/modern_perl_a4.pdf
 #   (unless you are already familiar with Perl)
 #
 # Verifies that the IPC 'mode' event is sent when modes are changed.
-use i3test i3_autostart => 0;
-
-my $config = <<EOT;
+use i3test i3_config => <<EOT;
 # i3 config file (v4)
 font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
 
@@ -30,28 +28,11 @@ mode "with spaces" {
 }
 EOT
 
-my $pid = launch_with_config($config);
-
-my $i3 = i3(get_socket_path(0));
-$i3->connect->recv;
-
-my $cv = AnyEvent->condvar;
-
-$i3->subscribe({
-    mode => sub {
-        my ($event) = @_;
-        $cv->send($event->{change} eq 'm1');
-    }
-})->recv;
-
-cmd 'mode "m1"';
-
-# Timeout after 0.5s
-my $t;
-$t = AnyEvent->timer(after => 0.5, cb => sub { $cv->send(0); });
-
-ok($cv->recv, 'Mode event received');
+my @events = events_for(
+    sub { cmd 'mode "m1"' },
+    'mode');
 
-exit_gracefully($pid);
+my @changes = map { $_->{change} } @events;
+is_deeply(\@changes, [ 'm1' ], 'Mode event received');
 
 done_testing;