Merge lp:~compiz-team/compiz/compiz.ccs_gsettings_conformance_test into lp:compiz/0.9.8

Proposed by Sam Spilsbury
Status: Superseded
Proposed branch: lp:~compiz-team/compiz/compiz.ccs_gsettings_conformance_test
Merge into: lp:compiz/0.9.8
Prerequisite: lp:~compiz-team/compiz/compiz.ccs_split_gsettings_rw_funcs
Diff against target: 885 lines (+607/-69)
10 files modified
compizconfig/compizconfig-python/tests/compiz_config_test.py (+4/-1)
compizconfig/gsettings/gsettings_backend_shared/gsettings_util.c (+24/-9)
compizconfig/gsettings/gsettings_backend_shared/gsettings_util.h (+2/-3)
compizconfig/gsettings/src/gsettings.c (+3/-0)
compizconfig/gsettings/tests/CMakeLists.txt (+19/-3)
compizconfig/gsettings/tests/backend-conformance-config.h.in (+1/-0)
compizconfig/gsettings/tests/org.compiz.mock.gschema.xml (+0/-53)
compizconfig/gsettings/tests/test_gsettings_conformance.cpp (+548/-0)
compizconfig/libcompizconfig/config/CMakeLists.txt (+3/-0)
compizconfig/libcompizconfig/config/config_test (+3/-0)
To merge this branch: bzr merge lp:~compiz-team/compiz/compiz.ccs_gsettings_conformance_test
Reviewer Review Type Date Requested Status
Compiz Maintainers Pending
Review via email: mp+118492@code.launchpad.net

This proposal supersedes a proposal from 2012-08-07.

Description of the change

Instantiate the GSettings backend in a test harness and run the conformance tests on it.

To post a comment you must log in.
Revision history for this message
Sam Spilsbury (smspillaz) wrote : Posted in a previous version of this proposal

CI doesn't seem to care ... WIP ...

3549. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3550. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3551. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3552. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3553. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3554. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3555. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3556. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3557. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3558. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3559. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3560. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3561. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3562. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3563. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3564. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3565. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3566. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3567. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3568. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3569. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3570. By Sam Spilsbury

Merge

3571. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3572. By Sam Spilsbury

Started on a separate GNOME integration object, so we can re-use the logic etc

3573. By Sam Spilsbury

Fix typo

3574. By Sam Spilsbury

Tests using the pluggable integration backends mostly passing

3575. By Sam Spilsbury

Always update the current profile when we need to get a list of existing profiles -
it may have changed

3576. By Sam Spilsbury

Refactor gconf-integration a bit more, make it less coupled with the gsettings backend

3577. By Sam Spilsbury

Put code back into the right place, make GMock shut up

3578. By Sam Spilsbury

Added a "null" integration backend, this can be used when building without GConf
integration support

3579. By Sam Spilsbury

Remove useless stuff from header files

3580. By Sam Spilsbury

Remove unused registerGConfClient

3581. By Sam Spilsbury

CCSIntegrationBackend -> CCSIntegration

3582. By Sam Spilsbury

Merge

3583. By Sam Spilsbury

Remove public definition of private data

3584. By Sam Spilsbury

Merge

3585. By Sam Spilsbury

Fix merge markers...

3586. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3587. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3588. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3589. By Sam Spilsbury

Merge

3590. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3591. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3592. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3593. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3594. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3595. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3596. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3597. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3598. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3599. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3600. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3601. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3602. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3603. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3604. By Sam Spilsbury

Merge

3605. By Sam Spilsbury

Remove cruft

3606. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3607. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3608. By Sam Spilsbury

Merge

3609. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3610. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3611. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3612. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3613. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3614. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3615. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3616. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3617. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3618. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3619. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3620. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3621. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3622. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3623. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3624. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3625. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3626. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3627. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3628. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3629. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3630. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3631. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3632. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3633. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3634. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3635. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3636. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3637. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3638. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3639. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3640. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3641. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3642. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3643. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3644. By Sam Spilsbury

Merge

3645. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3646. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3647. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3648. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3649. By Sam Spilsbury

Simplify AutoDestroy

3650. By Sam Spilsbury

Remove autodestroy

3651. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3652. By Sam Spilsbury

Split up some of the interface

3653. By Sam Spilsbury

Split out the mock backend key value storage from the mock backend

3654. By Sam Spilsbury

Split out the gsettings write/read harness from the backend harness

3655. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3656. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3657. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3658. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3659. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

3660. By Sam Spilsbury

Merged compiz.ccs_gsettings_additional_test_coverage into compiz.ccs_gsettings_conformance_test.

