testcases: remove assumption from state atoms test

Remove the assumption that only two atoms can possibly be set in
t/253-multiple-net-wm-state-atoms.t so that the tests will pass when
more atoms are supported that may be set during this test.
This commit is contained in:
Tony Crisci 2016-07-24 20:43:09 -04:00 committed by Orestis Floros
parent 965ef8d33f
commit 9cd4b53231
1 changed files with 14 additions and 7 deletions

View File

@ -36,7 +36,7 @@ sub get_wm_state {
return undef if $len == 0; return undef if $len == 0;
my @atoms = unpack("L$len", $reply->{value}); my @atoms = unpack("L$len", $reply->{value});
return \@atoms; return @atoms;
} }
my $wm_state_sticky = $x->atom(name => '_NET_WM_STATE_STICKY')->id; my $wm_state_sticky = $x->atom(name => '_NET_WM_STATE_STICKY')->id;
@ -51,18 +51,24 @@ my $wm_state_fullscreen = $x->atom(name => '_NET_WM_STATE_FULLSCREEN')->id;
fresh_workspace; fresh_workspace;
my $window = open_window; my $window = open_window;
cmd 'sticky enable'; cmd 'sticky enable';
is_deeply(get_wm_state($window), [ $wm_state_sticky ], 'sanity check: _NET_WM_STATE_STICKY is set'); my @state = get_wm_state($window);
ok((scalar grep { $_ == $wm_state_sticky } @state) > 0, 'sanity check: _NET_WM_STATE_STICKY is set');
cmd 'fullscreen enable'; cmd 'fullscreen enable';
is_deeply(get_wm_state($window), [ $wm_state_sticky, $wm_state_fullscreen ], @state = get_wm_state($window);
'both _NET_WM_STATE_FULLSCREEN and _NET_WM_STATE_STICKY are set'); ok((scalar grep { $_ == $wm_state_sticky } @state) > 0, '_NET_WM_STATE_STICKY is set');
ok((scalar grep { $_ == $wm_state_fullscreen } @state) > 0, '_NET_WM_STATE_FULLSCREEN is set');
cmd 'sticky disable'; cmd 'sticky disable';
is_deeply(get_wm_state($window), [ $wm_state_fullscreen ], 'only _NET_WM_STATE_FULLSCREEN is set'); @state = get_wm_state($window);
ok((scalar grep { $_ == $wm_state_sticky } @state) == 0, '_NET_WM_STATE_STICKY is not set');
ok((scalar grep { $_ == $wm_state_fullscreen } @state) > 0, '_NET_WM_STATE_FULLSCREEN is set');
cmd 'sticky enable'; cmd 'sticky enable';
cmd 'fullscreen disable'; cmd 'fullscreen disable';
is_deeply(get_wm_state($window), [ $wm_state_sticky ], 'only _NET_WM_STATE_STICKY is set'); @state = get_wm_state($window);
ok((scalar grep { $_ == $wm_state_sticky } @state) > 0, '_NET_WM_STATE_STICKY is set');
ok((scalar grep { $_ == $wm_state_fullscreen } @state) == 0, '_NET_WM_STATE_FULLSCREEN is not set');
############################################################################### ###############################################################################
# _NET_WM_STATE is removed when the window is withdrawn. # _NET_WM_STATE is removed when the window is withdrawn.
@ -71,7 +77,8 @@ is_deeply(get_wm_state($window), [ $wm_state_sticky ], 'only _NET_WM_STATE_STICK
fresh_workspace; fresh_workspace;
$window = open_window; $window = open_window;
cmd 'sticky enable'; cmd 'sticky enable';
is_deeply(get_wm_state($window), [ $wm_state_sticky ], 'sanity check: _NET_WM_STATE_STICKY is set'); @state = get_wm_state($window);
ok((scalar grep { $_ == $wm_state_sticky } @state) > 0, '_NET_WM_STATE_STICKY is set');
$window->unmap; $window->unmap;
wait_for_unmap($window); wait_for_unmap($window);