]> git.sur5r.net Git - i3/i3/blob - testcases/t/502-focus-output.t
Merge branch 'master' into next
[i3/i3] / testcases / t / 502-focus-output.t
1 #!perl
2 # vim:ts=4:sw=4:expandtab
3 #
4 # Verifies the 'focus output' command works properly.
5
6 use i3test;
7 use List::Util qw(first);
8
9 my $tmp = fresh_workspace;
10 my $i3 = i3(get_socket_path());
11
12 ################################################################################
13 # use 'focus output' and verify that focus gets changed appropriately
14 ################################################################################
15
16 sub focused_output {
17     my $tree = $i3->get_tree->recv;
18     my $focused = $tree->{focus}->[0];
19     my $output = first { $_->{id} == $focused } @{$tree->{nodes}};
20     return $output->{name};
21 }
22
23 is(focused_output, 'xinerama-0', 'focus on first output');
24
25 cmd 'focus output right';
26 is(focused_output, 'xinerama-1', 'focus on second output');
27
28 # focus should wrap when we focus to the right again.
29 cmd 'focus output right';
30 is(focused_output, 'xinerama-0', 'focus on first output again');
31
32 cmd 'focus output left';
33 is(focused_output, 'xinerama-1', 'focus back on second output');
34
35 cmd 'focus output left';
36 is(focused_output, 'xinerama-0', 'focus on first output again');
37
38 cmd 'focus output up';
39 is(focused_output, 'xinerama-0', 'focus still on first output');
40
41 cmd 'focus output down';
42 is(focused_output, 'xinerama-0', 'focus still on first output');
43
44 cmd 'focus output xinerama-1';
45 is(focused_output, 'xinerama-1', 'focus on second output');
46
47 cmd 'focus output xinerama-0';
48 is(focused_output, 'xinerama-0', 'focus on first output');
49
50 done_testing;