aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/snap.cpp5
-rw-r--r--tests/test-snap.cpp49
2 files changed, 46 insertions, 8 deletions
diff --git a/src/snap.cpp b/src/snap.cpp
index beefa94..0b2322a 100644
--- a/src/snap.cpp
+++ b/src/snap.cpp
@@ -78,7 +78,10 @@ public:
auto sound = std::make_shared<uin::Sound>(uri, volume, loop);
// create the haptic feedback...
- auto haptic = std::make_shared<uin::Haptic>();
+ const auto haptic_mode = m_settings->alarm_haptic.get();
+ std::shared_ptr<uin::Haptic> haptic;
+ if (haptic_mode == "pulse")
+ haptic = std::make_shared<uin::Haptic>(uin::Haptic::MODE_PULSE);
// show a notification...
const auto minutes = std::chrono::minutes(m_settings->alarm_duration.get());
diff --git a/tests/test-snap.cpp b/tests/test-snap.cpp
index 06e0a80..5afaab1 100644
--- a/tests/test-snap.cpp
+++ b/tests/test-snap.cpp
@@ -416,13 +416,6 @@ TEST_F(SnapFixture, InhibitSleep)
nullptr,
&error));
- // confirm that haptic feedback got called
- EXPECT_TRUE (dbus_test_dbus_mock_object_check_method_call (haptic_mock,
- haptic_obj,
- HAPTIC_METHOD_VIBRATE_PATTERN,
- nullptr,
- &error));
-
// force-close the snap
wait_msec(100);
delete snap;
@@ -485,3 +478,45 @@ TEST_F(SnapFixture, ForceScreen)
&error));
g_assert_no_error(error);
}
+
+/***
+****
+***/
+
+TEST_F(SnapFixture, HapticModes)
+{
+ auto settings = std::make_shared<Settings>();
+ auto ne = std::make_shared<unity::indicator::notifications::Engine>(APP_NAME);
+ auto func = [this](const Appointment&){g_idle_add(quit_idle, loop);};
+ GError * error = nullptr;
+
+ // invoke a snap decision while haptic feedback is set to "pulse",
+ // confirm that VibratePattern got called
+ settings->alarm_haptic.set("pulse");
+ auto snap = new Snap (ne, settings);
+ (*snap)(appt, func, func);
+ wait_msec(100);
+ EXPECT_TRUE (dbus_test_dbus_mock_object_check_method_call (haptic_mock,
+ haptic_obj,
+ HAPTIC_METHOD_VIBRATE_PATTERN,
+ nullptr,
+ &error));
+ delete snap;
+
+ // invoke a snap decision while haptic feedback is set to "none",
+ // confirm that VibratePattern =didn't= get called
+ wait_msec(100);
+ dbus_test_dbus_mock_object_clear_method_calls (haptic_mock, haptic_obj, &error);
+ settings->alarm_haptic.set("none");
+ snap = new Snap (ne, settings);
+ (*snap)(appt, func, func);
+ wait_msec(100);
+ EXPECT_FALSE (dbus_test_dbus_mock_object_check_method_call (haptic_mock,
+ haptic_obj,
+ HAPTIC_METHOD_VIBRATE_PATTERN,
+ nullptr,
+ &error));
+ delete snap;
+
+ g_assert_no_error (error);
+}