]> git.sur5r.net Git - i3/i3/blob - testcases/t/150-regress-dock-restart.t
Merge branch 'master' into next
[i3/i3] / testcases / t / 150-regress-dock-restart.t
1 #!perl
2 # vim:ts=4:sw=4:expandtab
3 #
4 # Regression test for inplace restarting with dock clients
5 #
6 use i3test;
7
8 my $tmp = fresh_workspace;
9
10 #####################################################################
11 # verify that there is no dock window yet
12 #####################################################################
13
14 # Children of all dockareas
15 my @docked = get_dock_clients;
16
17 is(@docked, 0, 'no dock clients yet');
18
19 # open a dock client
20
21 my $window = open_window({
22         background_color => '#FF0000',
23         window_type => $x->atom(name => '_NET_WM_WINDOW_TYPE_DOCK'),
24     });
25
26 #####################################################################
27 # check that we can find it in the layout tree at the expected position
28 #####################################################################
29
30 @docked = get_dock_clients;
31 is(@docked, 1, 'one dock client found');
32
33 # verify the height
34 my $docknode = $docked[0];
35
36 is($docknode->{rect}->{height}, 30, 'dock node has unchanged height');
37
38 # perform an inplace-restart
39 cmd 'restart';
40
41 sleep 0.25;
42
43 does_i3_live;
44
45
46 #####################################################################
47 # check that we can still find the dock client
48 #####################################################################
49
50 @docked = get_dock_clients;
51 is(@docked, 1, 'one dock client found');
52 $docknode = $docked[0];
53
54 is($docknode->{rect}->{height}, 30, 'dock node has unchanged height after restart');
55
56 $window->destroy;
57
58 wait_for_unmap $window;
59
60 @docked = get_dock_clients;
61 is(@docked, 0, 'no dock clients found');
62
63 #####################################################################
64 # create a dock client with a 1px border
65 #####################################################################
66
67 $window = open_window({
68         border => 1,
69         rect => [ 0, 0, 30, 20 ],
70         background_color => '#00FF00',
71         window_type => $x->atom(name => '_NET_WM_WINDOW_TYPE_DOCK'),
72     });
73
74 @docked = get_dock_clients;
75 is(@docked, 1, 'one dock client found');
76 $docknode = $docked[0];
77
78 is($docknode->{rect}->{height}, 20, 'dock node has unchanged height');
79
80 cmd 'restart';
81 sleep 0.25;
82
83 @docked = get_dock_clients;
84 is(@docked, 1, 'one dock client found');
85 $docknode = $docked[0];
86
87 is($docknode->{rect}->{height}, 20, 'dock node has unchanged height');
88
89
90 done_testing;