diff options
| author | Ugo Riboni <ugo.riboni@canonical.com> | 2012-08-29 11:42:04 +0200 |
|---|---|---|
| committer | Ugo Riboni <ugo.riboni@canonical.com> | 2012-08-29 11:42:04 +0200 |
| commit | e940c08130f86bc82c10bc157a5404b0a60f27ad (patch) | |
| tree | 950d1cd2a10ba9a50091654e9b7ae46ec36c1e44 /tests | |
| parent | 94e543e8fbdd903c57f38b474425bd5b4f2b3568 (diff) | |
Add unit tests for the WindowMinimizeSpeedController
(bzr r2562.1.14)
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | tests/test_launcher_minimize_speed.cpp | 123 |
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 |
