aboutsummaryrefslogtreecommitdiff
path: root/tests/integration
diff options
context:
space:
mode:
authorXavi Garcia Mena <xavi.garcia.mena@canonical.com>2015-12-02 14:44:58 +0100
committerXavi Garcia Mena <xavi.garcia.mena@canonical.com>2015-12-02 14:44:58 +0100
commitd9a00604c1d8e3103444053da39a4af17230903b (patch)
treea58e2a32d3e7c9fd603be00262914612e2efb902 /tests/integration
parent7c69f81a079a08d58241cc50365dde7d37ad3345 (diff)
downloadayatana-indicator-sound-d9a00604c1d8e3103444053da39a4af17230903b.tar.gz
ayatana-indicator-sound-d9a00604c1d8e3103444053da39a4af17230903b.tar.bz2
ayatana-indicator-sound-d9a00604c1d8e3103444053da39a4af17230903b.zip
Added integration tests
Diffstat (limited to 'tests/integration')
-rw-r--r--tests/integration/indicator-sound-test-base.cpp66
-rw-r--r--tests/integration/indicator-sound-test-base.h6
-rw-r--r--tests/integration/test-indicator.cpp13
3 files changed, 83 insertions, 2 deletions
diff --git a/tests/integration/indicator-sound-test-base.cpp b/tests/integration/indicator-sound-test-base.cpp
index 5005e2c..3b9c58d 100644
--- a/tests/integration/indicator-sound-test-base.cpp
+++ b/tests/integration/indicator-sound-test-base.cpp
@@ -821,3 +821,69 @@ bool IndicatorSoundTestBase::setVolumeUntilAccountsIsConnected(double volume)
}
return (signal_spy_volume_changed_->count() != 0);
}
+
+QVariantList IndicatorSoundTestBase::getActionValue(QString const &action)
+{
+ if (!menu_interface_)
+ {
+ menu_interface_.reset(new MenusInterface("com.canonical.indicator.sound",
+ "/com/canonical/indicator/sound",
+ dbusTestRunner.sessionConnection(), 0));
+ }
+ if (menu_interface_)
+ {
+ QDBusReply<DBusActionResult> resp = menu_interface_->call(QLatin1String("Describe"),
+ action);
+ if (!resp.isValid())
+ {
+ qWarning() << "IndicatorSoundTestBase::getActionValue(): D-Bus error: " << resp.error().message();
+ return QVariantList();
+ }
+ else
+ {
+ return resp.value().getValue();
+ }
+ }
+
+ return QVariantList();
+}
+
+qlonglong IndicatorSoundTestBase::getVolumeSyncValue(bool *isValid)
+{
+ qlonglong result = 0;
+
+ QVariantList varList = getActionValue("volume-sync");
+ if (varList.size() == 1)
+ {
+ result = varList.at(0).toULongLong(isValid);
+ }
+ else
+ {
+ if (isValid)
+ {
+ *isValid = false;
+ }
+ }
+
+ return result;
+}
+
+float IndicatorSoundTestBase::getVolumeValue(bool *isValid)
+{
+ float result = 0.0;
+
+ QVariantList varList = getActionValue("volume");
+ if (varList.size() == 1)
+ {
+ result = varList.at(0).toFloat(isValid);
+ }
+ else
+ {
+ if (isValid)
+ {
+ *isValid = false;
+ }
+ }
+
+ return result;
+}
diff --git a/tests/integration/indicator-sound-test-base.h b/tests/integration/indicator-sound-test-base.h
index 41dd1c7..67f347f 100644
--- a/tests/integration/indicator-sound-test-base.h
+++ b/tests/integration/indicator-sound-test-base.h
@@ -134,6 +134,12 @@ protected:
bool setVolumeUntilAccountsIsConnected(double volume);
+ QVariantList getActionValue(QString const &action);
+
+ qlonglong getVolumeSyncValue(bool *isValid = nullptr);
+
+ float getVolumeValue(bool *isValid = nullptr);
+
QtDBusTest::DBusTestRunner dbusTestRunner;
QtDBusMock::DBusMock dbusMock;
diff --git a/tests/integration/test-indicator.cpp b/tests/integration/test-indicator.cpp
index 33e62b5..54c56b5 100644
--- a/tests/integration/test-indicator.cpp
+++ b/tests/integration/test-indicator.cpp
@@ -182,6 +182,7 @@ TEST_F(TestIndicator, PhoneBasicInitialVolume)
).match());
}
+
TEST_F(TestIndicator, PhoneAddMprisPlayer)
{
double INITIAL_VOLUME = 0.0;
@@ -783,7 +784,11 @@ TEST_F(TestIndicator, PhoneNotificationWarningVolume)
int idNotification = getNotificationID(notificationsSpy.at(5));
ASSERT_NE(-1, idNotification);
- qWarning() << "XGM: id Notification: " << idNotification;
+ // check the sync value before cancelling the dialog
+ bool isValid;
+ qlonglong syncValue = getVolumeSyncValue(&isValid);
+ EXPECT_TRUE(isValid);
+ EXPECT_EQ(0, syncValue);
// cancel the dialog
pressNotificationButton(idNotification, "cancel");
@@ -805,6 +810,11 @@ TEST_F(TestIndicator, PhoneNotificationWarningVolume)
)
).match());
+ // verify that the sync value is increased
+ syncValue = getVolumeSyncValue(&isValid);
+ EXPECT_TRUE(isValid);
+ EXPECT_EQ(1, syncValue);
+
// try again...
notificationsSpy.clear();
@@ -900,7 +910,6 @@ TEST_F(TestIndicator, PhoneNotificationWarningVolume)
checkVolumeNotification(1.0, "Headphones", true, notificationsSpy.at(3));
}
-
TEST_F(TestIndicator, PhoneNotificationWarningVolumeAlertMode)
{
double INITIAL_VOLUME = 0.0;