1
#include <boost/function.hpp>
2
#include <boost/bind.hpp>
4
#include "test_gsettings_tests.h"
6
#include "gsettings_mocks.h"
8
using ::testing::Values;
9
using ::testing::ValuesIn;
10
using ::testing::Return;
12
TEST_P(CCSGSettingsTest, TestTestFixtures)
16
TEST_F(CCSGSettingsTestIndependent, TestTest)
20
TEST_F(CCSGSettingsTestIndependent, TestGetSchemaNameForPlugin)
22
const gchar *plugin = "foo";
23
gchar *schemaName = getSchemaNameForPlugin (plugin);
25
std::string schemaNameStr (schemaName);
27
size_t pos = schemaNameStr.find (PLUGIN_SCHEMA_ID_PREFIX, 0);
34
TEST_F(CCSGSettingsTestIndependent, TestTruncateKeyForGSettingsOver)
36
const unsigned int OVER_KEY_SIZE = MAX_GSETTINGS_KEY_SIZE + 1;
40
for (unsigned int i = 0; i <= OVER_KEY_SIZE - 1; i++)
41
keyname.push_back ('a');
43
ASSERT_EQ (keyname.size (), OVER_KEY_SIZE);
45
gchar *truncated = truncateKeyForGSettings (keyname.c_str ());
47
EXPECT_EQ (std::string (truncated).size (), MAX_GSETTINGS_KEY_SIZE);
52
TEST_F(CCSGSettingsTestIndependent, TestTruncateKeyForGSettingsUnder)
54
const unsigned int UNDER_KEY_SIZE = MAX_GSETTINGS_KEY_SIZE - 1;
58
for (unsigned int i = 0; i <= UNDER_KEY_SIZE - 1; i++)
59
keyname.push_back ('a');
61
ASSERT_EQ (keyname.size (), UNDER_KEY_SIZE);
63
gchar *truncated = truncateKeyForGSettings (keyname.c_str ());
65
EXPECT_EQ (std::string (truncated).size (), UNDER_KEY_SIZE);
70
TEST_F(CCSGSettingsTestIndependent, TestTranslateUnderscoresToDashesForGSettings)
72
std::string keyname ("plugin_option");
74
gchar *translated = translateUnderscoresToDashesForGSettings (keyname.c_str ());
76
std::string translatedKeyname (translated);
77
EXPECT_EQ (translatedKeyname, std::string ("plugin-option"));
82
TEST_F(CCSGSettingsTestIndependent, TestTranslateUpperToLowerForGSettings)
84
gchar keyname[] = "PLUGIN-OPTION";
86
translateToLowercaseForGSettings (keyname);
88
EXPECT_EQ (std::string (keyname), "plugin-option");
91
TEST_F(CCSGSettingsTestIndependent, TestTranslateKeyForCCS)
93
std::string keyname ("plugin-option");
95
gchar *translated = translateKeyForCCS (keyname.c_str ());
97
EXPECT_EQ (std::string (translated), "plugin_option");
102
struct CCSTypeIsVariantType
104
CCSSettingType settingType;
108
class CCSGSettingsTestVariantTypeFixture :
109
public ::testing::TestWithParam <CCSTypeIsVariantType>
113
virtual void SetUp ()
120
CCSTypeIsVariantType mType;
123
TEST_P(CCSGSettingsTestVariantTypeFixture, TestVariantType)
125
EXPECT_EQ (mType.isVariantType, compizconfigTypeHasVariantType (mType.settingType));
130
CCSTypeIsVariantType type[TypeNum + 1] =
135
{ TypeString, true },
137
{ TypeAction, false }, /* Cannot read raw actions */
138
{ TypeKey, false }, /* No actions in lists */
139
{ TypeButton, false }, /* No actions in lists */
140
{ TypeEdge, false }, /* No actions in lists */
141
{ TypeBell, false }, /* No actions in lists */
143
{ TypeList, false }, /* No lists in lists */
148
INSTANTIATE_TEST_CASE_P (CCSGSettingsTestVariantTypeInstantiation, CCSGSettingsTestVariantTypeFixture,
151
TEST_F(CCSGSettingsTestIndependent, TestDecomposeGSettingsPath)
153
std::string compiz_gsettings_path (PROFILE_PATH_PREFIX);
154
std::string fake_option_path ("PROFILENAME/plugins/PLUGINNAME");
156
compiz_gsettings_path += fake_option_path;
159
unsigned int screenNum;
161
ASSERT_TRUE (decomposeGSettingsPath (compiz_gsettings_path.c_str (), &pluginName, &screenNum));
162
EXPECT_EQ (std::string (pluginName), "PLUGINNAME");
163
EXPECT_EQ (screenNum, 0);
168
TEST_F(CCSGSettingsTestIndependent, TestMakeCompizProfilePath)
170
gchar *a = makeCompizProfilePath ("alpha");
171
ASSERT_TRUE (a != NULL);
172
EXPECT_EQ (std::string (a), "/org/compiz/profiles/alpha/");
175
gchar *b = makeCompizProfilePath ("beta/");
176
ASSERT_TRUE (b != NULL);
177
EXPECT_EQ (std::string (b), "/org/compiz/profiles/beta/");
180
gchar *c = makeCompizProfilePath ("/gamma");
181
ASSERT_TRUE (c != NULL);
182
EXPECT_EQ (std::string (c), "/org/compiz/profiles/gamma/");
185
gchar *d = makeCompizProfilePath ("/delta");
186
ASSERT_TRUE (d != NULL);
187
EXPECT_EQ (std::string (d), "/org/compiz/profiles/delta/");
191
TEST_F(CCSGSettingsTestIndependent, TestMakeCompizPluginPath)
193
gchar *x = makeCompizPluginPath ("one", "two");
194
ASSERT_TRUE (x != NULL);
195
EXPECT_EQ (std::string (x), "/org/compiz/profiles/one/plugins/two/");
198
gchar *y = makeCompizPluginPath ("/three", "four/");
199
ASSERT_TRUE (y != NULL);
200
EXPECT_EQ (std::string (y), "/org/compiz/profiles/three/plugins/four/");
204
namespace GVariantSubtypeWrappers
206
typedef gboolean (*IsSubtype) (GVariant *v);
208
gboolean boolean (GVariant *v)
210
return g_variant_type_is_subtype_of (G_VARIANT_TYPE_BOOLEAN, g_variant_get_type (v));
213
gboolean bell (GVariant *v)
218
gboolean string (GVariant *v)
220
return g_variant_type_is_subtype_of (G_VARIANT_TYPE_STRING, g_variant_get_type (v));
223
gboolean match (GVariant *v)
228
gboolean color (GVariant *v)
233
gboolean key (GVariant *v)
238
gboolean button (GVariant *v)
243
gboolean edge (GVariant *v)
248
gboolean integer (GVariant *v)
250
return g_variant_type_is_subtype_of (G_VARIANT_TYPE_INT32, g_variant_get_type (v));
253
gboolean doubleprecision (GVariant *v)
255
return g_variant_type_is_subtype_of (G_VARIANT_TYPE_DOUBLE, g_variant_get_type (v));
258
gboolean list (GVariant *v)
260
return g_variant_type_is_array (g_variant_get_type (v));
264
struct ArrayVariantInfo
266
GVariantSubtypeWrappers::IsSubtype func;
267
CCSSettingType ccsType;
273
const char *vBoolean = "b";
274
const char *vString = "s";
275
const char *vInt = "i";
276
const char *vDouble = "d";
277
const char *vArray = "as";
279
ArrayVariantInfo arrayVariantInfo[] =
281
{ &GVariantSubtypeWrappers::boolean, TypeBool, vBoolean },
282
{ &GVariantSubtypeWrappers::bell, TypeBell, vBoolean },
283
{ &GVariantSubtypeWrappers::string, TypeString, vString },
284
{ &GVariantSubtypeWrappers::match, TypeMatch, vString },
285
{ &GVariantSubtypeWrappers::color, TypeColor, vString },
286
{ &GVariantSubtypeWrappers::key, TypeKey, vString },
287
{ &GVariantSubtypeWrappers::button, TypeButton, vString },
288
{ &GVariantSubtypeWrappers::edge, TypeEdge, vString },
289
{ &GVariantSubtypeWrappers::integer, TypeInt, vInt },
290
{ &GVariantSubtypeWrappers::doubleprecision, TypeFloat, vDouble },
291
{ &GVariantSubtypeWrappers::list, TypeList, vArray }
295
class CCSGSettingsTestArrayVariantSubTypeFixture :
296
public ::testing::TestWithParam <ArrayVariantInfo>
300
virtual void SetUp ()
302
mAVInfo = GetParam ();
305
virtual void TearDown ()
312
ArrayVariantInfo mAVInfo;
316
TEST_P(CCSGSettingsTestArrayVariantSubTypeFixture, TestArrayVariantValidForCCSTypeBool)
318
v = g_variant_new (vBoolean, TRUE);
320
EXPECT_EQ ((*mAVInfo.func) (v), variantIsValidForCCSType (v, mAVInfo.ccsType));
323
TEST_P(CCSGSettingsTestArrayVariantSubTypeFixture, TestArrayVariantValidForCCSTypeString)
325
v = g_variant_new (vString, "foo");
327
EXPECT_EQ ((*mAVInfo.func) (v), variantIsValidForCCSType (v, mAVInfo.ccsType));
330
TEST_P(CCSGSettingsTestArrayVariantSubTypeFixture, TestArrayVariantValidForCCSTypeInt)
332
v = g_variant_new (vInt, 1);
334
EXPECT_EQ ((*mAVInfo.func) (v), variantIsValidForCCSType (v, mAVInfo.ccsType));
337
TEST_P(CCSGSettingsTestArrayVariantSubTypeFixture, TestArrayVariantValidForCCSTypeDouble)
339
v = g_variant_new (vDouble, 2.0);
341
EXPECT_EQ ((*mAVInfo.func) (v), variantIsValidForCCSType (v, mAVInfo.ccsType));
344
TEST_P(CCSGSettingsTestArrayVariantSubTypeFixture, TestArrayVariantValidForCCSTypeArray)
348
g_variant_builder_init (&vb, G_VARIANT_TYPE (vArray));
350
g_variant_builder_add (&vb, "s", "foo");
351
g_variant_builder_add (&vb, "s", "bar");
353
v = g_variant_builder_end (&vb);
355
EXPECT_EQ ((*mAVInfo.func) (v), variantIsValidForCCSType (v, mAVInfo.ccsType));
358
INSTANTIATE_TEST_CASE_P (CCSGSettingsTestArrayVariantSubTypeInstantiation, CCSGSettingsTestArrayVariantSubTypeFixture,
359
ValuesIn (arrayVariantInfo));
361
class CCSGSettingsTestPluginsWithSetKeysGVariantSetup :
362
public CCSGSettingsTestIndependent
366
virtual void SetUp ()
368
builder = g_variant_builder_new (G_VARIANT_TYPE ("as"));
370
g_variant_builder_add (builder, "s", "foo");
371
g_variant_builder_add (builder, "s", "bar");
373
writtenPlugins = g_variant_new ("as", builder);
375
g_variant_builder_unref (builder);
377
newWrittenPlugins = NULL;
378
newWrittenPluginsSize = 0;
381
virtual void TearDown ()
383
g_variant_unref (writtenPlugins);
384
g_strfreev (newWrittenPlugins);
389
GVariantBuilder *builder;
390
GVariant *writtenPlugins;
391
char **newWrittenPlugins;
392
gsize newWrittenPluginsSize;
396
TEST_F(CCSGSettingsTestPluginsWithSetKeysGVariantSetup, TestAppendToPluginsWithSetKeysListNewItem)
398
EXPECT_TRUE (appendToPluginsWithSetKeysList ("plugin",
401
&newWrittenPluginsSize));
403
EXPECT_EQ (newWrittenPluginsSize, 3);
404
EXPECT_EQ (std::string (newWrittenPlugins[0]), std::string ("foo"));
405
EXPECT_EQ (std::string (newWrittenPlugins[1]), std::string ("bar"));
406
EXPECT_EQ (std::string (newWrittenPlugins[2]), std::string ("plugin"));
409
TEST_F(CCSGSettingsTestPluginsWithSetKeysGVariantSetup, TestAppendToPluginsWithSetKeysListExistingItem)
411
EXPECT_FALSE (appendToPluginsWithSetKeysList ("foo",
414
&newWrittenPluginsSize));
416
EXPECT_EQ (newWrittenPluginsSize, 2);
417
EXPECT_EQ (std::string (newWrittenPlugins[0]), std::string ("foo"));
418
EXPECT_EQ (std::string (newWrittenPlugins[1]), std::string ("bar"));
421
class CCSGSettingsTestGObjectListWithProperty :
422
public CCSGSettingsTestIndependent
426
virtual void SetUp ()
430
objectSchemaList = NULL;
433
virtual void TearDown ()
435
GList *iter = objectSchemaList;
439
g_object_unref ((GObject *) iter->data);
440
iter = g_list_next (iter);
443
g_list_free (objectSchemaList);
444
objectSchemaList = NULL;
447
CCSGSettingsWrapGSettings * AddObjectWithSchemaName (const std::string &schemaName)
449
CCSGSettingsWrapGSettings *wrapGSettingsObject =
450
compizconfig_gsettings_wrap_gsettings_new (COMPIZCONFIG_GSETTINGS_TYPE_MOCK_WRAP_GSETTINGS, schemaName.c_str ());
451
objectSchemaList = g_list_append (objectSchemaList, wrapGSettingsObject);
453
return wrapGSettingsObject;
458
GList *objectSchemaList;
461
TEST_F(CCSGSettingsTestGObjectListWithProperty, TestFindExistingObjectWithSchema)
463
GObject *obj = reinterpret_cast <GObject *> (AddObjectWithSchemaName ("foo"));
465
EXPECT_EQ (findObjectInListWithPropertySchemaName ("foo", objectSchemaList), obj);
468
TEST_F(CCSGSettingsTestGObjectListWithProperty, TestNoFindNonexistingObjectWithSchema)
470
AddObjectWithSchemaName ("bar");
472
EXPECT_EQ (NULL, findObjectInListWithPropertySchemaName ("foo", objectSchemaList));
475
class CCSGSettingsTestFindSettingLossy :
476
public CCSGSettingsTestIndependent
480
virtual void SetUp ()
485
virtual void TearDown ()
487
ccsSettingListFree (settingList, TRUE);
491
CCSSetting * AddMockSettingWithNameAndType (char *name,
494
CCSSetting *mockSetting = ccsMockSettingNew ();
496
settingList = ccsSettingListAppend (settingList, mockSetting);
498
CCSSettingGMock *gmock = reinterpret_cast <CCSSettingGMock *> (ccsObjectGetPrivate (mockSetting));
500
ON_CALL (*gmock, getName ()).WillByDefault (Return (name));
501
ON_CALL (*gmock, getType ()).WillByDefault (Return (type));
506
void ExpectNameCallOnSetting (CCSSetting *setting)
508
CCSSettingGMock *gs = reinterpret_cast <CCSSettingGMock *> (ccsObjectGetPrivate (setting));
509
EXPECT_CALL (*gs, getName ());
512
void ExpectTypeCallOnSetting (CCSSetting *setting)
514
CCSSettingGMock *gs = reinterpret_cast <CCSSettingGMock *> (ccsObjectGetPrivate (setting));
515
EXPECT_CALL (*gs, getType ());
520
CCSSettingList settingList;
523
TEST_F(CCSGSettingsTestFindSettingLossy, TestFilterAvailableSettingsByType)
525
char *name1 = strdup ("foo_bar_baz");
526
char *name2 = strdup ("foo_bar-baz");
528
CCSSetting *s1 = AddMockSettingWithNameAndType (name1, TypeInt);
529
CCSSetting *s2 = AddMockSettingWithNameAndType (name2, TypeBool);
531
ExpectTypeCallOnSetting (s1);
532
ExpectTypeCallOnSetting (s2);
534
CCSSettingList filteredList = filterAllSettingsMatchingType (TypeInt, settingList);
536
/* Needs to be expressed in terms of a boolean expression */
537
ASSERT_TRUE (filteredList);
538
EXPECT_EQ (ccsSettingListLength (filteredList), 1);
539
EXPECT_EQ (filteredList->data, s1);
540
EXPECT_NE (filteredList->data, s2);
541
EXPECT_EQ (NULL, filteredList->next);
546
ccsSettingListFree (filteredList, FALSE);
549
TEST_F(CCSGSettingsTestFindSettingLossy, TestFilterAvailableSettingsMatchingPartOfStringIgnoringDashesUnderscoresAndCase)
551
char *name1 = strdup ("foo_bar_baz_bob");
552
char *name2 = strdup ("FOO_bar_baz_fred");
553
char *name3 = strdup ("foo-bar");
555
CCSSetting *s1 = AddMockSettingWithNameAndType (name1, TypeInt);
556
CCSSetting *s2 = AddMockSettingWithNameAndType (name2, TypeInt);
557
CCSSetting *s3 = AddMockSettingWithNameAndType (name3, TypeInt);
559
ExpectNameCallOnSetting (s1);
560
ExpectNameCallOnSetting (s2);
561
ExpectNameCallOnSetting (s3);
563
CCSSettingList filteredList = filterAllSettingsMatchingPartOfStringIgnoringDashesUnderscoresAndCase ("foo-bar-baz",
566
ASSERT_TRUE (filteredList);
567
ASSERT_EQ (ccsSettingListLength (filteredList), 2);
568
EXPECT_EQ (filteredList->data, s1);
569
EXPECT_NE (filteredList->data, s3);
570
ASSERT_TRUE (filteredList->next);
571
EXPECT_EQ (filteredList->next->data, s2);
572
EXPECT_NE (filteredList->data, s3);
573
EXPECT_EQ (NULL, filteredList->next->next);
579
ccsSettingListFree (filteredList, FALSE);
582
TEST_F(CCSGSettingsTestFindSettingLossy, TestAttemptToFindCCSSettingFromLossyNameSuccess)
584
char *name1 = strdup ("foo_bar_baz_bob");
585
char *name2 = strdup ("FOO_bar_baz_bob-fred");
586
char *name3 = strdup ("foo-bar");
587
char *name4 = strdup ("FOO_bar_baz_bob-fred");
589
CCSSetting *s1 = AddMockSettingWithNameAndType (name1, TypeInt);
590
CCSSetting *s2 = AddMockSettingWithNameAndType (name2, TypeInt);
591
CCSSetting *s3 = AddMockSettingWithNameAndType (name3, TypeInt);
592
CCSSetting *s4 = AddMockSettingWithNameAndType (name4, TypeString);
594
ExpectNameCallOnSetting (s1);
595
ExpectNameCallOnSetting (s2);
596
ExpectNameCallOnSetting (s3);
598
ExpectTypeCallOnSetting (s1);
599
ExpectTypeCallOnSetting (s2);
600
ExpectTypeCallOnSetting (s3);
601
ExpectTypeCallOnSetting (s4);
603
CCSSetting *found = attemptToFindCCSSettingFromLossyName (settingList, "foo-bar-baz-bob-fred", TypeInt);
605
EXPECT_EQ (found, s2);
606
EXPECT_NE (found, s1);
607
EXPECT_NE (found, s3);
608
EXPECT_NE (found, s4);
616
TEST_F(CCSGSettingsTestFindSettingLossy, TestAttemptToFindCCSSettingFromLossyNameFailTooMany)
618
char *name1 = strdup ("foo_bar_baz_bob");
619
char *name2 = strdup ("FOO_bar_baz_bob-fred");
620
char *name3 = strdup ("FOO_BAR_baz_bob-fred");
621
char *name4 = strdup ("foo-bar");
622
char *name5 = strdup ("FOO_bar_baz_bob-fred");
624
CCSSetting *s1 = AddMockSettingWithNameAndType (name1, TypeInt);
625
CCSSetting *s2 = AddMockSettingWithNameAndType (name2, TypeInt);
626
CCSSetting *s3 = AddMockSettingWithNameAndType (name3, TypeInt);
627
CCSSetting *s4 = AddMockSettingWithNameAndType (name4, TypeInt);
628
CCSSetting *s5 = AddMockSettingWithNameAndType (name5, TypeString);
630
ExpectNameCallOnSetting (s1);
631
ExpectNameCallOnSetting (s2);
632
ExpectNameCallOnSetting (s3);
633
ExpectNameCallOnSetting (s4);
635
ExpectTypeCallOnSetting (s1);
636
ExpectTypeCallOnSetting (s2);
637
ExpectTypeCallOnSetting (s3);
638
ExpectTypeCallOnSetting (s4);
639
ExpectTypeCallOnSetting (s5);
641
CCSSetting *found = attemptToFindCCSSettingFromLossyName (settingList, "foo-bar-baz-bob-fred", TypeInt);
643
ASSERT_FALSE (found);
644
EXPECT_NE (found, s1);
645
EXPECT_NE (found, s2);
646
EXPECT_NE (found, s3);
647
EXPECT_NE (found, s4);
648
EXPECT_NE (found, s5);
657
TEST_F(CCSGSettingsTestFindSettingLossy, TestAttemptToFindCCSSettingFromLossyNameFailNoMatches)
659
char *name1 = strdup ("foo_bar_baz_bob");
660
char *name2 = strdup ("FOO_bar_baz_bob-richard");
661
char *name3 = strdup ("foo-bar");
662
char *name4 = strdup ("FOO_bar_baz_bob-richard");
664
CCSSetting *s1 = AddMockSettingWithNameAndType (name1, TypeInt);
665
CCSSetting *s2 = AddMockSettingWithNameAndType (name2, TypeInt);
666
CCSSetting *s3 = AddMockSettingWithNameAndType (name3, TypeInt);
667
CCSSetting *s4 = AddMockSettingWithNameAndType (name4, TypeString);
669
ExpectNameCallOnSetting (s1);
670
ExpectNameCallOnSetting (s2);
671
ExpectNameCallOnSetting (s3);
673
ExpectTypeCallOnSetting (s1);
674
ExpectTypeCallOnSetting (s2);
675
ExpectTypeCallOnSetting (s3);
676
ExpectTypeCallOnSetting (s4);
678
CCSSetting *found = attemptToFindCCSSettingFromLossyName (settingList, "foo-bar-baz-bob-fred", TypeInt);
680
ASSERT_FALSE (found);
681
EXPECT_NE (found, s1);
682
EXPECT_NE (found, s2);
683
EXPECT_NE (found, s3);
684
EXPECT_NE (found, s4);
694
class GListContainerEqualityInterface
698
virtual ~GListContainerEqualityInterface () {}
700
virtual bool operator== (GList *) const = 0;
701
bool operator!= (GList *l) const
703
return !(*this == l);
706
friend bool operator== (GList *lhs, const GListContainerEqualityInterface &rhs);
707
friend bool operator!= (GList *lhs, const GListContainerEqualityInterface &rhs);
711
operator== (GList *lhs, const GListContainerEqualityInterface &rhs)
717
operator!= (GList *lhs, const GListContainerEqualityInterface &rhs)
719
return !(rhs == lhs);
722
class GListContainerEqualityBase :
723
public GListContainerEqualityInterface
727
typedef boost::function <GList * (void)> PopulateFunc;
729
GListContainerEqualityBase (const PopulateFunc &populateGList) :
730
mList (populateGList ())
734
GListContainerEqualityBase (const GListContainerEqualityBase &other) :
735
mList (g_list_copy (other.mList))
739
GListContainerEqualityBase &
740
operator= (GListContainerEqualityBase &other)
745
GListContainerEqualityBase tmp (other);
751
void swap (GListContainerEqualityBase &other)
753
std::swap (this->mList, other.mList);
756
bool operator== (GList *other) const
758
unsigned int numInternal = g_list_length (mList);
759
unsigned int numOther = g_list_length (other);
761
if (numInternal != numOther)
764
GList *iterOther = other;
765
GList *iterInternal = mList;
767
for (unsigned int i = 0; i < numInternal; i++)
769
if (static_cast <CCSSettingType> (GPOINTER_TO_INT (iterOther->data)) !=
770
static_cast <CCSSettingType> (GPOINTER_TO_INT (iterInternal->data)))
773
iterOther = g_list_next (iterOther);
774
iterInternal = g_list_next (iterInternal);
780
~GListContainerEqualityBase ()
790
GList * populateBoolCCSTypes ()
793
ret = g_list_append (ret, GINT_TO_POINTER (static_cast <int> (TypeBool)));
794
ret = g_list_append (ret, GINT_TO_POINTER (static_cast <int> (TypeBell)));
798
GList * populateStringCCSTypes ()
801
ret = g_list_append (ret, GINT_TO_POINTER (static_cast <int> (TypeString)));
802
ret = g_list_append (ret, GINT_TO_POINTER (static_cast <int> (TypeColor)));
803
ret = g_list_append (ret, GINT_TO_POINTER (static_cast <int> (TypeKey)));
804
ret = g_list_append (ret, GINT_TO_POINTER (static_cast <int> (TypeButton)));
805
ret = g_list_append (ret, GINT_TO_POINTER (static_cast <int> (TypeEdge)));
806
ret = g_list_append (ret, GINT_TO_POINTER (static_cast <int> (TypeMatch)));
810
GList * populateIntCCSTypes ()
813
ret = g_list_append (ret, GINT_TO_POINTER (static_cast <int> (TypeInt)));
817
GList * populateDoubleCCSTypes ()
820
ret = g_list_append (ret, GINT_TO_POINTER (static_cast <int> (TypeFloat)));
824
GList * populateArrayCCSTypes ()
827
ret = g_list_append (ret, GINT_TO_POINTER (static_cast <int> (TypeList)));
831
struct GListContainerVariantTypeWrapper
833
const gchar *variantType;
834
GListContainerEqualityBase listOfCCSTypes;
837
GListContainerVariantTypeWrapper variantTypeToListOfCCSTypes[] =
839
{ "b", GListContainerEqualityBase (boost::bind (populateBoolCCSTypes)) },
840
{ "s", GListContainerEqualityBase (boost::bind (populateStringCCSTypes)) },
841
{ "i", GListContainerEqualityBase (boost::bind (populateIntCCSTypes)) },
842
{ "d", GListContainerEqualityBase (boost::bind (populateDoubleCCSTypes)) },
843
{ "a", GListContainerEqualityBase (boost::bind (populateArrayCCSTypes)) }
847
class CCSGSettingsTestVariantTypeToCCSTypeListFixture :
848
public ::testing::TestWithParam <GListContainerVariantTypeWrapper>
852
CCSGSettingsTestVariantTypeToCCSTypeListFixture () :
853
mListContainer (GetParam ())
859
GListContainerVariantTypeWrapper mListContainer;
862
TEST_P(CCSGSettingsTestVariantTypeToCCSTypeListFixture, TestVariantTypesInListTemplate)
864
GList *potentialTypeList = variantTypeToPossibleSettingType (mListContainer.variantType);
865
EXPECT_EQ (mListContainer.listOfCCSTypes, potentialTypeList);
867
g_list_free (potentialTypeList);
870
INSTANTIATE_TEST_CASE_P(CCSGSettingsTestVariantTypeToCCSTypeListInstantiation, CCSGSettingsTestVariantTypeToCCSTypeListFixture,
871
ValuesIn (variantTypeToListOfCCSTypes));