Unmerged revisions

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'compizconfig/compizconfig-python/tests/compiz_config_test.py'
--- compizconfig/compizconfig-python/tests/compiz_config_test.py 2012-07-07 05:53:00 +0000
+++ compizconfig/compizconfig-python/tests/compiz_config_test.py 2012-08-07 06:57:01 +0000
@@ -5,10 +5,13 @@
5arch = subprocess.Popen (["uname", "-p"], stdout=subprocess.PIPE).communicate ()[0][:-1]5arch = subprocess.Popen (["uname", "-p"], stdout=subprocess.PIPE).communicate ()[0][:-1]
66
7os.environ["COMPIZ_METADATA_PATH"] = "generated/"7os.environ["COMPIZ_METADATA_PATH"] = "generated/"
8os.environ["COMPIZ_CONFIG_PROFILE"] = ""
9os.environ["XDG_CONFIG_HOME"] = "compizconfig/libcompizconfig/config"
8os.environ["LIBCOMPIZCONFIG_BACKEND_PATH"] = "compizconfig/libcompizconfig/backend/"10os.environ["LIBCOMPIZCONFIG_BACKEND_PATH"] = "compizconfig/libcompizconfig/backend/"
9os.environ["XDG_DATA_DIRS"] = "generated/"11os.environ["XDG_DATA_DIRS"] = "generated/"
1012
11sys.path.append ("compizconfig/compizconfig-python/build/lib.linux-" + arch + "-" + str (sys.version_info[0]) + "." + str (sys.version_info[1]) + "/")13# TODO: does this really work ?
14sys.path[0] = "compizconfig/compizconfig-python/build/lib.linux-" + arch + "-" + str (sys.version_info[0]) + "." + str (sys.version_info[1]) + "/"
1215
13import unittest16import unittest
14import compizconfig17import compizconfig
1518
=== modified file 'compizconfig/gsettings/gsettings_backend_shared/gsettings_util.c'
--- compizconfig/gsettings/gsettings_backend_shared/gsettings_util.c 2012-08-07 06:57:00 +0000
+++ compizconfig/gsettings/gsettings_backend_shared/gsettings_util.c 2012-08-07 06:57:01 +0000
@@ -944,13 +944,21 @@
944 const char *item;944 const char *item;
945} FindItemInVariantData;945} FindItemInVariantData;
946946
947typedef struct _InsertIfNotEqualData
948{
949 gboolean skipped;
950 const char *item;
951} InsertIfNotEqualData;
952
947static void953static void
948insertIfNotEqual (GVariantBuilder *builder, const char *item, void *userData)954insertIfNotEqual (GVariantBuilder *builder, const char *item, void *userData)
949{955{
950 const char *cmp = (const char *) userData;956 InsertIfNotEqualData *data = (InsertIfNotEqualData *) userData;
951957
952 if (g_strcmp0 (item, cmp))958 if (g_strcmp0 (item, data->item))
953 g_variant_builder_add (builder, "s", item);959 g_variant_builder_add (builder, "s", item);
960 else
961 data->skipped = TRUE;
954}962}
955963
956static void964static void
@@ -1003,18 +1011,25 @@
1003 return !findItemData.found;1011 return !findItemData.found;
1004}1012}
10051013
1006void1014gboolean removeItemFromVariant (GVariant **variant,
1007removeItemFromVariant (GVariant **variant,1015 const char *string)
1008 const char *string)
1009{1016{
1010 GVariantBuilder newVariantBuilder;1017 GVariantBuilder newVariantBuilder;
10111018
1019 InsertIfNotEqualData data =
1020 {
1021 FALSE,
1022 string
1023 };
1024
1012 g_variant_builder_init (&newVariantBuilder, G_VARIANT_TYPE ("as"));1025 g_variant_builder_init (&newVariantBuilder, G_VARIANT_TYPE ("as"));
10131026
1014 rebuildVariant (&newVariantBuilder, *variant, insertIfNotEqual, (void *) string);1027 rebuildVariant (&newVariantBuilder, *variant, insertIfNotEqual, (void *) &data);
10151028
1016 g_variant_unref (*variant);1029 g_variant_unref (*variant);
1017 *variant = g_variant_builder_end (&newVariantBuilder);1030 *variant = g_variant_builder_end (&newVariantBuilder);
1031
1032 return data.skipped;
1018}1033}
10191034
1020void1035void
@@ -1109,6 +1124,7 @@
1109 GVariant *plugins;1124 GVariant *plugins;
1110 GVariant *profiles;1125 GVariant *profiles;
1111 const char *currentProfile = ccsGSettingsBackendGetCurrentProfile (backend);1126 const char *currentProfile = ccsGSettingsBackendGetCurrentProfile (backend);
1127 gboolean ret = FALSE;
11121128
1113 plugins = ccsGSettingsBackendGetPluginsWithSetKeys (backend);1129 plugins = ccsGSettingsBackendGetPluginsWithSetKeys (backend);
1114 profiles = ccsGSettingsBackendGetExistingProfiles (backend);1130 profiles = ccsGSettingsBackendGetExistingProfiles (backend);
@@ -1116,18 +1132,17 @@
1116 ccsGSettingsBackendUnsetAllChangedPluginKeysInProfile (backend, context, plugins, currentProfile);1132 ccsGSettingsBackendUnsetAllChangedPluginKeysInProfile (backend, context, plugins, currentProfile);
1117 ccsGSettingsBackendClearPluginsWithSetKeys (backend);1133 ccsGSettingsBackendClearPluginsWithSetKeys (backend);
11181134
1119 removeItemFromVariant (&profiles, profile);1135 ret = removeItemFromVariant (&profiles, profile);
11201136
1121 /* Remove the profile from existing-profiles */1137 /* Remove the profile from existing-profiles */
1122 ccsGSettingsBackendSetExistingProfiles (backend, profiles);1138 ccsGSettingsBackendSetExistingProfiles (backend, profiles);
1123
1124 ccsGSettingsBackendUpdateProfile (backend, context);1139 ccsGSettingsBackendUpdateProfile (backend, context);
11251140
1126 /* Since we do not call g_settings_set_value on1141 /* Since we do not call g_settings_set_value on
1127 * plugins, we must also unref the variant */1142 * plugins, we must also unref the variant */
1128 g_variant_unref (plugins);1143 g_variant_unref (plugins);
11291144
1130 return TRUE;1145 return ret;
1131}1146}
11321147
1133void1148void
11341149
=== modified file 'compizconfig/gsettings/gsettings_backend_shared/gsettings_util.h'
--- compizconfig/gsettings/gsettings_backend_shared/gsettings_util.h 2012-08-07 06:57:00 +0000
+++ compizconfig/gsettings/gsettings_backend_shared/gsettings_util.h 2012-08-07 06:57:01 +0000
@@ -203,9 +203,8 @@
203appendStringToVariantIfUnique (GVariant **variant,203appendStringToVariantIfUnique (GVariant **variant,
204 const char *string);204 const char *string);
205205
206void206gboolean removeItemFromVariant (GVariant **variant,
207removeItemFromVariant (GVariant **variant,207 const char *string);
208 const char *string);
209208
210CCSSettingValueList209CCSSettingValueList
211readBoolListValue (GVariantIter *iter, guint nItems, CCSSetting *setting, CCSObjectAllocationInterface *allocator);210readBoolListValue (GVariantIter *iter, guint nItems, CCSSetting *setting, CCSObjectAllocationInterface *allocator);
212211
=== modified file 'compizconfig/gsettings/src/gsettings.c'
--- compizconfig/gsettings/src/gsettings.c 2012-08-07 06:57:00 +0000
+++ compizconfig/gsettings/src/gsettings.c 2012-08-07 06:57:01 +0000
@@ -776,6 +776,9 @@
776776
777 CCSGSettingsBackendPrivate *priv = (CCSGSettingsBackendPrivate *) ccsObjectGetPrivate (backend);777 CCSGSettingsBackendPrivate *priv = (CCSGSettingsBackendPrivate *) ccsObjectGetPrivate (backend);
778778
779 /* Update the current profile in case it was changed compizconfig side */
780 ccsGSettingsBackendUpdateProfile (backend, context);
781
779 value = ccsGSettingsWrapperGetValue (priv->compizconfigSettings, "existing-profiles");782 value = ccsGSettingsWrapperGetValue (priv->compizconfigSettings, "existing-profiles");
780 g_variant_iter_init (&iter, value);783 g_variant_iter_init (&iter, value);
781 while (g_variant_iter_loop (&iter, "s", &profile))784 while (g_variant_iter_loop (&iter, "s", &profile))
782785
=== modified file 'compizconfig/gsettings/tests/CMakeLists.txt'
--- compizconfig/gsettings/tests/CMakeLists.txt 2012-08-07 06:57:00 +0000
+++ compizconfig/gsettings/tests/CMakeLists.txt 2012-08-07 06:57:01 +0000
@@ -10,6 +10,8 @@
1010
11pkg_check_modules (COMPIZCONFIG_TEST_GSETTINGS libcompizconfig)11pkg_check_modules (COMPIZCONFIG_TEST_GSETTINGS libcompizconfig)
1212
13link_directories (${CMAKE_CURRENT_BINARY_DIR}/../../libcompizconfig/tests)
14
13add_library (compizconfig_ccs_gsettings_wrapper_mock STATIC15add_library (compizconfig_ccs_gsettings_wrapper_mock STATIC
14 ${CMAKE_CURRENT_SOURCE_DIR}/ccs_gsettings_wrapper_mock.cpp16 ${CMAKE_CURRENT_SOURCE_DIR}/ccs_gsettings_wrapper_mock.cpp
15 ${CMAKE_CURRENT_SOURCE_DIR}/ccs_gsettings_wrapper_mock.h)17 ${CMAKE_CURRENT_SOURCE_DIR}/ccs_gsettings_wrapper_mock.h)
@@ -24,7 +26,8 @@
24 ${CMAKE_CURRENT_SOURCE_DIR}/test_gsettings.cpp26 ${CMAKE_CURRENT_SOURCE_DIR}/test_gsettings.cpp
25 ${CMAKE_CURRENT_SOURCE_DIR}/test_gsettings_tests.h)27 ${CMAKE_CURRENT_SOURCE_DIR}/test_gsettings_tests.h)
2628
27link_directories (${CMAKE_CURRENT_BINARY_DIR}/../../libcompizconfig/tests)29add_executable (compizconfig_test_gsettings_conformance
30 ${CMAKE_CURRENT_SOURCE_DIR}/test_gsettings_conformance.cpp)
2831
29target_link_libraries (compizconfig_test_gsettings32target_link_libraries (compizconfig_test_gsettings
30 gsettings_backend_shared33 gsettings_backend_shared
@@ -37,6 +40,9 @@
37 ${GTEST_BOTH_LIBRARIES}40 ${GTEST_BOTH_LIBRARIES}
38 ${GMOCK_MAIN_LIBRARY})41 ${GMOCK_MAIN_LIBRARY})
3942
43configure_file (${CMAKE_CURRENT_SOURCE_DIR}/gsettings-mock-schemas-config.h.in
44 ${CMAKE_CURRENT_BINARY_DIR}/gsettings-mock-schemas-config.h)
45
40add_custom_command (OUTPUT ${CMAKE_BINARY_DIR}/generated/glib-2.0/schemas/org.compiz.mock.gschema.xml46add_custom_command (OUTPUT ${CMAKE_BINARY_DIR}/generated/glib-2.0/schemas/org.compiz.mock.gschema.xml
41 COMMAND cp -r ${CMAKE_CURRENT_SOURCE_DIR}/org.compiz.mock.gschema.xml ${CMAKE_BINARY_DIR}/generated/glib-2.0/schemas/org.compiz.mock.gschema.xml47 COMMAND cp -r ${CMAKE_CURRENT_SOURCE_DIR}/org.compiz.mock.gschema.xml ${CMAKE_BINARY_DIR}/generated/glib-2.0/schemas/org.compiz.mock.gschema.xml
42 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/org.compiz.mock.gschema.xml48 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/org.compiz.mock.gschema.xml
@@ -47,7 +53,17 @@
4753
48add_gsettings_schema_to_recompilation_list (compiz_gsettings_mock_schema)54add_gsettings_schema_to_recompilation_list (compiz_gsettings_mock_schema)
4955
50configure_file (${CMAKE_CURRENT_SOURCE_DIR}/gsettings-mock-schemas-config.h.in56configure_file (${CMAKE_CURRENT_SOURCE_DIR}/backend-conformance-config.h.in
51 ${CMAKE_CURRENT_BINARY_DIR}/gsettings-mock-schemas-config.h)57 ${CMAKE_CURRENT_BINARY_DIR}/backend-conformance-config.h)
58
59target_link_libraries (compizconfig_test_gsettings_conformance
60 gsettings_backend_shared
61 compizconfig_ccs_setting_mock
62 compizconfig_ccs_plugin_mock
63 compizconfig_ccs_context_mock
64 ${COMPIZCONFIG_TEST_GSETTINGS_LIBRARIES}
65 ${GTEST_BOTH_LIBRARIES}
66 ${GMOCK_MAIN_LIBRARY})
5267
53compiz_discover_tests (compizconfig_test_gsettings COVERAGE gsettings_backend_shared)68compiz_discover_tests (compizconfig_test_gsettings COVERAGE gsettings_backend_shared)
69compiz_discover_tests (compizconfig_test_gsettings_conformance COVERAGE gsettings_backend_shared gsettings)
5470
=== added file 'compizconfig/gsettings/tests/backend-conformance-config.h.in'
--- compizconfig/gsettings/tests/backend-conformance-config.h.in 1970-01-01 00:00:00 +0000
+++ compizconfig/gsettings/tests/backend-conformance-config.h.in 2012-08-07 06:57:01 +0000
@@ -0,0 +1,1 @@
1#define BACKEND_BINARY_PATH "@CMAKE_BINARY_DIR@/compizconfig/gsettings"
02
=== added file 'compizconfig/gsettings/tests/org.compiz.mock.gschema.xml'
--- compizconfig/gsettings/tests/org.compiz.mock.gschema.xml 1970-01-01 00:00:00 +0000
+++ compizconfig/gsettings/tests/org.compiz.mock.gschema.xml 2012-08-07 06:57:01 +0000
@@ -0,0 +1,53 @@
1<?xml version="1.0"?>
2<schemalist>
3 <schema id="org.compiz.mock" gettext-domain="compiz">
4 <key type="i" name="integer-setting">
5 <default>0</default>
6 </key>
7 <key type="b" name="boolean-setting">
8 <default>false</default>
9 </key>
10 <key type="d" name="float-setting">
11 <default>0.0</default>
12 </key>
13 <key type="s" name="string-setting">
14 <default>""</default>
15 </key>
16 <key type="s" name="match-setting">
17 <default>""</default>
18 </key>
19 <key type="b" name="bell-setting">
20 <default>false</default>
21 </key>
22 <key type="s" name="color-setting">
23 <default>""</default>
24 </key>
25 <key type="s" name="key-setting">
26 <default>""</default>
27 </key>
28 <key type="s" name="button-setting">
29 <default>""</default>
30 </key>
31 <key type="s" name="edge-setting">
32 <default>""</default>
33 </key>
34 <key type="ai" name="int-list-setting">
35 <default>[0]</default>
36 </key>
37 <key type="ad" name="float-list-setting">
38 <default>[0.0]</default>
39 </key>
40 <key type="ab" name="bool-list-setting">
41 <default>[true]</default>
42 </key>
43 <key type="as" name="string-list-setting">
44 <default>[""]</default>
45 </key>
46 <key type="as" name="match-list-setting">
47 <default>[""]</default>
48 </key>
49 <key type="as" name="color-list-setting">
50 <default>[""]</default>
51 </key>
52 </schema>
53</schemalist>
054
=== removed file 'compizconfig/gsettings/tests/org.compiz.mock.gschema.xml'
--- compizconfig/gsettings/tests/org.compiz.mock.gschema.xml 2012-08-07 06:57:00 +0000
+++ compizconfig/gsettings/tests/org.compiz.mock.gschema.xml 1970-01-01 00:00:00 +0000
@@ -1,53 +0,0 @@
1<?xml version="1.0"?>
2<schemalist>
3 <schema id="org.compiz.mock" gettext-domain="compiz">
4 <key type="i" name="integer-setting">
5 <default>0</default>
6 </key>
7 <key type="b" name="boolean-setting">
8 <default>false</default>
9 </key>
10 <key type="d" name="float-setting">
11 <default>0.0</default>
12 </key>
13 <key type="s" name="string-setting">
14 <default>""</default>
15 </key>
16 <key type="s" name="match-setting">
17 <default>""</default>
18 </key>
19 <key type="b" name="bell-setting">
20 <default>false</default>
21 </key>
22 <key type="s" name="color-setting">
23 <default>""</default>
24 </key>
25 <key type="s" name="key-setting">
26 <default>""</default>
27 </key>
28 <key type="s" name="button-setting">
29 <default>""</default>
30 </key>
31 <key type="s" name="edge-setting">
32 <default>""</default>
33 </key>
34 <key type="ai" name="int-list-setting">
35 <default>[0]</default>
36 </key>
37 <key type="ad" name="float-list-setting">
38 <default>[0.0]</default>
39 </key>
40 <key type="ab" name="bool-list-setting">
41 <default>[true]</default>
42 </key>
43 <key type="as" name="string-list-setting">
44 <default>[""]</default>
45 </key>
46 <key type="as" name="match-list-setting">
47 <default>[""]</default>
48 </key>
49 <key type="as" name="color-list-setting">
50 <default>[""]</default>
51 </key>
52 </schema>
53</schemalist>
540
=== added file 'compizconfig/gsettings/tests/test_gsettings_conformance.cpp'
--- compizconfig/gsettings/tests/test_gsettings_conformance.cpp 1970-01-01 00:00:00 +0000
+++ compizconfig/gsettings/tests/test_gsettings_conformance.cpp 2012-08-07 06:57:01 +0000
@@ -0,0 +1,548 @@
1#include <gtest/gtest.h>
2#include <gmock/gmock.h>
3
4#include <gsettings_util.h>
5
6#include <gio/gio.h>
7
8#include "backend-conformance-config.h"
9#include "gsettings-mock-schemas-config.h"
10
11#include <ccs.h>
12#include <compizconfig_backend_concept_test.h>
13
14#include <iostream>
15
16using ::testing::AtLeast;
17using ::testing::Pointee;
18using ::testing::ReturnNull;
19
20namespace
21{
22 template <typename T>
23 class AutoDestroyHelper
24 {
25 public:
26
27 typedef void (*SimpleDestructor) (T *);
28 typedef boost::shared_ptr <T> TPtr;
29
30 AutoDestroyHelper (T *t,
31 SimpleDestructor d) :
32 mShared (t, boost::bind (d, _1))
33 {
34 }
35
36 operator const TPtr & ()
37 {
38 return mShared;
39 }
40
41 private:
42
43 TPtr mShared;
44 };
45}
46
47class CCSGSettingsBackendEnv :
48 public CCSBackendConceptTestEnvironmentInterface
49{
50 public:
51
52 typedef boost::shared_ptr <GVariant> GVariantShared;
53
54 CCSGSettingsBackendEnv () :
55 pluginToMatch ("mock")
56 {
57 g_type_init ();
58 }
59
60 /* A wrapper to prevent signals from being added */
61 static void connectToSignalWrapper (CCSBackend *backend, CCSGSettingsWrapper *wrapper)
62 {
63 };
64
65 static void registerGConfClientWrapper (CCSBackend *backend)
66 {
67 }
68
69 static void unregisterGConfClientWrapper (CCSBackend *backend)
70 {
71 }
72
73 const CCSBackendInfo * GetInfo ()
74 {
75 return &gsettingsBackendInfo;
76 }
77
78 CCSBackend * SetUp (CCSContext *context, CCSContextGMock *gmockContext)
79 {
80 CCSGSettingsBackendInterface *overloadedInterface = NULL;
81
82 g_setenv ("GSETTINGS_SCHEMA_DIR", MOCK_PATH.c_str (), true);
83 g_setenv ("GSETTINGS_BACKEND", "memory", true);
84 g_setenv ("LIBCOMPIZCONFIG_BACKEND_PATH", BACKEND_BINARY_PATH, true);
85
86 mContext = context;
87
88 std::string path ("gsettings");
89
90 mBackend = reinterpret_cast <CCSDynamicBackend *> (ccsOpenBackend (&ccsDefaultInterfaceTable, mContext, path.c_str ()));
91
92 EXPECT_TRUE (mBackend);
93
94 mGSettingsBackend = ccsDynamicBackendGetRawBackend (mBackend);
95
96 CCSBackendInitFunc backendInit = (GET_INTERFACE (CCSBackendInterface, mBackend))->backendInit;
97
98 if (backendInit)
99 (*backendInit) ((CCSBackend *) mBackend, mContext);
100
101 overloadedInterface = GET_INTERFACE (CCSGSettingsBackendInterface, mGSettingsBackend);
102 overloadedInterface->gsettingsBackendConnectToChangedSignal = CCSGSettingsBackendEnv::connectToSignalWrapper;
103 overloadedInterface->gsettingsBackendRegisterGConfClient = CCSGSettingsBackendEnv::registerGConfClientWrapper;
104 overloadedInterface->gsettingsBackendUnregisterGConfClient = CCSGSettingsBackendEnv::unregisterGConfClientWrapper;
105
106 mSettings = ccsGSettingsGetSettingsObjectForPluginWithPath (mGSettingsBackend, "mock",
107 CharacterWrapper (makeCompizPluginPath (profileName.c_str (), "mock")),
108 mContext);
109
110 ON_CALL (*gmockContext, getProfile ()).WillByDefault (Return (profileName.c_str ()));
111
112 return (CCSBackend *) mBackend;
113 }
114
115 void TearDown (CCSBackend *)
116 {
117 g_unsetenv ("GSETTINGS_SCHEMA_DIR");
118 g_unsetenv ("GSETTINGS_BACKEND");
119 g_unsetenv ("LIBCOMPIZCONFIG_BACKEND_PATH");
120
121 GVariantBuilder noProfilesBuilder;
122 g_variant_builder_init (&noProfilesBuilder, G_VARIANT_TYPE ("as"));
123 g_variant_builder_add (&noProfilesBuilder, "s", "Default");
124 GVariant *noProfiles = g_variant_builder_end (&noProfilesBuilder);
125
126 GVariantBuilder pluginKeysBuilder;
127 g_variant_builder_init (&pluginKeysBuilder, G_VARIANT_TYPE ("as"));
128 g_variant_builder_add (&pluginKeysBuilder, "s", "mock");
129 GVariant *pluginKeys = g_variant_builder_end (&pluginKeysBuilder);
130
131 ccsGSettingsBackendUnsetAllChangedPluginKeysInProfile (mGSettingsBackend,
132 mContext,
133 pluginKeys,
134 ccsGSettingsBackendGetCurrentProfile (
135 mGSettingsBackend));
136 ccsGSettingsBackendClearPluginsWithSetKeys (mGSettingsBackend);
137 ccsGSettingsBackendSetExistingProfiles (mGSettingsBackend, noProfiles);
138 ccsGSettingsBackendSetCurrentProfile (mGSettingsBackend, "Default");
139
140 ccsFreeDynamicBackend (mBackend);
141
142 g_variant_unref (pluginKeys);
143 }
144
145 void AddProfile (const std::string &profile)
146 {
147 ccsGSettingsBackendAddProfile (mGSettingsBackend, profile.c_str ());
148 }
149
150 void SetGetExistingProfilesExpectation (CCSContext *context,
151 CCSContextGMock *gmockContext)
152 {
153 EXPECT_CALL (*gmockContext, getProfile ()).Times (AtLeast (1));
154 }
155
156 void SetDeleteProfileExpectation (const std::string &profileToDelete,
157 CCSContext *context,
158 CCSContextGMock *gmockContext)
159 {
160 EXPECT_CALL (*gmockContext, getProfile ()).Times (AtLeast (1));
161 }
162
163 void SetReadInitExpectation (CCSContext *context,
164 CCSContextGMock *gmockContext)
165 {
166 EXPECT_CALL (*gmockContext, getProfile ()).WillOnce (Return (profileName.c_str ()));
167 }
168
169 void SetReadDoneExpectation (CCSContext *context,
170 CCSContextGMock *gmockContext)
171 {
172 }
173
174 void SetWriteInitExpectation (CCSContext *context,
175 CCSContextGMock *gmockContext)
176 {
177 EXPECT_CALL (*gmockContext, getProfile ()).WillOnce (Return (profileName.c_str ()));
178 }
179
180 void SetWriteDoneExpectation (CCSContext *context,
181 CCSContextGMock *gmockContext)
182 {
183 }
184
185 void PreWrite (CCSContextGMock *gmockContext,
186 CCSPluginGMock *gmockPlugin,
187 CCSSettingGMock *gmockSetting,
188 CCSSettingType type)
189 {
190 EXPECT_CALL (*gmockContext, getIntegrationEnabled ()).WillRepeatedly (Return (FALSE));
191 EXPECT_CALL (*gmockPlugin, getContext ()).Times (AtLeast (1));
192 EXPECT_CALL (*gmockPlugin, getName ()).Times (AtLeast (1));
193 EXPECT_CALL (*gmockSetting, getType ()).Times (AtLeast (1));
194 EXPECT_CALL (*gmockSetting, getName ()).Times (AtLeast (1));
195 EXPECT_CALL (*gmockSetting, getParent ()).Times (AtLeast (1));
196 EXPECT_CALL (*gmockSetting, getIsDefault ()).WillRepeatedly (Return (FALSE));
197
198 if (type == TypeList)
199 EXPECT_CALL (*gmockSetting, getDefaultValue ()).WillRepeatedly (ReturnNull ());
200 }
201
202 void PostWrite (CCSContextGMock *gmockContext,
203 CCSPluginGMock *gmockPlugin,
204 CCSSettingGMock *gmockSetting,
205 CCSSettingType type) {}
206
207 void WriteBoolAtKey (const std::string &plugin,
208 const std::string &key,
209 const VariantTypes &value)
210 {
211 GVariant *variant = NULL;
212 if (writeBoolToVariant (boolToBool (boost::get <bool> (value)), &variant))
213 writeVariantToKey (mSettings, CharacterWrapper (translateKeyForGSettings (key.c_str ())), variant);
214 else
215 throw std::exception ();
216 }
217
218 void WriteIntegerAtKey (const std::string &plugin,
219 const std::string &key,
220 const VariantTypes &value)
221 {
222 GVariant *variant = NULL;
223 if (writeIntToVariant (boost::get <int> (value), &variant))
224 writeVariantToKey (mSettings, CharacterWrapper (translateKeyForGSettings (key.c_str ())), variant);
225 else
226 throw std::exception ();
227 }
228
229 void WriteFloatAtKey (const std::string &plugin,
230 const std::string &key,
231 const VariantTypes &value)
232 {
233 GVariant *variant = NULL;
234 if (writeFloatToVariant (boost::get <float> (value), &variant))
235 writeVariantToKey (mSettings, CharacterWrapper (translateKeyForGSettings (key.c_str ())), variant);
236 else
237 throw std::exception ();
238 }
239
240 void WriteStringAtKey (const std::string &plugin,
241 const std::string &key,
242 const VariantTypes &value)
243 {
244 GVariant *variant = NULL;
245 if (writeStringToVariant (boost::get <const char *> (value), &variant))
246 writeVariantToKey (mSettings, CharacterWrapper (translateKeyForGSettings (key.c_str ())), variant);
247 else
248 throw std::exception ();
249 }
250
251 void WriteColorAtKey (const std::string &plugin,
252 const std::string &key,
253 const VariantTypes &value)
254 {
255 GVariant *variant = NULL;
256 if (writeColorToVariant (boost::get <CCSSettingColorValue> (value), &variant))
257 writeVariantToKey (mSettings, CharacterWrapper (translateKeyForGSettings (key.c_str ())), variant);
258 else
259 throw std::exception ();
260 }
261
262 void WriteKeyAtKey (const std::string &plugin,
263 const std::string &key,
264 const VariantTypes &value)
265 {
266 GVariant *variant = NULL;
267 if (writeKeyToVariant (boost::get <CCSSettingKeyValue> (value), &variant))
268 writeVariantToKey (mSettings, CharacterWrapper (translateKeyForGSettings (key.c_str ())), variant);
269 else
270 throw std::exception ();
271 }
272
273 void WriteButtonAtKey (const std::string &plugin,
274 const std::string &key,
275 const VariantTypes &value)
276 {
277 GVariant *variant = NULL;
278 if (writeButtonToVariant (boost::get <CCSSettingButtonValue> (value), &variant))
279 writeVariantToKey (mSettings, CharacterWrapper (translateKeyForGSettings (key.c_str ())), variant);
280 else
281 throw std::exception ();
282 }
283
284 void WriteEdgeAtKey (const std::string &plugin,
285 const std::string &key,
286 const VariantTypes &value)
287 {
288 GVariant *variant = NULL;
289 if (writeEdgeToVariant (boost::get <unsigned int> (value), &variant))
290 writeVariantToKey (mSettings, CharacterWrapper (translateKeyForGSettings (key.c_str ())), variant);
291 else
292 throw std::exception ();
293 }
294
295 void WriteMatchAtKey (const std::string &plugin,
296 const std::string &key,
297 const VariantTypes &value)
298 {
299 GVariant *variant = NULL;
300 if (writeStringToVariant (boost::get <const char *> (value), &variant))
301 writeVariantToKey (mSettings, CharacterWrapper (translateKeyForGSettings (key.c_str ())), variant);
302 else
303 throw std::exception ();
304 }
305
306 void WriteBellAtKey (const std::string &plugin,
307 const std::string &key,
308 const VariantTypes &value)
309 {
310 GVariant *variant = NULL;
311 if (writeBoolToVariant (boolToBool (boost::get <bool> (value)), &variant))
312 writeVariantToKey (mSettings, CharacterWrapper (translateKeyForGSettings (key.c_str ())), variant);
313 else
314 throw std::exception ();
315 }
316
317 void WriteListAtKey (const std::string &plugin,
318 const std::string &key,
319 const VariantTypes &value)
320 {
321 GVariant *variant = NULL;
322
323 const CCSListWrapper::Ptr &lw (boost::get <CCSListWrapper::Ptr> (value));
324
325 if (writeListValue (*lw, lw->type (), &variant))
326 writeVariantToKey (mSettings, CharacterWrapper (translateKeyForGSettings (key.c_str ())), variant);
327 else
328 throw std::exception ();
329 }
330
331 void PreRead (CCSContextGMock *gmockContext,
332 CCSPluginGMock *gmockPlugin,
333 CCSSettingGMock *gmockSetting,
334 CCSSettingType type)
335 {
336 EXPECT_CALL (*gmockContext, getIntegrationEnabled ()).WillOnce (Return (FALSE));
337 EXPECT_CALL (*gmockPlugin, getContext ()).Times (AtLeast (1));
338 EXPECT_CALL (*gmockPlugin, getName ()).Times (AtLeast (1));
339 EXPECT_CALL (*gmockSetting, getType ()).Times (AtLeast (1));
340 EXPECT_CALL (*gmockSetting, getName ()).Times (AtLeast (1));
341 EXPECT_CALL (*gmockSetting, getParent ()).Times (AtLeast (1));
342 EXPECT_CALL (*gmockSetting, isReadOnly ()).WillRepeatedly (Return (FALSE));
343
344 if (type == TypeList)
345 {
346 EXPECT_CALL (*gmockSetting, getInfo ()).Times (AtLeast (1));
347 EXPECT_CALL (*gmockSetting, getDefaultValue ()).WillRepeatedly (ReturnNull ());
348 }
349 }
350
351 void PostRead (CCSContextGMock *gmockContext,
352 CCSPluginGMock *gmockPlugin,
353 CCSSettingGMock *gmockSetting,
354 CCSSettingType type) {}
355
356 Bool ReadBoolAtKey (const std::string &plugin,
357 const std::string &key)
358 {
359 GVariantShared variant (ReadVariantAtKeyToShared (plugin,
360 key,
361 TypeBool));
362 return readBoolFromVariant (variant.get ());
363 }
364
365 int ReadIntegerAtKey (const std::string &plugin,
366 const std::string &key)
367 {
368 GVariantShared variant (ReadVariantAtKeyToShared (plugin,
369 key,
370 TypeInt));
371 return readIntFromVariant (variant.get ());
372 }
373
374 float ReadFloatAtKey (const std::string &plugin,
375 const std::string &key)
376 {
377 GVariantShared variant (ReadVariantAtKeyToShared (plugin,
378 key,
379 TypeFloat));
380 return readFloatFromVariant (variant.get ());
381 }
382
383 const char * ReadStringAtKey (const std::string &plugin,
384 const std::string &key)
385 {
386 GVariantShared variant (ReadVariantAtKeyToShared (plugin,
387 key,
388 TypeString));
389 return readStringFromVariant (variant.get ());
390 }
391
392 CCSSettingColorValue ReadColorAtKey (const std::string &plugin,
393 const std::string &key)
394 {
395 Bool success = FALSE;
396 GVariantShared variant (ReadVariantAtKeyToShared (plugin,
397 key,
398 TypeColor));
399 CCSSettingColorValue value = readColorFromVariant (variant.get (), &success);
400 EXPECT_TRUE (success);
401 return value;
402 }
403
404 CCSSettingKeyValue ReadKeyAtKey (const std::string &plugin,
405 const std::string &key)
406 {
407 Bool success = FALSE;
408 GVariantShared variant (ReadVariantAtKeyToShared (plugin,
409 key,
410 TypeKey));
411 CCSSettingKeyValue value = readKeyFromVariant (variant.get (), &success);
412 EXPECT_TRUE (success);
413 return value;
414 }
415
416 CCSSettingButtonValue ReadButtonAtKey (const std::string &plugin,
417 const std::string &key)
418 {
419 Bool success = FALSE;
420 GVariantShared variant (ReadVariantAtKeyToShared (plugin,
421 key,
422 TypeButton));
423 CCSSettingButtonValue value = readButtonFromVariant (variant.get (), &success);
424 EXPECT_TRUE (success);
425 return value;
426 }
427
428 unsigned int ReadEdgeAtKey (const std::string &plugin,
429 const std::string &key)
430 {
431 GVariantShared variant (ReadVariantAtKeyToShared (plugin,
432 key,
433 TypeEdge));
434 return readEdgeFromVariant (variant.get ());
435 }
436
437 const char * ReadMatchAtKey (const std::string &plugin,
438 const std::string &key)
439 {
440 GVariantShared variant (ReadVariantAtKeyToShared (plugin,
441 key,
442 TypeMatch));
443 return readStringFromVariant (variant.get ());
444 }
445
446 Bool ReadBellAtKey (const std::string &plugin,
447 const std::string &key)
448 {
449 GVariantShared variant (ReadVariantAtKeyToShared (plugin,
450 key,
451 TypeBell));
452 return readBoolFromVariant (variant.get ());
453 }
454
455 CCSSettingValueList ReadListAtKey (const std::string &plugin,
456 const std::string &key,
457 CCSSetting *setting)
458 {
459 GVariantShared variant (ReadVariantAtKeyToShared (plugin,
460 key,
461 TypeList));
462 return readListValue (variant.get (), setting, &ccsDefaultObjectAllocator);
463 }
464
465 void PreUpdate (CCSContextGMock *gmockContext,
466 CCSPluginGMock *gmockPlugin,
467 CCSSettingGMock *gmockSetting,
468 CCSSettingType type)
469 {
470 EXPECT_CALL (*gmockContext, getIntegrationEnabled ()).WillOnce (Return (FALSE));
471 EXPECT_CALL (*gmockPlugin, getContext ()).Times (AtLeast (1));
472 EXPECT_CALL (*gmockPlugin, getName ()).Times (AtLeast (1));
473 EXPECT_CALL (*gmockSetting, getType ()).Times (AtLeast (1));
474 EXPECT_CALL (*gmockSetting, getName ()).Times (AtLeast (1));
475 EXPECT_CALL (*gmockSetting, getParent ()).Times (AtLeast (1));
476 EXPECT_CALL (*gmockSetting, isReadOnly ()).WillRepeatedly (Return (FALSE));
477
478 if (type == TypeList)
479 {
480 EXPECT_CALL (*gmockSetting, getInfo ()).Times (AtLeast (1));
481 EXPECT_CALL (*gmockSetting, getDefaultValue ()).WillRepeatedly (ReturnNull ());
482 }
483
484 EXPECT_CALL (*gmockContext, getProfile ());
485 }
486
487 void PostUpdate (CCSContextGMock *gmockContext,
488 CCSPluginGMock *gmockPlugin,
489 CCSSettingGMock *gmockSetting,
490 CCSSettingType type) {}
491
492 bool UpdateSettingAtKey (const std::string &plugin,
493 const std::string &setting)
494 {
495 CharacterWrapper keyName (translateKeyForGSettings (setting.c_str ()));
496
497 if (updateSettingWithGSettingsKeyName (reinterpret_cast <CCSBackend *> (mGSettingsBackend), mSettings, keyName, ccsBackendUpdateSetting))
498 return true;
499
500 return false;
501 }
502
503 private:
504
505 GVariantShared
506 ReadVariantAtKeyToShared (const std::string &plugin,
507 const std::string &key,
508 CCSSettingType type)
509 {
510 CharacterWrapper translatedKey (translateKeyForGSettings (key.c_str ()));
511 CharacterWrapper pluginPath (makeCompizPluginPath (profileName.c_str (),
512 plugin.c_str ()));
513
514 GVariant *rawVariant = getVariantAtKey (mSettings,
515 translatedKey,
516 pluginPath,
517 type);
518
519 GVariantShared shared (AutoDestroyHelper <GVariant> (rawVariant,
520 g_variant_unref));
521
522
523
524 return shared;
525 }
526
527 CCSGSettingsWrapper *mSettings;
528 CCSContext *mContext;
529 CCSDynamicBackend *mBackend;
530 CCSBackend *mGSettingsBackend;
531 std::string pluginToMatch;
532
533 static const std::string profileName;
534};
535
536const std::string CCSGSettingsBackendEnv::profileName = "mock";
537
538INSTANTIATE_TEST_CASE_P (CCSGSettingsBackendConcept, CCSBackendConformanceTestReadWrite,
539 compizconfig::test::GenerateTestingParametersForBackendInterface <CCSGSettingsBackendEnv> ());
540
541INSTANTIATE_TEST_CASE_P (CCSGSettingsBackendConcept, CCSBackendConformanceTestInfo,
542 compizconfig::test::GenerateTestingEnvFactoryBackendInterface <CCSGSettingsBackendEnv> ());
543
544INSTANTIATE_TEST_CASE_P (CCSGSettingsBackendConcept, CCSBackendConformanceTestInitFiniFuncs,
545 compizconfig::test::GenerateTestingEnvFactoryBackendInterface <CCSGSettingsBackendEnv> ());
546
547INSTANTIATE_TEST_CASE_P (CCSGSettingsBackendConcept, CCSBackendConformanceTestProfileHandling,
548 compizconfig::test::GenerateTestingEnvFactoryBackendInterface <CCSGSettingsBackendEnv> ());
0549
=== modified file 'compizconfig/libcompizconfig/config/CMakeLists.txt'
--- compizconfig/libcompizconfig/config/CMakeLists.txt 2012-05-24 06:48:55 +0000
+++ compizconfig/libcompizconfig/config/CMakeLists.txt 2012-08-07 06:57:01 +0000
@@ -1,6 +1,9 @@
1set (_config_file1set (_config_file
2 config)2 config)
33
4configure_file (${CMAKE_CURRENT_SOURCE_DIR}/config_test
5 ${CMAKE_CURRENT_BINARY_DIR}/compiz-1/compizconfig/config)
6
4compiz_opt_install_file (${CMAKE_CURRENT_SOURCE_DIR}/${_config_file} ${COMPIZ_SYSCONFDIR}/compizconfig/${_config_file})7compiz_opt_install_file (${CMAKE_CURRENT_SOURCE_DIR}/${_config_file} ${COMPIZ_SYSCONFDIR}/compizconfig/${_config_file})
58
6add_custom_target (9add_custom_target (
710
=== added file 'compizconfig/libcompizconfig/config/config_test'
--- compizconfig/libcompizconfig/config/config_test 1970-01-01 00:00:00 +0000
+++ compizconfig/libcompizconfig/config/config_test 2012-08-07 06:57:01 +0000
@@ -0,0 +1,3 @@
1[general]
2backend = ini
3plugin_list_autosort = true

Subscribers

People subscribed via source and target branches