From f0b56c5e98a152cb65e8d1935a83707b5d87e30d Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Sun, 10 Jun 2012 17:56:28 +0200 Subject: [PATCH] parser: reorder v/h/vertical/horizontal This eliminates an error message upon split horizontal which did not occur in older i3 versions. The command itself worked just fine. --- parser-specs/commands.spec | 2 +- testcases/t/122-split.t | 68 ++++++++++++++++++++++---------------- 2 files changed, 40 insertions(+), 30 deletions(-) diff --git a/parser-specs/commands.spec b/parser-specs/commands.spec index 684fd23e4..b0fb9e011 100644 --- a/parser-specs/commands.spec +++ b/parser-specs/commands.spec @@ -130,7 +130,7 @@ state FULLSCREEN: # split v|h|vertical|horizontal state SPLIT: - direction = 'v', 'h', 'vertical', 'horizontal' + direction = 'horizontal', 'vertical', 'v', 'h' -> call cmd_split($direction) # floating enable|disable|toggle diff --git a/testcases/t/122-split.t b/testcases/t/122-split.t index 702679ac4..f672e9d63 100644 --- a/testcases/t/122-split.t +++ b/testcases/t/122-split.t @@ -5,45 +5,55 @@ # use i3test; -my $tmp = fresh_workspace; +my $tmp; +my $ws; -my $ws = get_ws($tmp); -is($ws->{orientation}, 'horizontal', 'orientation horizontal by default'); -cmd 'split v'; -$ws = get_ws($tmp); -is($ws->{orientation}, 'vertical', 'split v changes workspace orientation'); - -###################################################################### +################################################################################ # Open two containers, split, open another container. Then verify # the layout is like we expect it to be -###################################################################### -cmd 'open'; -cmd 'open'; -my $content = get_ws_content($tmp); +################################################################################ -is(@{$content}, 2, 'two containers on workspace level'); -my $first = $content->[0]; -my $second = $content->[1]; +sub verify_split_layout { + my (%args) = @_; -is(@{$first->{nodes}}, 0, 'first container has no children'); -is(@{$second->{nodes}}, 0, 'second container has no children (yet)'); -my $old_name = $second->{name}; + $tmp = fresh_workspace; + $ws = get_ws($tmp); + is($ws->{orientation}, 'horizontal', 'orientation horizontal by default'); + cmd 'split v'; + $ws = get_ws($tmp); + is($ws->{orientation}, 'vertical', 'split v changes workspace orientation'); -cmd 'split h'; -cmd 'open'; + cmd 'open'; + cmd 'open'; + my $content = get_ws_content($tmp); + + is(@{$content}, 2, 'two containers on workspace level'); + my $first = $content->[0]; + my $second = $content->[1]; -$content = get_ws_content($tmp); + is(@{$first->{nodes}}, 0, 'first container has no children'); + is(@{$second->{nodes}}, 0, 'second container has no children (yet)'); + my $old_name = $second->{name}; -is(@{$content}, 2, 'two containers on workspace level'); -$first = $content->[0]; -$second = $content->[1]; + cmd $args{split_command}; + cmd 'open'; + + $content = get_ws_content($tmp); + + is(@{$content}, 2, 'two containers on workspace level'); + $first = $content->[0]; + $second = $content->[1]; + + is(@{$first->{nodes}}, 0, 'first container has no children'); + isnt($second->{name}, $old_name, 'second container was replaced'); + is($second->{orientation}, 'horizontal', 'orientation is horizontal'); + is(@{$second->{nodes}}, 2, 'second container has 2 children'); + is($second->{nodes}->[0]->{name}, $old_name, 'found old second container'); +} -is(@{$first->{nodes}}, 0, 'first container has no children'); -isnt($second->{name}, $old_name, 'second container was replaced'); -is($second->{orientation}, 'horizontal', 'orientation is horizontal'); -is(@{$second->{nodes}}, 2, 'second container has 2 children'); -is($second->{nodes}->[0]->{name}, $old_name, 'found old second container'); +verify_split_layout(split_command => 'split h'); +verify_split_layout(split_command => 'split horizontal'); # TODO: extend this test-case (test next/prev) # - wrapping (no horizontal switch possible, goes level-up)