Merge lp:~compiz-team/compiz/compiz.gsettings_conformance_test into lp:compiz/0.9.8
- compiz.gsettings_conformance_test
- Merge into 0.9.8
Status: | Superseded |
---|---|
Proposed branch: | lp:~compiz-team/compiz/compiz.gsettings_conformance_test |
Merge into: | lp:compiz/0.9.8 |
Prerequisite: | lp:~compiz-team/compiz/compiz.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.gsettings_conformance_test |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Compiz Maintainers | Pending | ||
Review via email: mp+116132@code.launchpad.net |
This proposal supersedes a proposal from 2012-07-12.
This proposal has been superseded by a proposal from 2012-08-07.
Commit message
Description of the change
Instantiate the GSettings backend in a test harness and run the conformance tests on it.
This is not actually needing review, I've just got it marked as Needs Review so that the CI bot will run tests on it.
- 3397. By Sam Spilsbury
-
Always assume that lists are copied - fix list leak (and use smart
pointers more effectively) - 3398. By Sam Spilsbury
-
Fix leaked path in CCSGSettingsBac
kendEnv: :SetUp - 3399. By Sam Spilsbury
-
Fix memory leak in readListValue in gsettings.c - we must always
provide a valid CCSSetting object otherwise ccsFreeSettingValue will not
actually free the setting value - 3400. By Sam Spilsbury
-
Fix various memory leaks due to not unreffing some variants
Sam Spilsbury (smspillaz) wrote : | # |
- 3401. By Sam Spilsbury
-
Added debugging message
- 3402. By Sam Spilsbury
-
Put the expectation in the right place
- 3403. By Sam Spilsbury
-
Indirect the gconf client registration
- 3404. By Sam Spilsbury
-
Neuter gconf client connection
- 3405. By Sam Spilsbury
-
Lazy-register the gconf client
- 3406. By Sam Spilsbury
-
file (INSTALL ...) will respect DESTDIR by default, so no need to include
it again. - 3407. By Sam Spilsbury
-
Fix some crashes in debian chroots
- 3408. By Sam Spilsbury
-
Make the profile general for tests
- 3409. By Sam Spilsbury
-
Added testing config backend
- 3410. By Sam Spilsbury
-
Merge lp:compiz
- 3411. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3412. By Sam Spilsbury
-
Merge
- 3413. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3414. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3415. By Sam Spilsbury
-
Merge
- 3416. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3417. By Sam Spilsbury
-
Merge
- 3418. By Sam Spilsbury
-
Added a quick TODO about the usage of sys.path
- 3419. By Sam Spilsbury
-
Just override sys.path[0] for now, need to prepend
- 3420. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3421. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3422. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3423. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3424. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3425. By Sam Spilsbury
-
Merge
- 3426. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3427. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3428. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3429. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3430. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3431. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3432. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3433. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3434. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3435. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3436. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3437. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3438. By Sam Spilsbury
-
Merge from previous. All the GSettings backend tests fail but that's fine
- 3439. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3440. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3441. By Sam Spilsbury
-
Fix crashing GSettings tests
- 3442. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3443. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3444. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3445. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3446. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3447. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3448. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3449. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3450. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3451. By Sam Spilsbury
-
Merge
- 3452. By Sam Spilsbury
-
Nuke unused function in header file
- 3453. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3454. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3455. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3456. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3457. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3458. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3459. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3460. By Sam Spilsbury
-
Merge
- 3461. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3462. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3463. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3464. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3465. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3466. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3467. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3468. By Sam Spilsbury
-
Moved CharacterWrapper definition into tests/shared/
gtest_shared_ characterwrappe r.h - 3469. By Sam Spilsbury
-
Merge
- 3470. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3471. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3472. By Sam Spilsbury
-
Merge
- 3473. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3474. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3475. By Sam Spilsbury
-
Fix merge marker
- 3476. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3477. By Sam Spilsbury
-
Add match-list-setting to the mock schema
- 3478. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3479. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3480. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3481. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3482. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3483. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3484. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3485. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3486. By Sam Spilsbury
-
Enable info tests for gsettigs
- 3487. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3488. By Sam Spilsbury
-
Use the much more sensible, law of demeter friendly version
- 3489. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3490. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3491. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3492. By Sam Spilsbury
-
Added expectation stubs and fix crash
- 3493. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3494. By Sam Spilsbury
-
Instantiate the tests and set the right expectations
- 3495. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3496. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3497. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3498. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3499. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3500. By Sam Spilsbury
-
Pass the object allocator too
- 3501. By Sam Spilsbury
-
First steps to getting the wrapper under test
- 3502. By Sam Spilsbury
-
Merge
- 3503. By Sam Spilsbury
-
Merge
- 3504. By Sam Spilsbury
-
Backend conformance config really belongs in gsettings
- 3505. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3506. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3507. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3508. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3509. By Sam Spilsbury
-
Update for API changes
- 3510. By Sam Spilsbury
-
Merge and remove redundant code
- 3511. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3512. By Sam Spilsbury
-
Test fixture for CCSGSettingsTes
tFindSettingAnd PluginToUpdateF romPath - 3513. By Sam Spilsbury
-
Comprehensive test coverage for FindSettingAndP
luginToUpdateFr omPath
and some cleanup, fix leaks etc - 3514. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3515. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3516. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3517. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3518. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3519. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3520. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3521. By Sam Spilsbury
-
Added stubs for tests, fixed double unrefs due to GSettings' really
annoying stealing behaviour - 3522. By Sam Spilsbury
-
Instantiate the CCSBackendConfo
rmanceTestProfi leHandling suite for
the GSettings backend conformance test - 3523. By Sam Spilsbury
-
Fix more double unref
- 3524. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3525. By Sam Spilsbury
-
Added AddProfile stub
- 3526. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3527. By Sam Spilsbury
-
Add default and current profiles correctly
- 3528. By Sam Spilsbury
-
Handle default and current profile cases in the tests a little better
- 3529. By Sam Spilsbury
-
Merge
- 3530. By Sam Spilsbury
-
Merge
- 3531. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3532. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3533. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3534. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3535. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3536. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3537. By Sam Spilsbury
-
Correct expectations
- 3538. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3539. By Sam Spilsbury
-
Merge
- 3540. By Sam Spilsbury
-
Fixed a set of memory leaks in the GSettings conformance tests - we must
be careful to unref the variants once they are read - 3541. By Sam Spilsbury
-
Merge
- 3542. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3543. By Sam Spilsbury
-
Remove dupe file
- 3544. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3545. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3546. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test. - 3547. By Sam Spilsbury
-
Merged compiz.
split_gsettings _rw_funcs into compiz. gsettings_ conformance_ test.
Unmerged revisions
Preview Diff
1 | === modified file 'compizconfig/compizconfig-python/tests/compiz_config_test.py' |
2 | --- compizconfig/compizconfig-python/tests/compiz_config_test.py 2012-07-07 05:53:00 +0000 |
3 | +++ compizconfig/compizconfig-python/tests/compiz_config_test.py 2012-08-06 14:57:34 +0000 |
4 | @@ -5,10 +5,13 @@ |
5 | arch = subprocess.Popen (["uname", "-p"], stdout=subprocess.PIPE).communicate ()[0][:-1] |
6 | |
7 | os.environ["COMPIZ_METADATA_PATH"] = "generated/" |
8 | +os.environ["COMPIZ_CONFIG_PROFILE"] = "" |
9 | +os.environ["XDG_CONFIG_HOME"] = "compizconfig/libcompizconfig/config" |
10 | os.environ["LIBCOMPIZCONFIG_BACKEND_PATH"] = "compizconfig/libcompizconfig/backend/" |
11 | os.environ["XDG_DATA_DIRS"] = "generated/" |
12 | |
13 | -sys.path.append ("compizconfig/compizconfig-python/build/lib.linux-" + arch + "-" + str (sys.version_info[0]) + "." + str (sys.version_info[1]) + "/") |
14 | +# TODO: does this really work ? |
15 | +sys.path[0] = "compizconfig/compizconfig-python/build/lib.linux-" + arch + "-" + str (sys.version_info[0]) + "." + str (sys.version_info[1]) + "/" |
16 | |
17 | import unittest |
18 | import compizconfig |
19 | |
20 | === modified file 'compizconfig/gsettings/gsettings_backend_shared/gsettings_util.c' |
21 | --- compizconfig/gsettings/gsettings_backend_shared/gsettings_util.c 2012-08-06 14:57:33 +0000 |
22 | +++ compizconfig/gsettings/gsettings_backend_shared/gsettings_util.c 2012-08-06 14:57:34 +0000 |
23 | @@ -944,13 +944,21 @@ |
24 | const char *item; |
25 | } FindItemInVariantData; |
26 | |
27 | +typedef struct _InsertIfNotEqualData |
28 | +{ |
29 | + gboolean skipped; |
30 | + const char *item; |
31 | +} InsertIfNotEqualData; |
32 | + |
33 | static void |
34 | insertIfNotEqual (GVariantBuilder *builder, const char *item, void *userData) |
35 | { |
36 | - const char *cmp = (const char *) userData; |
37 | + InsertIfNotEqualData *data = (InsertIfNotEqualData *) userData; |
38 | |
39 | - if (g_strcmp0 (item, cmp)) |
40 | + if (g_strcmp0 (item, data->item)) |
41 | g_variant_builder_add (builder, "s", item); |
42 | + else |
43 | + data->skipped = TRUE; |
44 | } |
45 | |
46 | static void |
47 | @@ -1003,18 +1011,25 @@ |
48 | return !findItemData.found; |
49 | } |
50 | |
51 | -void |
52 | -removeItemFromVariant (GVariant **variant, |
53 | - const char *string) |
54 | +gboolean removeItemFromVariant (GVariant **variant, |
55 | + const char *string) |
56 | { |
57 | GVariantBuilder newVariantBuilder; |
58 | |
59 | + InsertIfNotEqualData data = |
60 | + { |
61 | + FALSE, |
62 | + string |
63 | + }; |
64 | + |
65 | g_variant_builder_init (&newVariantBuilder, G_VARIANT_TYPE ("as")); |
66 | |
67 | - rebuildVariant (&newVariantBuilder, *variant, insertIfNotEqual, (void *) string); |
68 | + rebuildVariant (&newVariantBuilder, *variant, insertIfNotEqual, (void *) &data); |
69 | |
70 | g_variant_unref (*variant); |
71 | *variant = g_variant_builder_end (&newVariantBuilder); |
72 | + |
73 | + return data.skipped; |
74 | } |
75 | |
76 | void |
77 | @@ -1109,6 +1124,7 @@ |
78 | GVariant *plugins; |
79 | GVariant *profiles; |
80 | const char *currentProfile = ccsGSettingsBackendGetCurrentProfile (backend); |
81 | + gboolean ret = FALSE; |
82 | |
83 | plugins = ccsGSettingsBackendGetPluginsWithSetKeys (backend); |
84 | profiles = ccsGSettingsBackendGetExistingProfiles (backend); |
85 | @@ -1116,18 +1132,17 @@ |
86 | ccsGSettingsBackendUnsetAllChangedPluginKeysInProfile (backend, context, plugins, currentProfile); |
87 | ccsGSettingsBackendClearPluginsWithSetKeys (backend); |
88 | |
89 | - removeItemFromVariant (&profiles, profile); |
90 | + ret = removeItemFromVariant (&profiles, profile); |
91 | |
92 | /* Remove the profile from existing-profiles */ |
93 | ccsGSettingsBackendSetExistingProfiles (backend, profiles); |
94 | - |
95 | ccsGSettingsBackendUpdateProfile (backend, context); |
96 | |
97 | /* Since we do not call g_settings_set_value on |
98 | * plugins, we must also unref the variant */ |
99 | g_variant_unref (plugins); |
100 | |
101 | - return TRUE; |
102 | + return ret; |
103 | } |
104 | |
105 | void |
106 | |
107 | === modified file 'compizconfig/gsettings/gsettings_backend_shared/gsettings_util.h' |
108 | --- compizconfig/gsettings/gsettings_backend_shared/gsettings_util.h 2012-08-06 14:57:33 +0000 |
109 | +++ compizconfig/gsettings/gsettings_backend_shared/gsettings_util.h 2012-08-06 14:57:34 +0000 |
110 | @@ -203,9 +203,8 @@ |
111 | appendStringToVariantIfUnique (GVariant **variant, |
112 | const char *string); |
113 | |
114 | -void |
115 | -removeItemFromVariant (GVariant **variant, |
116 | - const char *string); |
117 | +gboolean removeItemFromVariant (GVariant **variant, |
118 | + const char *string); |
119 | |
120 | CCSSettingValueList |
121 | readBoolListValue (GVariantIter *iter, guint nItems, CCSSetting *setting, CCSObjectAllocationInterface *allocator); |
122 | |
123 | === modified file 'compizconfig/gsettings/src/gsettings.c' |
124 | --- compizconfig/gsettings/src/gsettings.c 2012-08-06 14:57:33 +0000 |
125 | +++ compizconfig/gsettings/src/gsettings.c 2012-08-06 14:57:34 +0000 |
126 | @@ -776,6 +776,9 @@ |
127 | |
128 | CCSGSettingsBackendPrivate *priv = (CCSGSettingsBackendPrivate *) ccsObjectGetPrivate (backend); |
129 | |
130 | + /* Update the current profile in case it was changed compizconfig side */ |
131 | + ccsGSettingsBackendUpdateProfile (backend, context); |
132 | + |
133 | value = ccsGSettingsWrapperGetValue (priv->compizconfigSettings, "existing-profiles"); |
134 | g_variant_iter_init (&iter, value); |
135 | while (g_variant_iter_loop (&iter, "s", &profile)) |
136 | |
137 | === modified file 'compizconfig/gsettings/tests/CMakeLists.txt' |
138 | --- compizconfig/gsettings/tests/CMakeLists.txt 2012-08-06 14:57:33 +0000 |
139 | +++ compizconfig/gsettings/tests/CMakeLists.txt 2012-08-06 14:57:34 +0000 |
140 | @@ -10,6 +10,8 @@ |
141 | |
142 | pkg_check_modules (COMPIZCONFIG_TEST_GSETTINGS libcompizconfig) |
143 | |
144 | +link_directories (${CMAKE_CURRENT_BINARY_DIR}/../../libcompizconfig/tests) |
145 | + |
146 | add_library (compizconfig_ccs_gsettings_wrapper_mock STATIC |
147 | ${CMAKE_CURRENT_SOURCE_DIR}/ccs_gsettings_wrapper_mock.cpp |
148 | ${CMAKE_CURRENT_SOURCE_DIR}/ccs_gsettings_wrapper_mock.h) |
149 | @@ -24,7 +26,8 @@ |
150 | ${CMAKE_CURRENT_SOURCE_DIR}/test_gsettings.cpp |
151 | ${CMAKE_CURRENT_SOURCE_DIR}/test_gsettings_tests.h) |
152 | |
153 | -link_directories (${CMAKE_CURRENT_BINARY_DIR}/../../libcompizconfig/tests) |
154 | +add_executable (compizconfig_test_gsettings_conformance |
155 | + ${CMAKE_CURRENT_SOURCE_DIR}/test_gsettings_conformance.cpp) |
156 | |
157 | target_link_libraries (compizconfig_test_gsettings |
158 | gsettings_backend_shared |
159 | @@ -37,6 +40,9 @@ |
160 | ${GTEST_BOTH_LIBRARIES} |
161 | ${GMOCK_MAIN_LIBRARY}) |
162 | |
163 | +configure_file (${CMAKE_CURRENT_SOURCE_DIR}/gsettings-mock-schemas-config.h.in |
164 | + ${CMAKE_CURRENT_BINARY_DIR}/gsettings-mock-schemas-config.h) |
165 | + |
166 | add_custom_command (OUTPUT ${CMAKE_BINARY_DIR}/generated/glib-2.0/schemas/org.compiz.mock.gschema.xml |
167 | 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 |
168 | DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/org.compiz.mock.gschema.xml |
169 | @@ -47,7 +53,17 @@ |
170 | |
171 | add_gsettings_schema_to_recompilation_list (compiz_gsettings_mock_schema) |
172 | |
173 | -configure_file (${CMAKE_CURRENT_SOURCE_DIR}/gsettings-mock-schemas-config.h.in |
174 | - ${CMAKE_CURRENT_BINARY_DIR}/gsettings-mock-schemas-config.h) |
175 | +configure_file (${CMAKE_CURRENT_SOURCE_DIR}/backend-conformance-config.h.in |
176 | + ${CMAKE_CURRENT_BINARY_DIR}/backend-conformance-config.h) |
177 | + |
178 | +target_link_libraries (compizconfig_test_gsettings_conformance |
179 | + gsettings_backend_shared |
180 | + compizconfig_ccs_setting_mock |
181 | + compizconfig_ccs_plugin_mock |
182 | + compizconfig_ccs_context_mock |
183 | + ${COMPIZCONFIG_TEST_GSETTINGS_LIBRARIES} |
184 | + ${GTEST_BOTH_LIBRARIES} |
185 | + ${GMOCK_MAIN_LIBRARY}) |
186 | |
187 | compiz_discover_tests (compizconfig_test_gsettings COVERAGE gsettings_backend_shared) |
188 | +compiz_discover_tests (compizconfig_test_gsettings_conformance COVERAGE gsettings_backend_shared gsettings) |
189 | |
190 | === added file 'compizconfig/gsettings/tests/backend-conformance-config.h.in' |
191 | --- compizconfig/gsettings/tests/backend-conformance-config.h.in 1970-01-01 00:00:00 +0000 |
192 | +++ compizconfig/gsettings/tests/backend-conformance-config.h.in 2012-08-06 14:57:34 +0000 |
193 | @@ -0,0 +1,1 @@ |
194 | +#define BACKEND_BINARY_PATH "@CMAKE_BINARY_DIR@/compizconfig/gsettings" |
195 | |
196 | === added file 'compizconfig/gsettings/tests/org.compiz.mock.gschema.xml' |
197 | --- compizconfig/gsettings/tests/org.compiz.mock.gschema.xml 1970-01-01 00:00:00 +0000 |
198 | +++ compizconfig/gsettings/tests/org.compiz.mock.gschema.xml 2012-08-06 14:57:34 +0000 |
199 | @@ -0,0 +1,53 @@ |
200 | +<?xml version="1.0"?> |
201 | +<schemalist> |
202 | + <schema id="org.compiz.mock" gettext-domain="compiz"> |
203 | + <key type="i" name="integer-setting"> |
204 | + <default>0</default> |
205 | + </key> |
206 | + <key type="b" name="boolean-setting"> |
207 | + <default>false</default> |
208 | + </key> |
209 | + <key type="d" name="float-setting"> |
210 | + <default>0.0</default> |
211 | + </key> |
212 | + <key type="s" name="string-setting"> |
213 | + <default>""</default> |
214 | + </key> |
215 | + <key type="s" name="match-setting"> |
216 | + <default>""</default> |
217 | + </key> |
218 | + <key type="b" name="bell-setting"> |
219 | + <default>false</default> |
220 | + </key> |
221 | + <key type="s" name="color-setting"> |
222 | + <default>""</default> |
223 | + </key> |
224 | + <key type="s" name="key-setting"> |
225 | + <default>""</default> |
226 | + </key> |
227 | + <key type="s" name="button-setting"> |
228 | + <default>""</default> |
229 | + </key> |
230 | + <key type="s" name="edge-setting"> |
231 | + <default>""</default> |
232 | + </key> |
233 | + <key type="ai" name="int-list-setting"> |
234 | + <default>[0]</default> |
235 | + </key> |
236 | + <key type="ad" name="float-list-setting"> |
237 | + <default>[0.0]</default> |
238 | + </key> |
239 | + <key type="ab" name="bool-list-setting"> |
240 | + <default>[true]</default> |
241 | + </key> |
242 | + <key type="as" name="string-list-setting"> |
243 | + <default>[""]</default> |
244 | + </key> |
245 | + <key type="as" name="match-list-setting"> |
246 | + <default>[""]</default> |
247 | + </key> |
248 | + <key type="as" name="color-list-setting"> |
249 | + <default>[""]</default> |
250 | + </key> |
251 | + </schema> |
252 | +</schemalist> |
253 | |
254 | === removed file 'compizconfig/gsettings/tests/org.compiz.mock.gschema.xml' |
255 | --- compizconfig/gsettings/tests/org.compiz.mock.gschema.xml 2012-08-06 14:57:33 +0000 |
256 | +++ compizconfig/gsettings/tests/org.compiz.mock.gschema.xml 1970-01-01 00:00:00 +0000 |
257 | @@ -1,53 +0,0 @@ |
258 | -<?xml version="1.0"?> |
259 | -<schemalist> |
260 | - <schema id="org.compiz.mock" gettext-domain="compiz"> |
261 | - <key type="i" name="integer-setting"> |
262 | - <default>0</default> |
263 | - </key> |
264 | - <key type="b" name="boolean-setting"> |
265 | - <default>false</default> |
266 | - </key> |
267 | - <key type="d" name="float-setting"> |
268 | - <default>0.0</default> |
269 | - </key> |
270 | - <key type="s" name="string-setting"> |
271 | - <default>""</default> |
272 | - </key> |
273 | - <key type="s" name="match-setting"> |
274 | - <default>""</default> |
275 | - </key> |
276 | - <key type="b" name="bell-setting"> |
277 | - <default>false</default> |
278 | - </key> |
279 | - <key type="s" name="color-setting"> |
280 | - <default>""</default> |
281 | - </key> |
282 | - <key type="s" name="key-setting"> |
283 | - <default>""</default> |
284 | - </key> |
285 | - <key type="s" name="button-setting"> |
286 | - <default>""</default> |
287 | - </key> |
288 | - <key type="s" name="edge-setting"> |
289 | - <default>""</default> |
290 | - </key> |
291 | - <key type="ai" name="int-list-setting"> |
292 | - <default>[0]</default> |
293 | - </key> |
294 | - <key type="ad" name="float-list-setting"> |
295 | - <default>[0.0]</default> |
296 | - </key> |
297 | - <key type="ab" name="bool-list-setting"> |
298 | - <default>[true]</default> |
299 | - </key> |
300 | - <key type="as" name="string-list-setting"> |
301 | - <default>[""]</default> |
302 | - </key> |
303 | - <key type="as" name="match-list-setting"> |
304 | - <default>[""]</default> |
305 | - </key> |
306 | - <key type="as" name="color-list-setting"> |
307 | - <default>[""]</default> |
308 | - </key> |
309 | - </schema> |
310 | -</schemalist> |
311 | |
312 | === added file 'compizconfig/gsettings/tests/test_gsettings_conformance.cpp' |
313 | --- compizconfig/gsettings/tests/test_gsettings_conformance.cpp 1970-01-01 00:00:00 +0000 |
314 | +++ compizconfig/gsettings/tests/test_gsettings_conformance.cpp 2012-08-06 14:57:34 +0000 |
315 | @@ -0,0 +1,548 @@ |
316 | +#include <gtest/gtest.h> |
317 | +#include <gmock/gmock.h> |
318 | + |
319 | +#include <gsettings_util.h> |
320 | + |
321 | +#include <gio/gio.h> |
322 | + |
323 | +#include "backend-conformance-config.h" |
324 | +#include "gsettings-mock-schemas-config.h" |
325 | + |
326 | +#include <ccs.h> |
327 | +#include <compizconfig_backend_concept_test.h> |
328 | + |
329 | +#include <iostream> |
330 | + |
331 | +using ::testing::AtLeast; |
332 | +using ::testing::Pointee; |
333 | +using ::testing::ReturnNull; |
334 | + |
335 | +namespace |
336 | +{ |
337 | + template <typename T> |
338 | + class AutoDestroyHelper |
339 | + { |
340 | + public: |
341 | + |
342 | + typedef void (*SimpleDestructor) (T *); |
343 | + typedef boost::shared_ptr <T> TPtr; |
344 | + |
345 | + AutoDestroyHelper (T *t, |
346 | + SimpleDestructor d) : |
347 | + mShared (t, boost::bind (d, _1)) |
348 | + { |
349 | + } |
350 | + |
351 | + operator const TPtr & () |
352 | + { |
353 | + return mShared; |
354 | + } |
355 | + |
356 | + private: |
357 | + |
358 | + TPtr mShared; |
359 | + }; |
360 | +} |
361 | + |
362 | +class CCSGSettingsBackendEnv : |
363 | + public CCSBackendConceptTestEnvironmentInterface |
364 | +{ |
365 | + public: |
366 | + |
367 | + typedef boost::shared_ptr <GVariant> GVariantShared; |
368 | + |
369 | + CCSGSettingsBackendEnv () : |
370 | + pluginToMatch ("mock") |
371 | + { |
372 | + g_type_init (); |
373 | + } |
374 | + |
375 | + /* A wrapper to prevent signals from being added */ |
376 | + static void connectToSignalWrapper (CCSBackend *backend, CCSGSettingsWrapper *wrapper) |
377 | + { |
378 | + }; |
379 | + |
380 | + static void registerGConfClientWrapper (CCSBackend *backend) |
381 | + { |
382 | + } |
383 | + |
384 | + static void unregisterGConfClientWrapper (CCSBackend *backend) |
385 | + { |
386 | + } |
387 | + |
388 | + const CCSBackendInfo * GetInfo () |
389 | + { |
390 | + return &gsettingsBackendInfo; |
391 | + } |
392 | + |
393 | + CCSBackend * SetUp (CCSContext *context, CCSContextGMock *gmockContext) |
394 | + { |
395 | + CCSGSettingsBackendInterface *overloadedInterface = NULL; |
396 | + |
397 | + g_setenv ("GSETTINGS_SCHEMA_DIR", MOCK_PATH.c_str (), true); |
398 | + g_setenv ("GSETTINGS_BACKEND", "memory", true); |
399 | + g_setenv ("LIBCOMPIZCONFIG_BACKEND_PATH", BACKEND_BINARY_PATH, true); |
400 | + |
401 | + mContext = context; |
402 | + |
403 | + std::string path ("gsettings"); |
404 | + |
405 | + mBackend = reinterpret_cast <CCSDynamicBackend *> (ccsOpenBackend (&ccsDefaultInterfaceTable, mContext, path.c_str ())); |
406 | + |
407 | + EXPECT_TRUE (mBackend); |
408 | + |
409 | + mGSettingsBackend = ccsDynamicBackendGetRawBackend (mBackend); |
410 | + |
411 | + CCSBackendInitFunc backendInit = (GET_INTERFACE (CCSBackendInterface, mBackend))->backendInit; |
412 | + |
413 | + if (backendInit) |
414 | + (*backendInit) ((CCSBackend *) mBackend, mContext); |
415 | + |
416 | + overloadedInterface = GET_INTERFACE (CCSGSettingsBackendInterface, mGSettingsBackend); |
417 | + overloadedInterface->gsettingsBackendConnectToChangedSignal = CCSGSettingsBackendEnv::connectToSignalWrapper; |
418 | + overloadedInterface->gsettingsBackendRegisterGConfClient = CCSGSettingsBackendEnv::registerGConfClientWrapper; |
419 | + overloadedInterface->gsettingsBackendUnregisterGConfClient = CCSGSettingsBackendEnv::unregisterGConfClientWrapper; |
420 | + |
421 | + mSettings = ccsGSettingsGetSettingsObjectForPluginWithPath (mGSettingsBackend, "mock", |
422 | + CharacterWrapper (makeCompizPluginPath (profileName.c_str (), "mock")), |
423 | + mContext); |
424 | + |
425 | + ON_CALL (*gmockContext, getProfile ()).WillByDefault (Return (profileName.c_str ())); |
426 | + |
427 | + return (CCSBackend *) mBackend; |
428 | + } |
429 | + |
430 | + void TearDown (CCSBackend *) |
431 | + { |
432 | + g_unsetenv ("GSETTINGS_SCHEMA_DIR"); |
433 | + g_unsetenv ("GSETTINGS_BACKEND"); |
434 | + g_unsetenv ("LIBCOMPIZCONFIG_BACKEND_PATH"); |
435 | + |
436 | + GVariantBuilder noProfilesBuilder; |
437 | + g_variant_builder_init (&noProfilesBuilder, G_VARIANT_TYPE ("as")); |
438 | + g_variant_builder_add (&noProfilesBuilder, "s", "Default"); |
439 | + GVariant *noProfiles = g_variant_builder_end (&noProfilesBuilder); |
440 | + |
441 | + GVariantBuilder pluginKeysBuilder; |
442 | + g_variant_builder_init (&pluginKeysBuilder, G_VARIANT_TYPE ("as")); |
443 | + g_variant_builder_add (&pluginKeysBuilder, "s", "mock"); |
444 | + GVariant *pluginKeys = g_variant_builder_end (&pluginKeysBuilder); |
445 | + |
446 | + ccsGSettingsBackendUnsetAllChangedPluginKeysInProfile (mGSettingsBackend, |
447 | + mContext, |
448 | + pluginKeys, |
449 | + ccsGSettingsBackendGetCurrentProfile ( |
450 | + mGSettingsBackend)); |
451 | + ccsGSettingsBackendClearPluginsWithSetKeys (mGSettingsBackend); |
452 | + ccsGSettingsBackendSetExistingProfiles (mGSettingsBackend, noProfiles); |
453 | + ccsGSettingsBackendSetCurrentProfile (mGSettingsBackend, "Default"); |
454 | + |
455 | + ccsFreeDynamicBackend (mBackend); |
456 | + |
457 | + g_variant_unref (pluginKeys); |
458 | + } |
459 | + |
460 | + void AddProfile (const std::string &profile) |
461 | + { |
462 | + ccsGSettingsBackendAddProfile (mGSettingsBackend, profile.c_str ()); |
463 | + } |
464 | + |
465 | + void SetGetExistingProfilesExpectation (CCSContext *context, |
466 | + CCSContextGMock *gmockContext) |
467 | + { |
468 | + EXPECT_CALL (*gmockContext, getProfile ()).Times (AtLeast (1)); |
469 | + } |
470 | + |
471 | + void SetDeleteProfileExpectation (const std::string &profileToDelete, |
472 | + CCSContext *context, |
473 | + CCSContextGMock *gmockContext) |
474 | + { |
475 | + EXPECT_CALL (*gmockContext, getProfile ()).Times (AtLeast (1)); |
476 | + } |
477 | + |
478 | + void SetReadInitExpectation (CCSContext *context, |
479 | + CCSContextGMock *gmockContext) |
480 | + { |
481 | + EXPECT_CALL (*gmockContext, getProfile ()).WillOnce (Return (profileName.c_str ())); |
482 | + } |
483 | + |
484 | + void SetReadDoneExpectation (CCSContext *context, |
485 | + CCSContextGMock *gmockContext) |
486 | + { |
487 | + } |
488 | + |
489 | + void SetWriteInitExpectation (CCSContext *context, |
490 | + CCSContextGMock *gmockContext) |
491 | + { |
492 | + EXPECT_CALL (*gmockContext, getProfile ()).WillOnce (Return (profileName.c_str ())); |
493 | + } |
494 | + |
495 | + void SetWriteDoneExpectation (CCSContext *context, |
496 | + CCSContextGMock *gmockContext) |
497 | + { |
498 | + } |
499 | + |
500 | + void PreWrite (CCSContextGMock *gmockContext, |
501 | + CCSPluginGMock *gmockPlugin, |
502 | + CCSSettingGMock *gmockSetting, |
503 | + CCSSettingType type) |
504 | + { |
505 | + EXPECT_CALL (*gmockContext, getIntegrationEnabled ()).WillRepeatedly (Return (FALSE)); |
506 | + EXPECT_CALL (*gmockPlugin, getContext ()).Times (AtLeast (1)); |
507 | + EXPECT_CALL (*gmockPlugin, getName ()).Times (AtLeast (1)); |
508 | + EXPECT_CALL (*gmockSetting, getType ()).Times (AtLeast (1)); |
509 | + EXPECT_CALL (*gmockSetting, getName ()).Times (AtLeast (1)); |
510 | + EXPECT_CALL (*gmockSetting, getParent ()).Times (AtLeast (1)); |
511 | + EXPECT_CALL (*gmockSetting, getIsDefault ()).WillRepeatedly (Return (FALSE)); |
512 | + |
513 | + if (type == TypeList) |
514 | + EXPECT_CALL (*gmockSetting, getDefaultValue ()).WillRepeatedly (ReturnNull ()); |
515 | + } |
516 | + |
517 | + void PostWrite (CCSContextGMock *gmockContext, |
518 | + CCSPluginGMock *gmockPlugin, |
519 | + CCSSettingGMock *gmockSetting, |
520 | + CCSSettingType type) {} |
521 | + |
522 | + void WriteBoolAtKey (const std::string &plugin, |
523 | + const std::string &key, |
524 | + const VariantTypes &value) |
525 | + { |
526 | + GVariant *variant = NULL; |
527 | + if (writeBoolToVariant (boolToBool (boost::get <bool> (value)), &variant)) |
528 | + writeVariantToKey (mSettings, CharacterWrapper (translateKeyForGSettings (key.c_str ())), variant); |
529 | + else |
530 | + throw std::exception (); |
531 | + } |
532 | + |
533 | + void WriteIntegerAtKey (const std::string &plugin, |
534 | + const std::string &key, |
535 | + const VariantTypes &value) |
536 | + { |
537 | + GVariant *variant = NULL; |
538 | + if (writeIntToVariant (boost::get <int> (value), &variant)) |
539 | + writeVariantToKey (mSettings, CharacterWrapper (translateKeyForGSettings (key.c_str ())), variant); |
540 | + else |
541 | + throw std::exception (); |
542 | + } |
543 | + |
544 | + void WriteFloatAtKey (const std::string &plugin, |
545 | + const std::string &key, |
546 | + const VariantTypes &value) |
547 | + { |
548 | + GVariant *variant = NULL; |
549 | + if (writeFloatToVariant (boost::get <float> (value), &variant)) |
550 | + writeVariantToKey (mSettings, CharacterWrapper (translateKeyForGSettings (key.c_str ())), variant); |
551 | + else |
552 | + throw std::exception (); |
553 | + } |
554 | + |
555 | + void WriteStringAtKey (const std::string &plugin, |
556 | + const std::string &key, |
557 | + const VariantTypes &value) |
558 | + { |
559 | + GVariant *variant = NULL; |
560 | + if (writeStringToVariant (boost::get <const char *> (value), &variant)) |
561 | + writeVariantToKey (mSettings, CharacterWrapper (translateKeyForGSettings (key.c_str ())), variant); |
562 | + else |
563 | + throw std::exception (); |
564 | + } |
565 | + |
566 | + void WriteColorAtKey (const std::string &plugin, |
567 | + const std::string &key, |
568 | + const VariantTypes &value) |
569 | + { |
570 | + GVariant *variant = NULL; |
571 | + if (writeColorToVariant (boost::get <CCSSettingColorValue> (value), &variant)) |
572 | + writeVariantToKey (mSettings, CharacterWrapper (translateKeyForGSettings (key.c_str ())), variant); |
573 | + else |
574 | + throw std::exception (); |
575 | + } |
576 | + |
577 | + void WriteKeyAtKey (const std::string &plugin, |
578 | + const std::string &key, |
579 | + const VariantTypes &value) |
580 | + { |
581 | + GVariant *variant = NULL; |
582 | + if (writeKeyToVariant (boost::get <CCSSettingKeyValue> (value), &variant)) |
583 | + writeVariantToKey (mSettings, CharacterWrapper (translateKeyForGSettings (key.c_str ())), variant); |
584 | + else |
585 | + throw std::exception (); |
586 | + } |
587 | + |
588 | + void WriteButtonAtKey (const std::string &plugin, |
589 | + const std::string &key, |
590 | + const VariantTypes &value) |
591 | + { |
592 | + GVariant *variant = NULL; |
593 | + if (writeButtonToVariant (boost::get <CCSSettingButtonValue> (value), &variant)) |
594 | + writeVariantToKey (mSettings, CharacterWrapper (translateKeyForGSettings (key.c_str ())), variant); |
595 | + else |
596 | + throw std::exception (); |
597 | + } |
598 | + |
599 | + void WriteEdgeAtKey (const std::string &plugin, |
600 | + const std::string &key, |
601 | + const VariantTypes &value) |
602 | + { |
603 | + GVariant *variant = NULL; |
604 | + if (writeEdgeToVariant (boost::get <unsigned int> (value), &variant)) |
605 | + writeVariantToKey (mSettings, CharacterWrapper (translateKeyForGSettings (key.c_str ())), variant); |
606 | + else |
607 | + throw std::exception (); |
608 | + } |
609 | + |
610 | + void WriteMatchAtKey (const std::string &plugin, |
611 | + const std::string &key, |
612 | + const VariantTypes &value) |
613 | + { |
614 | + GVariant *variant = NULL; |
615 | + if (writeStringToVariant (boost::get <const char *> (value), &variant)) |
616 | + writeVariantToKey (mSettings, CharacterWrapper (translateKeyForGSettings (key.c_str ())), variant); |
617 | + else |
618 | + throw std::exception (); |
619 | + } |
620 | + |
621 | + void WriteBellAtKey (const std::string &plugin, |
622 | + const std::string &key, |
623 | + const VariantTypes &value) |
624 | + { |
625 | + GVariant *variant = NULL; |
626 | + if (writeBoolToVariant (boolToBool (boost::get <bool> (value)), &variant)) |
627 | + writeVariantToKey (mSettings, CharacterWrapper (translateKeyForGSettings (key.c_str ())), variant); |
628 | + else |
629 | + throw std::exception (); |
630 | + } |
631 | + |
632 | + void WriteListAtKey (const std::string &plugin, |
633 | + const std::string &key, |
634 | + const VariantTypes &value) |
635 | + { |
636 | + GVariant *variant = NULL; |
637 | + |
638 | + const CCSListWrapper::Ptr &lw (boost::get <CCSListWrapper::Ptr> (value)); |
639 | + |
640 | + if (writeListValue (*lw, lw->type (), &variant)) |
641 | + writeVariantToKey (mSettings, CharacterWrapper (translateKeyForGSettings (key.c_str ())), variant); |
642 | + else |
643 | + throw std::exception (); |
644 | + } |
645 | + |
646 | + void PreRead (CCSContextGMock *gmockContext, |
647 | + CCSPluginGMock *gmockPlugin, |
648 | + CCSSettingGMock *gmockSetting, |
649 | + CCSSettingType type) |
650 | + { |
651 | + EXPECT_CALL (*gmockContext, getIntegrationEnabled ()).WillOnce (Return (FALSE)); |
652 | + EXPECT_CALL (*gmockPlugin, getContext ()).Times (AtLeast (1)); |
653 | + EXPECT_CALL (*gmockPlugin, getName ()).Times (AtLeast (1)); |
654 | + EXPECT_CALL (*gmockSetting, getType ()).Times (AtLeast (1)); |
655 | + EXPECT_CALL (*gmockSetting, getName ()).Times (AtLeast (1)); |
656 | + EXPECT_CALL (*gmockSetting, getParent ()).Times (AtLeast (1)); |
657 | + EXPECT_CALL (*gmockSetting, isReadOnly ()).WillRepeatedly (Return (FALSE)); |
658 | + |
659 | + if (type == TypeList) |
660 | + { |
661 | + EXPECT_CALL (*gmockSetting, getInfo ()).Times (AtLeast (1)); |
662 | + EXPECT_CALL (*gmockSetting, getDefaultValue ()).WillRepeatedly (ReturnNull ()); |
663 | + } |
664 | + } |
665 | + |
666 | + void PostRead (CCSContextGMock *gmockContext, |
667 | + CCSPluginGMock *gmockPlugin, |
668 | + CCSSettingGMock *gmockSetting, |
669 | + CCSSettingType type) {} |
670 | + |
671 | + Bool ReadBoolAtKey (const std::string &plugin, |
672 | + const std::string &key) |
673 | + { |
674 | + GVariantShared variant (ReadVariantAtKeyToShared (plugin, |
675 | + key, |
676 | + TypeBool)); |
677 | + return readBoolFromVariant (variant.get ()); |
678 | + } |
679 | + |
680 | + int ReadIntegerAtKey (const std::string &plugin, |
681 | + const std::string &key) |
682 | + { |
683 | + GVariantShared variant (ReadVariantAtKeyToShared (plugin, |
684 | + key, |
685 | + TypeInt)); |
686 | + return readIntFromVariant (variant.get ()); |
687 | + } |
688 | + |
689 | + float ReadFloatAtKey (const std::string &plugin, |
690 | + const std::string &key) |
691 | + { |
692 | + GVariantShared variant (ReadVariantAtKeyToShared (plugin, |
693 | + key, |
694 | + TypeFloat)); |
695 | + return readFloatFromVariant (variant.get ()); |
696 | + } |
697 | + |
698 | + const char * ReadStringAtKey (const std::string &plugin, |
699 | + const std::string &key) |
700 | + { |
701 | + GVariantShared variant (ReadVariantAtKeyToShared (plugin, |
702 | + key, |
703 | + TypeString)); |
704 | + return readStringFromVariant (variant.get ()); |
705 | + } |
706 | + |
707 | + CCSSettingColorValue ReadColorAtKey (const std::string &plugin, |
708 | + const std::string &key) |
709 | + { |
710 | + Bool success = FALSE; |
711 | + GVariantShared variant (ReadVariantAtKeyToShared (plugin, |
712 | + key, |
713 | + TypeColor)); |
714 | + CCSSettingColorValue value = readColorFromVariant (variant.get (), &success); |
715 | + EXPECT_TRUE (success); |
716 | + return value; |
717 | + } |
718 | + |
719 | + CCSSettingKeyValue ReadKeyAtKey (const std::string &plugin, |
720 | + const std::string &key) |
721 | + { |
722 | + Bool success = FALSE; |
723 | + GVariantShared variant (ReadVariantAtKeyToShared (plugin, |
724 | + key, |
725 | + TypeKey)); |
726 | + CCSSettingKeyValue value = readKeyFromVariant (variant.get (), &success); |
727 | + EXPECT_TRUE (success); |
728 | + return value; |
729 | + } |
730 | + |
731 | + CCSSettingButtonValue ReadButtonAtKey (const std::string &plugin, |
732 | + const std::string &key) |
733 | + { |
734 | + Bool success = FALSE; |
735 | + GVariantShared variant (ReadVariantAtKeyToShared (plugin, |
736 | + key, |
737 | + TypeButton)); |
738 | + CCSSettingButtonValue value = readButtonFromVariant (variant.get (), &success); |
739 | + EXPECT_TRUE (success); |
740 | + return value; |
741 | + } |
742 | + |
743 | + unsigned int ReadEdgeAtKey (const std::string &plugin, |
744 | + const std::string &key) |
745 | + { |
746 | + GVariantShared variant (ReadVariantAtKeyToShared (plugin, |
747 | + key, |
748 | + TypeEdge)); |
749 | + return readEdgeFromVariant (variant.get ()); |
750 | + } |
751 | + |
752 | + const char * ReadMatchAtKey (const std::string &plugin, |
753 | + const std::string &key) |
754 | + { |
755 | + GVariantShared variant (ReadVariantAtKeyToShared (plugin, |
756 | + key, |
757 | + TypeMatch)); |
758 | + return readStringFromVariant (variant.get ()); |
759 | + } |
760 | + |
761 | + Bool ReadBellAtKey (const std::string &plugin, |
762 | + const std::string &key) |
763 | + { |
764 | + GVariantShared variant (ReadVariantAtKeyToShared (plugin, |
765 | + key, |
766 | + TypeBell)); |
767 | + return readBoolFromVariant (variant.get ()); |
768 | + } |
769 | + |
770 | + CCSSettingValueList ReadListAtKey (const std::string &plugin, |
771 | + const std::string &key, |
772 | + CCSSetting *setting) |
773 | + { |
774 | + GVariantShared variant (ReadVariantAtKeyToShared (plugin, |
775 | + key, |
776 | + TypeList)); |
777 | + return readListValue (variant.get (), setting, &ccsDefaultObjectAllocator); |
778 | + } |
779 | + |
780 | + void PreUpdate (CCSContextGMock *gmockContext, |
781 | + CCSPluginGMock *gmockPlugin, |
782 | + CCSSettingGMock *gmockSetting, |
783 | + CCSSettingType type) |
784 | + { |
785 | + EXPECT_CALL (*gmockContext, getIntegrationEnabled ()).WillOnce (Return (FALSE)); |
786 | + EXPECT_CALL (*gmockPlugin, getContext ()).Times (AtLeast (1)); |
787 | + EXPECT_CALL (*gmockPlugin, getName ()).Times (AtLeast (1)); |
788 | + EXPECT_CALL (*gmockSetting, getType ()).Times (AtLeast (1)); |
789 | + EXPECT_CALL (*gmockSetting, getName ()).Times (AtLeast (1)); |
790 | + EXPECT_CALL (*gmockSetting, getParent ()).Times (AtLeast (1)); |
791 | + EXPECT_CALL (*gmockSetting, isReadOnly ()).WillRepeatedly (Return (FALSE)); |
792 | + |
793 | + if (type == TypeList) |
794 | + { |
795 | + EXPECT_CALL (*gmockSetting, getInfo ()).Times (AtLeast (1)); |
796 | + EXPECT_CALL (*gmockSetting, getDefaultValue ()).WillRepeatedly (ReturnNull ()); |
797 | + } |
798 | + |
799 | + EXPECT_CALL (*gmockContext, getProfile ()); |
800 | + } |
801 | + |
802 | + void PostUpdate (CCSContextGMock *gmockContext, |
803 | + CCSPluginGMock *gmockPlugin, |
804 | + CCSSettingGMock *gmockSetting, |
805 | + CCSSettingType type) {} |
806 | + |
807 | + bool UpdateSettingAtKey (const std::string &plugin, |
808 | + const std::string &setting) |
809 | + { |
810 | + CharacterWrapper keyName (translateKeyForGSettings (setting.c_str ())); |
811 | + |
812 | + if (updateSettingWithGSettingsKeyName (reinterpret_cast <CCSBackend *> (mGSettingsBackend), mSettings, keyName, ccsBackendUpdateSetting)) |
813 | + return true; |
814 | + |
815 | + return false; |
816 | + } |
817 | + |
818 | + private: |
819 | + |
820 | + GVariantShared |
821 | + ReadVariantAtKeyToShared (const std::string &plugin, |
822 | + const std::string &key, |
823 | + CCSSettingType type) |
824 | + { |
825 | + CharacterWrapper translatedKey (translateKeyForGSettings (key.c_str ())); |
826 | + CharacterWrapper pluginPath (makeCompizPluginPath (profileName.c_str (), |
827 | + plugin.c_str ())); |
828 | + |
829 | + GVariant *rawVariant = getVariantAtKey (mSettings, |
830 | + translatedKey, |
831 | + pluginPath, |
832 | + type); |
833 | + |
834 | + GVariantShared shared (AutoDestroyHelper <GVariant> (rawVariant, |
835 | + g_variant_unref)); |
836 | + |
837 | + |
838 | + |
839 | + return shared; |
840 | + } |
841 | + |
842 | + CCSGSettingsWrapper *mSettings; |
843 | + CCSContext *mContext; |
844 | + CCSDynamicBackend *mBackend; |
845 | + CCSBackend *mGSettingsBackend; |
846 | + std::string pluginToMatch; |
847 | + |
848 | + static const std::string profileName; |
849 | +}; |
850 | + |
851 | +const std::string CCSGSettingsBackendEnv::profileName = "mock"; |
852 | + |
853 | +INSTANTIATE_TEST_CASE_P (CCSGSettingsBackendConcept, CCSBackendConformanceTestReadWrite, |
854 | + compizconfig::test::GenerateTestingParametersForBackendInterface <CCSGSettingsBackendEnv> ()); |
855 | + |
856 | +INSTANTIATE_TEST_CASE_P (CCSGSettingsBackendConcept, CCSBackendConformanceTestInfo, |
857 | + compizconfig::test::GenerateTestingEnvFactoryBackendInterface <CCSGSettingsBackendEnv> ()); |
858 | + |
859 | +INSTANTIATE_TEST_CASE_P (CCSGSettingsBackendConcept, CCSBackendConformanceTestInitFiniFuncs, |
860 | + compizconfig::test::GenerateTestingEnvFactoryBackendInterface <CCSGSettingsBackendEnv> ()); |
861 | + |
862 | +INSTANTIATE_TEST_CASE_P (CCSGSettingsBackendConcept, CCSBackendConformanceTestProfileHandling, |
863 | + compizconfig::test::GenerateTestingEnvFactoryBackendInterface <CCSGSettingsBackendEnv> ()); |
864 | |
865 | === modified file 'compizconfig/libcompizconfig/config/CMakeLists.txt' |
866 | --- compizconfig/libcompizconfig/config/CMakeLists.txt 2012-05-24 06:48:55 +0000 |
867 | +++ compizconfig/libcompizconfig/config/CMakeLists.txt 2012-08-06 14:57:34 +0000 |
868 | @@ -1,6 +1,9 @@ |
869 | set (_config_file |
870 | config) |
871 | |
872 | +configure_file (${CMAKE_CURRENT_SOURCE_DIR}/config_test |
873 | + ${CMAKE_CURRENT_BINARY_DIR}/compiz-1/compizconfig/config) |
874 | + |
875 | compiz_opt_install_file (${CMAKE_CURRENT_SOURCE_DIR}/${_config_file} ${COMPIZ_SYSCONFDIR}/compizconfig/${_config_file}) |
876 | |
877 | add_custom_target ( |
878 | |
879 | === added file 'compizconfig/libcompizconfig/config/config_test' |
880 | --- compizconfig/libcompizconfig/config/config_test 1970-01-01 00:00:00 +0000 |
881 | +++ compizconfig/libcompizconfig/config/config_test 2012-08-06 14:57:34 +0000 |
882 | @@ -0,0 +1,3 @@ |
883 | +[general] |
884 | +backend = ini |
885 | +plugin_list_autosort = true |
CI doesn't seem to care ... WIP ...