]> git.sur5r.net Git - i3/i3/blobdiff - testcases/t/04-floating.t
Merge branch 'tree' into next
[i3/i3] / testcases / t / 04-floating.t
index d910d9741bbb400b3e132b8be518ccce879e1a05..d4aea8280771652a6173adc08a0274a2494cbaa2 100644 (file)
@@ -1,70 +1,63 @@
 #!perl
 # vim:ts=4:sw=4:expandtab
 
-use Test::More tests => 9;
-use Test::Deep;
-use X11::XCB qw(:all);
-use Data::Dumper;
-use Time::HiRes qw(sleep);
-use FindBin;
-use lib "$FindBin::Bin/lib";
 use i3test;
+use X11::XCB qw(:all);
 
 BEGIN {
     use_ok('X11::XCB::Window');
 }
 
-X11::XCB::Connection->connect(':0');
+my $x = X11::XCB::Connection->new;
 
 # Create a floating window which is smaller than the minimum enforced size of i3
-my $original_rect = X11::XCB::Rect->new(x => 0, y => 0, width => 30, height => 30);
-
-my $window = X11::XCB::Window->new(
+my $window = $x->root->create_child(
     class => WINDOW_CLASS_INPUT_OUTPUT,
-    rect => $original_rect,
-    background_color => 12632256,
-    type => 'utility',
+    rect => [ 0, 0, 30, 30],
+    background_color => '#C0C0C0',
+    # replace the type with 'utility' as soon as the coercion works again in X11::XCB
+    window_type => $x->atom(name => '_NET_WM_WINDOW_TYPE_UTILITY'),
 );
 
 isa_ok($window, 'X11::XCB::Window');
 
-$window->create;
 $window->map;
 
-sleep(0.25);
+sleep 0.25;
 
 my ($absolute, $top) = $window->rect;
 
-ok($absolute->{width} >= 75, "i3 raised the width to 75");
-ok($absolute->{height} >= 50, "i3 raised the height to 50");
+ok($window->mapped, 'Window is mapped');
+cmp_ok($absolute->{width}, '>=', 75, 'i3 raised the width to 75');
+cmp_ok($absolute->{height}, '>=', 50, 'i3 raised the height to 50');
 
-ok($absolute->{x} != 0 && $absolute->{y} != 0, "i3 did not map it to (0x0)");
+ok($absolute->{x} != 0 && $absolute->{y} != 0, 'i3 did not map it to (0x0)');
 
 $window->unmap;
 
-$original_rect = X11::XCB::Rect->new(x => 1, y => 1, width => 80, height => 90);
-
-$window = X11::XCB::Window->new(
+$window = $x->root->create_child(
     class => WINDOW_CLASS_INPUT_OUTPUT,
-    rect => $original_rect,
-    background_color => 12632256,
-    type => 'utility',
+    rect => [ 1, 1, 80, 90],
+    background_color => '#C0C0C0',
+    window_type => $x->atom(name => '_NET_WM_WINDOW_TYPE_UTILITY'),
 );
 
 isa_ok($window, 'X11::XCB::Window');
 
-$window->create;
 $window->map;
 
-sleep(0.25);
+sleep 0.25;
 
 ($absolute, $top) = $window->rect;
 
-ok($absolute->{width} == 80, "i3 let the width at 80");
-ok($absolute->{height} == 90, "i3 let the height at 90");
+cmp_ok($absolute->{width}, '==', 80, "i3 let the width at 80");
+cmp_ok($absolute->{height}, '==', 92, "i3 let the height at 90");
 
-ok($top->{x} == 1 && $top->{y} == 1, "i3 mapped it to (1,1)");
+# We need to compare the position with decorations due to the way
+# we do decoration rendering (on the parent frame) in the tree branch
+cmp_ok($top->{x}, '==', 1, 'i3 mapped it to x=1');
+cmp_ok($top->{y}, '==', 19, 'i3 mapped it to y=18');
 
 $window->unmap;
 
-diag( "Testing i3, Perl $], $^X" );
+done_testing;