2 # vim:ts=4:sw=4:expandtab
4 # Verifies the 'focus output' command works properly.
7 use List::Util qw(first);
9 my $tmp = fresh_workspace;
10 my $i3 = i3(get_socket_path());
12 ################################################################################
13 # use 'focus output' and verify that focus gets changed appropriately
14 ################################################################################
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};
23 is(focused_output, 'xinerama-0', 'focus on first output');
25 cmd 'focus output right';
26 is(focused_output, 'xinerama-1', 'focus on second output');
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');
32 cmd 'focus output left';
33 is(focused_output, 'xinerama-1', 'focus back on second output');
35 cmd 'focus output left';
36 is(focused_output, 'xinerama-0', 'focus on first output again');
38 cmd 'focus output up';
39 is(focused_output, 'xinerama-0', 'focus still on first output');
41 cmd 'focus output down';
42 is(focused_output, 'xinerama-0', 'focus still on first output');
44 cmd 'focus output xinerama-1';
45 is(focused_output, 'xinerama-1', 'focus on second output');
47 cmd 'focus output xinerama-0';
48 is(focused_output, 'xinerama-0', 'focus on first output');