diff --git a/tests/functionaltests/functionaltests.c b/tests/functionaltests/functionaltests.c
index 3c11c701..60ad341c 100644
--- a/tests/functionaltests/functionaltests.c
+++ b/tests/functionaltests/functionaltests.c
@@ -118,6 +118,12 @@ int main(int argc, char* argv[]) {
unit_test_setup_teardown(send_enable_carbons,
init_prof_test,
close_prof_test),
+ unit_test_setup_teardown(connect_with_carbons_enabled,
+ init_prof_test,
+ close_prof_test),
+ unit_test_setup_teardown(send_disable_carbons,
+ init_prof_test,
+ close_prof_test),
};
return run_tests(all_tests);
diff --git a/tests/functionaltests/proftest.c b/tests/functionaltests/proftest.c
index 613c2c7a..4f641821 100644
--- a/tests/functionaltests/proftest.c
+++ b/tests/functionaltests/proftest.c
@@ -234,5 +234,5 @@ prof_connect(void)
exp_timeout = 30;
assert_true(prof_output_regex("stabber@localhost logged in successfully, .+online.+ \\(priority 0\\)\\."));
exp_timeout = 10;
- stbbr_wait_for("prof_presence_1");
+ stbbr_wait_for("prof_presence_*");
}
diff --git a/tests/functionaltests/test_carbons.c b/tests/functionaltests/test_carbons.c
index 3ea03f98..f0a8214b 100644
--- a/tests/functionaltests/test_carbons.c
+++ b/tests/functionaltests/test_carbons.c
@@ -22,3 +22,29 @@ send_enable_carbons(void **state)
""
));
}
+
+void
+connect_with_carbons_enabled(void **state)
+{
+ prof_input("/carbons on");
+
+ prof_connect();
+
+ assert_true(stbbr_received(
+ ""
+ ));
+}
+
+void
+send_disable_carbons(void **state)
+{
+ prof_input("/carbons on");
+
+ prof_connect();
+
+ prof_input("/carbons off");
+
+ assert_true(stbbr_received(
+ ""
+ ));
+}
diff --git a/tests/functionaltests/test_carbons.h b/tests/functionaltests/test_carbons.h
index 2a1263ad..6f756d33 100644
--- a/tests/functionaltests/test_carbons.h
+++ b/tests/functionaltests/test_carbons.h
@@ -1 +1,3 @@
void send_enable_carbons(void **state);
+void connect_with_carbons_enabled(void **state);
+void send_disable_carbons(void **state);