From de76813c8421fd900e0d57038d28e8be693e33be Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Tue, 28 Nov 2017 08:47:03 +0000 Subject: Fork from Ubuntus' indicator-display project. --- tests/unit/CMakeLists.txt | 32 ++++++++++++++++++++++++++++-- tests/unit/greeter-test.cpp | 12 ++++++------ tests/utils/CMakeLists.txt | 1 - tests/utils/mock-greeter.py | 41 +++++++++++++++++++++++++++++++++++++++ tests/utils/mock-unity-greeter.py | 41 --------------------------------------- 5 files changed, 77 insertions(+), 50 deletions(-) create mode 100644 tests/utils/mock-greeter.py delete mode 100644 tests/utils/mock-unity-greeter.py (limited to 'tests') diff --git a/tests/unit/CMakeLists.txt b/tests/unit/CMakeLists.txt index 87fab3a..fda43be 100644 --- a/tests/unit/CMakeLists.txt +++ b/tests/unit/CMakeLists.txt @@ -1,3 +1,31 @@ +########################### +# GSettings Schema +########################### + +# build the necessary schemas +set_directory_properties (PROPERTIES + ADDITIONAL_MAKE_CLEAN_FILES gschemas.compiled) +set_source_files_properties (gschemas.compiled GENERATED) + +# GSettings: +# compile the org.ayatana.display schema into a gschemas.compiled file in this directory, +# and help the tests to find that file by setting -DSCHEMA_DIR +set (XDG_DATA_DIRS "${CMAKE_CURRENT_BINARY_DIR}/gsettings-schemas") +set (SCHEMA_DIR "${XDG_DATA_DIRS}/glib-2.0/schemas") +if (EXISTS /usr/share/glib-2.0/schemas/com.ubuntu.touch.system.gschema.xml) + set (DISPLAY_SCHEMA /usr/share/glib-2.0/schemas/com.ubuntu.touch.system.gschema.xml) +else() + set (DISPLAY_SCHEMA ${CMAKE_SOURCE_DIR}/data/org.ayatana.display.gschema.xml) +endif() +add_definitions(-DSCHEMA_DIR="${SCHEMA_DIR}") +execute_process (COMMAND ${PKG_CONFIG_EXECUTABLE} gio-2.0 --variable glib_compile_schemas + OUTPUT_VARIABLE COMPILE_SCHEMA_EXECUTABLE + OUTPUT_STRIP_TRAILING_WHITESPACE) +add_custom_command (OUTPUT gschemas.compiled + COMMAND mkdir -p ${SCHEMA_DIR} + COMMAND cp -f ${DISPLAY_SCHEMA} ${SCHEMA_DIR} + COMMAND ${COMPILE_SCHEMA_EXECUTABLE} ${SCHEMA_DIR}) + set(SERVICE_LINK_LIBRARIES ${SERVICE_LIB} ${SERVICE_DEPS_LIBRARIES} @@ -15,13 +43,13 @@ set(TEST_LINK_LIBRARIES ) add_definitions( - -DGREETER_TEMPLATE="${CMAKE_SOURCE_DIR}/tests/utils/mock-unity-greeter.py" + -DGREETER_TEMPLATE="${CMAKE_SOURCE_DIR}/tests/utils/mock-greeter.py" ) function(add_test_by_name name) set(TEST_NAME ${name}) set(COVERAGE_TEST_TARGETS ${COVERAGE_TEST_TARGETS} ${TEST_NAME} PARENT_SCOPE) - add_executable (${TEST_NAME} ${TEST_NAME}.cpp) + add_executable (${TEST_NAME} ${TEST_NAME}.cpp gschemas.compiled) add_test(${TEST_NAME} ${TEST_NAME}) set_property(TEST ${TEST_NAME} APPEND PROPERTY ENVIRONMENT ${CTEST_ENVIRONMENT}) target_link_libraries(${TEST_NAME} ${SERVICE_LINK_LIBRARIES} ${TEST_LINK_LIBRARIES} ${THREAD_LINK_LIBRARIES}) diff --git a/tests/unit/greeter-test.cpp b/tests/unit/greeter-test.cpp index bfa88e8..61880f6 100644 --- a/tests/unit/greeter-test.cpp +++ b/tests/unit/greeter-test.cpp @@ -70,7 +70,7 @@ protected: // set a watcher to look for our mock greeter to appear bool owned {}; QDBusServiceWatcher watcher( - DBusNames::UnityGreeter::NAME, + DBusNames::Greeter::NAME, m_dbus_runner->sessionConnection() ); QObject::connect( @@ -83,7 +83,7 @@ protected: QVariantMap parameters; parameters["IsActive"] = QVariant(is_active); m_dbus_mock->registerTemplate( - DBusNames::UnityGreeter::NAME, + DBusNames::Greeter::NAME, GREETER_TEMPLATE, parameters, QDBusConnection::SessionBus @@ -116,7 +116,7 @@ TEST_F(GreeterFixture, ActiveServiceStartsBeforeWatcher) start_greeter_service(is_active); - UnityGreeter greeter; + Greeter greeter; ASSERT_PROPERTY_EQ_EVENTUALLY(expected, greeter.state()); } @@ -126,7 +126,7 @@ TEST_F(GreeterFixture, WatcherStartsBeforeActiveService) constexpr bool is_active {true}; constexpr Greeter::State expected {Greeter::State::ACTIVE}; - UnityGreeter greeter; + Greeter greeter; start_greeter_service(is_active); @@ -140,7 +140,7 @@ TEST_F(GreeterFixture, InactiveServiceStartsBeforeWatcher) start_greeter_service(is_active); - UnityGreeter greeter; + Greeter greeter; ASSERT_PROPERTY_EQ_EVENTUALLY(expected, greeter.state()); } @@ -150,7 +150,7 @@ TEST_F(GreeterFixture, WatcherStartsBeforeInactiveService) constexpr bool is_active {false}; constexpr Greeter::State expected {Greeter::State::INACTIVE}; - UnityGreeter greeter; + Greeter greeter; start_greeter_service(is_active); diff --git a/tests/utils/CMakeLists.txt b/tests/utils/CMakeLists.txt index e458c82..fd82b79 100644 --- a/tests/utils/CMakeLists.txt +++ b/tests/utils/CMakeLists.txt @@ -14,4 +14,3 @@ qt5_use_modules( Core DBus ) - diff --git a/tests/utils/mock-greeter.py b/tests/utils/mock-greeter.py new file mode 100644 index 0000000..dc48a6d --- /dev/null +++ b/tests/utils/mock-greeter.py @@ -0,0 +1,41 @@ +'''desktop greeter mock template + +Very basic template that just mocks the greeter is-active flag +''' + +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU Lesser General Public License as published by the Free +# Software Foundation; either version 3 of the License, or (at your option) any +# later version. See http://www.gnu.org/copyleft/lgpl.html for the full text +# of the license. + +__author__ = 'Charles Kerr' +__email__ = 'charles.kerr@canonical.com' +__copyright__ = '(c) 2016 Canonical Ltd.' +__license__ = 'LGPL 3+' + +import dbus +import os + +from dbusmock import MOCK_IFACE, mockobject + +BUS_NAME = 'org.ayatana.Greeter' +MAIN_OBJ = '/' +MAIN_IFACE = 'org.ayatana.Greeter' +SYSTEM_BUS = False + + +def load(mock, parameters): + mock.AddMethods( + MAIN_IFACE, [ + ('HideGreeter', '', '', 'self.Set("org.ayatana.Greeter", "IsActive", False)'), + ('ShowGreeter', '', '', 'self.Set("org.ayatana.Greeter", "IsActive", True)') + ] + ) + mock.AddProperties( + MAIN_IFACE, + dbus.Dictionary({ + 'IsActive': parameters.get('IsActive', False), + }, signature='sv') + ) + diff --git a/tests/utils/mock-unity-greeter.py b/tests/utils/mock-unity-greeter.py deleted file mode 100644 index 70fb791..0000000 --- a/tests/utils/mock-unity-greeter.py +++ /dev/null @@ -1,41 +0,0 @@ -'''unity greeter mock template - -Very basic template that just mocks the greeter is-active flag -''' - -# This program is free software; you can redistribute it and/or modify it under -# the terms of the GNU Lesser General Public License as published by the Free -# Software Foundation; either version 3 of the License, or (at your option) any -# later version. See http://www.gnu.org/copyleft/lgpl.html for the full text -# of the license. - -__author__ = 'Charles Kerr' -__email__ = 'charles.kerr@canonical.com' -__copyright__ = '(c) 2016 Canonical Ltd.' -__license__ = 'LGPL 3+' - -import dbus -import os - -from dbusmock import MOCK_IFACE, mockobject - -BUS_NAME = 'com.canonical.UnityGreeter' -MAIN_OBJ = '/' -MAIN_IFACE = 'com.canonical.UnityGreeter' -SYSTEM_BUS = False - - -def load(mock, parameters): - mock.AddMethods( - MAIN_IFACE, [ - ('HideGreeter', '', '', 'self.Set("com.canonical.UnityGreeter", "IsActive", False)'), - ('ShowGreeter', '', '', 'self.Set("com.canonical.UnityGreeter", "IsActive", True)') - ] - ) - mock.AddProperties( - MAIN_IFACE, - dbus.Dictionary({ - 'IsActive': parameters.get('IsActive', False), - }, signature='sv') - ) - -- cgit v1.2.3