]> git.sur5r.net Git - i3/i3/blob - testcases/t/265-ipc-mark.t
tests: replace http:// with https:// where appropriate
[i3/i3] / testcases / t / 265-ipc-mark.t
1 #!perl
2 # vim:ts=4:sw=4:expandtab
3 #
4 # Please read the following documents before working on tests:
5 # • https://build.i3wm.org/docs/testsuite.html
6 #   (or docs/testsuite)
7 #
8 # • https://build.i3wm.org/docs/lib-i3test.html
9 #   (alternatively: perldoc ./testcases/lib/i3test.pm)
10 #
11 # • https://build.i3wm.org/docs/ipc.html
12 #   (or docs/ipc)
13 #
14 # • http://onyxneon.com/books/modern_perl/modern_perl_a4.pdf
15 #   (unless you are already familiar with Perl)
16 #
17 # Tests for the window::mark IPC event.
18 # Ticket: #2501
19 use i3test;
20
21 my ($i3, $timer, $event, $mark);
22
23 $i3 = i3(get_socket_path());
24 $i3->connect()->recv;
25
26 $i3->subscribe({
27     window => sub {
28         my ($event) = @_;
29         return unless defined $mark;
30         return unless $event->{change} eq 'mark';
31
32         $mark->send($event);
33     }
34 })->recv;
35
36 $timer = AnyEvent->timer(
37     after => 0.5,
38     cb => sub {
39         $mark->send(0);
40     }
41 );
42
43 ###############################################################################
44 # Marking a container triggers a 'mark' event.
45 ###############################################################################
46 fresh_workspace;
47 open_window;
48
49 $mark = AnyEvent->condvar;
50 cmd 'mark x';
51
52 $event = $mark->recv;
53 ok($event, 'window::mark event has been received');
54
55 ###############################################################################
56 # Unmarking a container triggers a 'mark' event.
57 ###############################################################################
58 fresh_workspace;
59 open_window;
60 cmd 'mark x';
61
62 $mark = AnyEvent->condvar;
63 cmd 'unmark x';
64
65 $event = $mark->recv;
66 ok($event, 'window::mark event has been received');
67
68 ###############################################################################
69
70 done_testing;