test:
- PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(1)" -It/lib t/22*
+ PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(1)" -It/lib t/*.t
all: test
#!perl
# vim:ts=4:sw=4:expandtab
-use i3test tests => 3;
+use i3test tests => 2;
use X11::XCB qw(:all);
use Time::HiRes qw(sleep);
my $x = X11::XCB::Connection->new;
-my $i3 = i3;
+my $i3 = i3("/tmp/nestedcons");
+my $tmp = get_unused_workspace();
+$i3->command("workspace $tmp")->recv;
#####################################################################
# Ensure IPC works by switching workspaces
#####################################################################
-# Switch to the first workspace to get a clean testing environment
-$i3->command('1')->recv;
-
# Create a window so we can get a focus different from NULL
my $window = i3test::open_standard_window($x);
diag("window->id = " . $window->id);
diag("old focus = $focus");
# Switch to the nineth workspace
-$i3->command('9')->recv;
+my $otmp = get_unused_workspace();
+$i3->command("workspace $otmp")->recv;
my $new_focus = $x->input_focus;
isnt($focus, $new_focus, "Focus changed");
#!perl
# vim:ts=4:sw=4:expandtab
-# Beware that this test uses workspace 9 to perform some tests (it expects
-# the workspace to be empty).
-# TODO: skip it by default?
-use i3test tests => 13;
+use i3test tests => 6;
use X11::XCB qw(:all);
use Time::HiRes qw(sleep);
my $x = X11::XCB::Connection->new;
-my $i3 = i3;
-
-# Switch to the nineth workspace
-$i3->command('9')->recv;
+my $i3 = i3("/tmp/nestedcons");
+my $tmp = get_unused_workspace();
+$i3->command("workspace $tmp")->recv;
#####################################################################
# Create two windows and make sure focus switching works
#####################################################################
# Change mode of the container to "default" for following tests
-$i3->command('d')->recv;
+$i3->command('layout default')->recv;
+$i3->command('split v')->recv;
my $top = i3test::open_standard_window($x);
my $mid = i3test::open_standard_window($x);
$focus = $x->input_focus;
is($focus, $bottom->id, "Latest window focused");
-$focus = focus_after("k");
+$focus = focus_after("prev v");
is($focus, $mid->id, "Middle window focused");
-$focus = focus_after("k");
+$focus = focus_after("prev v");
is($focus, $top->id, "Top window focused");
#####################################################################
# Test focus wrapping
#####################################################################
-$focus = focus_after("k");
+$focus = focus_after("prev v");
is($focus, $bottom->id, "Bottom window focused (wrapping to the top works)");
-$focus = focus_after("j");
+$focus = focus_after("next v");
is($focus, $top->id, "Top window focused (wrapping to the bottom works)");
###############################################
# Test focus with empty containers and colspan
###############################################
-# Switch to the 10. workspace
-$i3->command('10')->recv;
-
-$top = i3test::open_standard_window($x);
-$bottom = i3test::open_standard_window($x);
-sleep 0.25;
-
-$focus = focus_after("mj");
-$focus = focus_after("mh");
-$focus = focus_after("k");
-is($focus, $bottom->id, "Selecting top window without snapping doesn't work");
-
-$focus = focus_after("sl");
-is($focus, $bottom->id, "Bottom window focused");
-
-$focus = focus_after("k");
-is($focus, $top->id, "Top window focused");
-
-# Same thing, but left/right instead of top/bottom
-
-# Switch to the 11. workspace
-$i3->command('11')->recv;
-
-my $left = i3test::open_standard_window($x);
-my $right = i3test::open_standard_window($x);
-sleep 0.25;
-
-$focus = focus_after("ml");
-$focus = focus_after("h");
-$focus = focus_after("mk");
-$focus = focus_after("l");
-is($focus, $left->id, "Selecting right window without snapping doesn't work");
-
-$focus = focus_after("sj");
-is($focus, $left->id, "left window focused");
-
-$focus = focus_after("l");
-is($focus, $right->id, "right window focused");
+#my $otmp = get_unused_workspace();
+#$i3->command("workspace $otmp")->recv;
+#
+#$top = i3test::open_standard_window($x);
+#$bottom = i3test::open_standard_window($x);
+#sleep 0.25;
+#
+#$focus = focus_after("mj");
+#$focus = focus_after("mh");
+#$focus = focus_after("k");
+#is($focus, $bottom->id, "Selecting top window without snapping doesn't work");
+#
+#$focus = focus_after("sl");
+#is($focus, $bottom->id, "Bottom window focused");
+#
+#$focus = focus_after("k");
+#is($focus, $top->id, "Top window focused");
+#
+## Same thing, but left/right instead of top/bottom
+#
+#my $o2tmp = get_unused_workspace();
+#$i3->command("workspace $o2tmp")->recv;
+#
+#my $left = i3test::open_standard_window($x);
+#my $right = i3test::open_standard_window($x);
+#sleep 0.25;
+#
+#$focus = focus_after("ml");
+#$focus = focus_after("h");
+#$focus = focus_after("mk");
+#$focus = focus_after("l");
+#is($focus, $left->id, "Selecting right window without snapping doesn't work");
+#
+#$focus = focus_after("sj");
+#is($focus, $left->id, "left window focused");
+#
+#$focus = focus_after("l");
+#is($focus, $right->id, "right window focused");
diag( "Testing i3, Perl $], $^X" );
use_ok('X11::XCB::Connection') or BAIL_OUT('Cannot load X11::XCB::Connection');
}
+SKIP: {
+ skip "Testcase not yet modified for new move concept", 7;
+
my $x = X11::XCB::Connection->new;
my $i3 = i3;
$i3->command($cmd)->recv;
}
ok(1, "Still living");
+}
my $x = X11::XCB::Connection->new;
-my $i3 = i3;
+my $i3 = i3("/tmp/nestedcons");
+my $tmp = get_unused_workspace();
+$i3->command("workspace $tmp")->recv;
-# Switch to the nineth workspace
-$i3->command('9')->recv;
+$i3->command('split h')->recv;
my $tiled_left = i3test::open_standard_window($x);
my $tiled_right = i3test::open_standard_window($x);
-sleep(0.25);
-
-$i3->command('ml')->recv;
+sleep 0.25;
# Get input focus before creating the floating window
my $focus = $x->input_focus;
$window->map;
-sleep(0.25);
+sleep 1;
+sleep 0.25;
is($x->input_focus, $window->id, 'floating window focused');
$window->unmap;
-sleep(0.25);
+sleep 0.25;
is($x->input_focus, $focus, 'Focus correctly restored');
use_ok('X11::XCB::Connection') or BAIL_OUT('Cannot load X11::XCB::Connection');
}
+SKIP: {
+ skip "stacking test not yet updated", 21;
+
my $x = X11::XCB::Connection->new;
my $i3 = i3;
$focus = focus_after("k");
is($focus, $mid->id, "Window above is mid");
+}
use_ok('X11::XCB::Connection') or BAIL_OUT('Cannot load X11::XCB::Connection');
}
-my $x = X11::XCB::Connection->new;
+SKIP: {
+ skip "border styles not yet implemented", 14;
-my $i3 = i3;
+my $x = X11::XCB::Connection->new;
-# Switch to the nineth workspace
-$i3->command('9')->recv;
+my $i3 = i3("/tmp/nestedcons");
+my $tmp = get_unused_workspace();
+$i3->command("workspace $tmp")->recv;
#####################################################################
# Create a floating window and see if resizing works
$i3->command('bp')->recv;
test_resize;
+
+}
#!perl
# vim:ts=4:sw=4:expandtab
-# Beware that this test uses workspace 9 and 10 to perform some tests (it expects
-# the workspace to be empty).
-# TODO: skip it by default?
use i3test tests => 3;
use X11::XCB qw(:all);
}
my $x = X11::XCB::Connection->new;
-my $i3 = i3;
+my $i3 = i3("/tmp/nestedcons");
-# Switch to the nineth workspace
-$i3->command('9')->recv;
+my $tmp = get_unused_workspace();
+$i3->command("workspace $tmp")->recv;
#####################################################################
# Create a parent window
# Switch workspace to 10 and open a child window. It should be positioned
# on workspace 9.
#########################################################################
-$i3->command('10')->recv;
+my $otmp = get_unused_workspace();
+$i3->command("workspace $otmp")->recv;
my $child = $x->root->create_child(
class => WINDOW_CLASS_INPUT_OUTPUT,
isnt($x->input_focus, $child->id, "Child window focused");
# Switch back
-$i3->command('9')->recv;
+$i3->command("workspace $tmp")->recv;
is($x->input_focus, $child->id, "Child window focused");
use i3test tests => 2;
use List::MoreUtils qw(all);
-my $i3 = i3;
+my $i3 = i3("/tmp/nestedcons");
####################
# Request workspaces
####################
+SKIP: {
+ skip "IPC API not yet stabilized", 2;
+
my $workspaces = $i3->get_workspaces->recv;
ok(@{$workspaces} > 0, "More than zero workspaces found");
my $name_exists = all { defined($_->{name}) } @{$workspaces};
ok($name_exists, "All workspaces have a name");
+}
+
diag( "Testing i3, Perl $], $^X" );
#!perl
# vim:ts=4:sw=4:expandtab
-use i3test tests => 8;
+use i3test tests => 7;
use List::MoreUtils qw(all none);
my $i3 = i3("/tmp/nestedcons");
####################
my $tree = $i3->get_workspaces->recv;
-# $VAR1 = {
-# 'fullscreen_mode' => 0,
-# 'nodes' => [
-# {
-# 'fullscreen_mode' => 0,
-# 'nodes' => [
-# {
-# 'fullscreen_mode' => 0,
-# 'nodes' => [],
-# 'window' => undef,
-# 'name' => '1',
-# 'orientation' => 0,
-# 'type' => 2
-# }
-# ],
-# 'window' => undef,
-# 'name' => 'LVDS1',
-# 'orientation' => 0,
-# 'type' => 1
-# }
-# ],
-# 'window' => undef,
-# 'name' => 'root',
-# 'orientation' => 0,
-# 'type' => 0
-# };
my $expected = {
fullscreen_mode => 0,
rect => ignore(),
layout => 0,
focus => ignore(),
+ urgent => 0,
+ 'floating-nodes' => ignore(),
};
cmp_deeply($tree, $expected, 'root node OK');
push @workspaces, $ws;
}
-ok((all { $_->{type} == 2 } @workspaces), 'all workspaces are of type CT_CON');
-ok((all { @{$_->{nodes}} == 0 } @workspaces), 'all workspaces are empty yet');
+ok((all { $_->{type} == 4 } @workspaces), 'all workspaces are of type CT_WORKSPACE');
+#ok((all { @{$_->{nodes}} == 0 } @workspaces), 'all workspaces are empty yet');
ok((none { defined($_->{window}) } @workspaces), 'no CT_OUTPUT contains a window');
# TODO: get the focused container
# TODO: get the focused container, check if it changed.
# TODO: get the old focused container, check if there is a new child
-diag(Dumper(\@workspaces));
+#diag(Dumper(\@workspaces));
-diag(Dumper($tree));
+#diag(Dumper($tree));
diag( "Testing i3, Perl $], $^X" );