~townsend/compiz/fix-auto-vp-switch-0.9.10

« back to all changes in this revision

Viewing changes to src/pluginclasshandler/tests/construct/src/test-pch-construct.cpp

  • Committer: MC Return
  • Date: 2013-06-29 09:36:01 UTC
  • mfrom: (3750 0.9.10)
  • mto: This revision was merged to the branch mainline in revision 3770.
  • Revision ID: mc.return@gmx.net-20130629093601-trksogeaxli98ln9
MergedĀ latestĀ lp:compiz

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
#include <test-pluginclasshandler.h>
2
2
 
3
 
class ConstructPlugin: public Plugin, public PluginClassHandler<ConstructPlugin,
4
 
        Base>
5
 
{
6
 
public:
7
 
    ConstructPlugin (Base * base) :
8
 
            Plugin(base), PluginClassHandler<ConstructPlugin, Base>(base)
9
 
    {
10
 
    }
11
 
};
12
 
 
13
 
TEST_F( CompizPCHTest, TestConstruct )
 
3
class BuildPlugin:
 
4
    public Plugin,
 
5
    public PluginClassHandler <BuildPlugin, Base>
 
6
{
 
7
    public:
 
8
        BuildPlugin (Base *base) :
 
9
            Plugin(base),
 
10
            PluginClassHandler <BuildPlugin, Base> (base)
 
11
        {
 
12
        }
 
13
};
 
14
 
 
15
class PluginClassHandlerConstruction :
 
16
    public CompizPCHTest
 
17
{
 
18
    public:
 
19
 
 
20
        PluginClassHandlerConstruction ();
 
21
        ~PluginClassHandlerConstruction ();
 
22
};
 
23
 
 
24
PluginClassHandlerConstruction::PluginClassHandlerConstruction ()
 
25
{
 
26
    namespace cpi = compiz::plugin::internal;
 
27
    cpi::LoadedPluginClassBridge <BuildPlugin, Base>::allowInstantiations (key);
 
28
}
 
29
 
 
30
PluginClassHandlerConstruction::~PluginClassHandlerConstruction ()
 
31
{
 
32
    namespace cpi = compiz::plugin::internal;
 
33
    cpi::LoadedPluginClassBridge <BuildPlugin, Base>::disallowInstantiations (key);
 
34
}
 
35
 
 
36
TEST_F (PluginClassHandlerConstruction, TestConstruction)
14
37
{
15
38
    Plugin *p;
16
39
 
17
40
    bases.push_back(new Base());
18
 
    plugins.push_back(static_cast<Plugin *>(new ConstructPlugin(bases.back())));
 
41
    plugins.push_back(static_cast<Plugin *>(new BuildPlugin(bases.back())));
19
42
    bases.push_back(new Base());
20
 
    plugins.push_back(static_cast<Plugin *>(new ConstructPlugin(bases.back())));
 
43
    plugins.push_back(static_cast<Plugin *>(new BuildPlugin(bases.back())));
21
44
 
22
45
    if (bases.front()->pluginClasses.size() != globalPluginClassIndices.size())
23
46
    {
26
49
    }
27
50
 
28
51
    if (!ValueHolder::Default()->hasValue(
29
 
            compPrintf("%s_index_%lu", typeid(ConstructPlugin).name(), 0)))
 
52
            compPrintf("%s_index_%lu", typeid(BuildPlugin).name(), 0)))
30
53
    {
31
54
        FAIL() << "ValueHolder does not have value "
32
 
                << compPrintf("%s_index_%lu", typeid(ConstructPlugin).name(), 0);
 
55
                << compPrintf("%s_index_%lu", typeid(BuildPlugin).name(), 0);
33
56
    }
34
57
 
35
 
    p = ConstructPlugin::get(bases.front());
 
58
    p = BuildPlugin::get(bases.front());
36
59
 
37
60
    if (p != plugins.front())
38
61
    {
39
62
        FAIL() << "Returned Plugin * is not plugins.front ()";
40
63
    }
41
64
 
42
 
    p = ConstructPlugin::get(bases.back());
 
65
    p = BuildPlugin::get(bases.back());
43
66
 
44
67
    if (p != plugins.back())
45
68
    {