From 6e77e9d3f25373309fd0af1a20928b9cbf45f9f6 Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Wed, 5 Aug 2009 20:47:10 +0200 Subject: [PATCH] Add testcase for floating windows, add sleep to 01-tile.t --- testcases/Makefile | 2 +- testcases/t/01-tile.t | 3 ++ testcases/t/04-floating.t | 63 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 testcases/t/04-floating.t diff --git a/testcases/Makefile b/testcases/Makefile index 60fdd8e4..45cc1800 100644 --- a/testcases/Makefile +++ b/testcases/Makefile @@ -1,4 +1,4 @@ test: - PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, '/home/michael/xcb-perl/X11-XCB/lib/', '/home/michael/xcb-perl/X11-XCB/blib/lib', '/home/michael/xcb-perl/X11-XCB/blib/arch')" t/*.t + PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(1, '/home/michael//X11-XCB/lib/', '/home/michael//X11-XCB/blib/lib', '/home/michael//X11-XCB/blib/arch', '/home/michael/X11-XCB/X11-XCB-XS/lib', '/home/michael/X11-XCB/X11-XCB-XS/blib/arch')" t/*.t all: test diff --git a/testcases/t/01-tile.t b/testcases/t/01-tile.t index 10beb320..297446ca 100644 --- a/testcases/t/01-tile.t +++ b/testcases/t/01-tile.t @@ -4,6 +4,7 @@ use Test::More tests => 4; use Test::Deep; use X11::XCB qw(:all); use Data::Dumper; +use Time::HiRes qw(sleep); BEGIN { use_ok('X11::XCB::Window'); @@ -27,6 +28,8 @@ is_deeply($window->rect, $original_rect, "rect unmodified before mapping"); $window->create; $window->map; +sleep(0.25); + my $new_rect = $window->rect; ok(!eq_deeply($new_rect, $original_rect), "Window got repositioned"); diff --git a/testcases/t/04-floating.t b/testcases/t/04-floating.t new file mode 100644 index 00000000..87680c69 --- /dev/null +++ b/testcases/t/04-floating.t @@ -0,0 +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); + +BEGIN { + use_ok('X11::XCB::Window'); +} + +X11::XCB::Connection->connect(':0'); + +# 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( + class => WINDOW_CLASS_INPUT_OUTPUT, + rect => $original_rect, + background_color => 12632256, + type => 'utility', +); + +isa_ok($window, 'X11::XCB::Window'); + +$window->create; +$window->map; + +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($absolute->{x} != 0 && $absolute->{y} != 0, "i3 did not map it to (0x0)"); + +$original_rect = X11::XCB::Rect->new(x => 1, y => 1, width => 80, height => 90); + +$window = X11::XCB::Window->new( + class => WINDOW_CLASS_INPUT_OUTPUT, + rect => $original_rect, + background_color => 12632256, + type => 'utility', +); + +isa_ok($window, 'X11::XCB::Window'); + +$window->create; +$window->map; + +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"); + +ok($top->{x} == 1 && $top->{y} == 1, "i3 mapped it to (1,1)"); + +diag( "Testing i3, Perl $], $^X" );