summaryrefslogtreecommitdiff
path: root/tests
diff options
authorUgo Riboni <ugo.riboni@canonical.com>2012-08-29 11:42:04 +0200
committerUgo Riboni <ugo.riboni@canonical.com>2012-08-29 11:42:04 +0200
commite940c08130f86bc82c10bc157a5404b0a60f27ad (patch)
tree950d1cd2a10ba9a50091654e9b7ae46ec36c1e44 /tests
parent94e543e8fbdd903c57f38b474425bd5b4f2b3568 (diff)
Add unit tests for the WindowMinimizeSpeedController
(bzr r2562.1.14)
Diffstat (limited to 'tests')
-rw-r--r--tests/CMakeLists.txt2
-rw-r--r--tests/test_launcher_minimize_speed.cpp123
2 files changed, 125 insertions, 0 deletions
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 453e3082c..1639401b0 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -227,6 +227,7 @@ if (GTEST_SRC_DIR AND
test_switcher_model.cpp
test_texture_cache.cpp
test_thumbnail_generator.cpp
+ test_launcher_minimize_speed.cpp
gmockvolume.c
${CMAKE_SOURCE_DIR}/dash/AbstractPlacesGroup.cpp
${CMAKE_SOURCE_DIR}/dash/DashViewPrivate.cpp
@@ -332,6 +333,7 @@ if (GTEST_SRC_DIR AND
${CMAKE_SOURCE_DIR}/unity-shared/UserThumbnailProvider.cpp
${CMAKE_SOURCE_DIR}/unity-shared/WindowManager.cpp
${CMAKE_SOURCE_DIR}/unity-shared/ubus-server.cpp
+ ${CMAKE_SOURCE_DIR}/plugins/unityshell/src/WindowMinimizeSpeedController.cpp
)
target_link_libraries(test-gtest gtest gmock ${LIBS})
add_test(UnityGTest test-gtest)
diff --git a/tests/test_launcher_minimize_speed.cpp b/tests/test_launcher_minimize_speed.cpp
new file mode 100644
index 000000000..0b32cb7ef
--- /dev/null
+++ b/tests/test_launcher_minimize_speed.cpp
@@ -0,0 +1,123 @@
+/*
+ * Copyright 2012 Canonical Ltd.
+ *
+ * This program is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 3, as published
+ * by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranties of
+ * MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * version 3 along with this program. If not, see
+ * <http://www.gnu.org/licenses/>
+ *
+ * Authored by: Andrea Azzarone <andrea.azzarone@canonical.com>
+ *
+ */
+
+#include <config.h>
+
+#include <gio/gio.h>
+#include <gtest/gtest.h>
+
+#include "plugins/unityshell/src/WindowMinimizeSpeedController.h"
+
+using namespace unity;
+using namespace testing;
+
+namespace
+{
+
+const gchar* SCHEMA_DIRECTORY = BUILDDIR"/settings";
+
+class TestLauncherMinimizeSpeed : public Test
+{
+public:
+ glib::Object<GSettings> mSettings;
+ WindowMinimizeSpeedController* mController;
+
+ /* override */ void SetUp()
+ {
+ g_setenv("GSETTINGS_SCHEMA_DIR", SCHEMA_DIRECTORY, true);
+ g_setenv("GSETTINGS_BACKEND", "memory", TRUE);
+ mSettings = g_settings_new("com.canonical.Unity");
+ mController = new WindowMinimizeSpeedController();
+ }
+
+ /* override */ void TearDown()
+ {
+ g_setenv("GSETTINGS_SCHEMA_DIR", "", true);
+ g_setenv("GSETTINGS_BACKEND", "", TRUE);
+ delete mController;
+ }
+};
+
+TEST_F(TestLauncherMinimizeSpeed, TestSlowest)
+{
+ g_settings_set_int(mSettings, "minimize-count", 0);
+ g_settings_set_int(mSettings, "minimize-speed-threshold", 10);
+ g_settings_set_int(mSettings, "minimize-fast-duration", 200);
+ g_settings_set_int(mSettings, "minimize-slow-duration", 1200);
+
+ EXPECT_TRUE(mController->getDuration() == 1200);
+}
+
+TEST_F(TestLauncherMinimizeSpeed, TestFastest)
+{
+ g_settings_set_int(mSettings, "minimize-count", 10);
+ g_settings_set_int(mSettings, "minimize-speed-threshold", 10);
+ g_settings_set_int(mSettings, "minimize-fast-duration", 200);
+ g_settings_set_int(mSettings, "minimize-slow-duration", 1200);
+
+ EXPECT_TRUE(mController->getDuration() == 200);
+}
+
+TEST_F(TestLauncherMinimizeSpeed, TestHalfway)
+{
+ g_settings_set_int(mSettings, "minimize-count", 5);
+ g_settings_set_int(mSettings, "minimize-speed-threshold", 10);
+ g_settings_set_int(mSettings, "minimize-fast-duration", 200);
+ g_settings_set_int(mSettings, "minimize-slow-duration", 1200);
+
+ EXPECT_TRUE(mController->getDuration() == 700);
+}
+
+TEST_F(TestLauncherMinimizeSpeed, TestOvershoot)
+{
+ g_settings_set_int(mSettings, "minimize-count", 20);
+ g_settings_set_int(mSettings, "minimize-speed-threshold", 10);
+ g_settings_set_int(mSettings, "minimize-fast-duration", 200);
+ g_settings_set_int(mSettings, "minimize-slow-duration", 1200);
+
+ EXPECT_TRUE(mController->getDuration() == 200);
+}
+
+TEST_F(TestLauncherMinimizeSpeed, TestSignal)
+{
+
+ bool signal_emitted = false;
+ mController->DurationChanged.connect([&] () {
+ signal_emitted = true;
+ });
+
+ g_settings_set_int(mSettings, "minimize-count", 5);
+ EXPECT_TRUE(signal_emitted);
+}
+
+TEST_F(TestLauncherMinimizeSpeed, TestInvalidFastSlow)
+{
+ g_settings_set_int(mSettings, "minimize-fast-duration", 2000);
+ g_settings_set_int(mSettings, "minimize-slow-duration", 100);
+
+ bool signal_emitted = false;
+ mController->DurationChanged.connect([&] () {
+ signal_emitted = true;
+ });
+
+ g_settings_set_int(mSettings, "minimize-count", 5);
+ EXPECT_FALSE(signal_emitted);
+}
+} \ No newline at end of file