+################################################################################
+# When focusing the workspace, changing the layout should have an effect on the
+# workspace, not on the parent (CT_CONTENT) container.
+################################################################################
+
+sub get_output_content {
+ my $tree = i3(get_socket_path())->get_tree->recv;
+
+ my @outputs = grep { $_->{name} !~ /^__/ } @{$tree->{nodes}};
+ is(scalar @outputs, 1, 'exactly one output (testcase not multi-monitor capable)');
+ my $output = $outputs[0];
+ # get the first (and only) CT_CON
+ return first { $_->{type} eq 'con' } @{$output->{nodes}};
+}
+
+$tmp = fresh_workspace;
+
+cmd 'open';
+cmd 'split v';
+cmd 'open';
+cmd 'focus parent';
+is(get_output_content()->{layout}, 'splith', 'content container layout ok');
+cmd 'layout stacked';
+is(get_output_content()->{layout}, 'splith', 'content container layout still ok');
+
+######################################################################
+# Splitting a workspace that has more than one child
+######################################################################
+
+$tmp = fresh_workspace;
+
+cmd 'open';
+cmd 'open';
+cmd 'focus parent';
+cmd 'split v';
+cmd 'open';
+
+my $content = get_ws_content($tmp);
+my $fst = $content->[0];
+my $snd = $content->[1];
+
+is(@{$content}, 2, 'two containers on workspace');
+is(@{$fst->{nodes}}, 2, 'first child has two children');
+is(@{$snd->{nodes}}, 0, 'second child has no children');
+
+######################################################################
+# Test split toggle
+######################################################################
+
+$tmp = fresh_workspace;
+cmd 'split h';
+cmd 'split toggle';
+$ws = get_ws($tmp);
+is($ws->{layout}, 'splitv', 'toggled workspace split');
+
+$tmp = fresh_workspace;
+cmd 'split h';
+cmd 'split toggle';
+cmd 'split toggle';
+$ws = get_ws($tmp);
+is($ws->{layout}, 'splith', 'toggled workspace back and forth');
+
+cmd 'open';
+cmd 'open';
+cmd 'split toggle';
+
+$content = get_ws_content($tmp);
+my $second = $content->[1];
+is($second->{layout}, 'splitv', 'toggled container orientation to vertical');
+
+cmd 'split toggle';
+$content = get_ws_content($tmp);
+$second = $content->[1];
+is($second->{layout}, 'splith', 'toggled container orientation back to horizontal');
+