]> git.sur5r.net Git - i3/i3/blobdiff - testcases/t/111-goto.t
Merge branch 'master' into next
[i3/i3] / testcases / t / 111-goto.t
index 76baec0ea34a3e18c95ad35b46673c95189e41d7..078ab92c071ff8b6a55b25320262f7383997a936 100644 (file)
@@ -4,8 +4,6 @@
 use i3test;
 use File::Temp;
 
-my $x = X11::XCB::Connection->new;
-
 my $tmp = fresh_workspace;
 
 cmd 'split h';
@@ -14,9 +12,9 @@ cmd 'split h';
 # Create two windows and make sure focus switching works
 #####################################################################
 
-my $top = open_window($x);
-my $mid = open_window($x);
-my $bottom = open_window($x);
+my $top = open_window;
+my $mid = open_window;
+my $bottom = open_window;
 
 #
 # Returns the input focus after sending the given command to i3 via IPC
@@ -26,7 +24,6 @@ sub focus_after {
     my $msg = shift;
 
     cmd $msg;
-    sync_with_i3($x);
     return $x->input_focus;
 }
 
@@ -61,6 +58,24 @@ is($focus, $top->id, "Top window focused");
 $focus = focus_after(qq|[con_mark="$random_mark" con_mark="$random_mark"] focus|);
 is($focus, $mid->id, "goto worked");
 
+#####################################################################
+# Set the same mark multiple times and see if focus works correctly
+#####################################################################
+
+$focus = focus_after('focus left');
+is($focus, $top->id, "Top window focused");
+
+cmd "mark $random_mark";
+
+$focus = focus_after(qq|[con_mark="$random_mark"] focus|);
+is($focus, $top->id, "focus unchanged after goto");
+
+$focus = focus_after('focus right');
+is($focus, $mid->id, "mid window focused");
+
+$focus = focus_after(qq|[con_mark="$random_mark"] focus|);
+is($focus, $top->id, "goto worked");
+
 #####################################################################
 # Check whether the focus command will switch to a different
 # workspace if necessary