]> git.sur5r.net Git - i3/i3/commitdiff
Expand testcase for the get_workspaces message (needs i3 to be running)
authorMichael Stapelberg <michael@stapelberg.de>
Sat, 13 Mar 2010 16:38:59 +0000 (17:38 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Sat, 13 Mar 2010 16:38:59 +0000 (17:38 +0100)
t/01-workspaces.t

index 5e708d1354e9b785cff6b25c2f943bb13c5366d4..f3206d891a50618e1d152f6b5c7deecd622a8471 100644 (file)
@@ -1,12 +1,29 @@
 #!perl -T
+# vim:ts=4:sw=4:expandtab
 
-use Test::More tests => 1;
+use Test::More tests => 3;
 use AnyEvent::I3;
+use AnyEvent;
 
 my $i3 = i3();
-my $cv = $i3->connect;
-$cv->recv;
+my $cv = AnyEvent->condvar;
 
-ok(1, "connected");
+# Try to connect to i3
+$i3->connect->cb(sub { my ($v) = @_; $cv->send($v->recv) });
+
+# But cancel if we are not connected after 0.5 seconds
+my $t = AnyEvent->timer(after => 0.5, cb => sub { $cv->send(0) });
+my $connected = $cv->recv;
+
+SKIP: {
+    skip 'No connection to i3', 3 unless $connected;
+
+    my $workspaces = $i3->message(1)->recv;
+    isa_ok($workspaces, 'ARRAY');
+
+    ok(@{$workspaces} > 0, 'More than zero workspaces found');
+
+    ok(defined(@{$workspaces}[0]->{num}), 'JSON deserialized');
+}
 
 diag( "Testing AnyEvent::I3 $AnyEvent::I3::VERSION, Perl $], $^X" );