NCL Composer  0.1.5
 All Classes Functions Variables Pages
tst_ModulePlugin.cpp
1 #include "tst_ModulePlugin.h"
2 
3 void tst_ModulePlugin::initTestCase()
4 {
5 #ifdef Q_WS_MAC
6  pluginDir = "/Library/Application Support/Composer/";
7 #elif WIN32
8  //TODO:
9 #else
10  pluginDir = "/usr/local/lib/composer/extensions/";
11 #endif
12  pgControl = PluginControl::getInstance();
13 }
14 
15 void tst_ModulePlugin::cleanupTestCase()
16 {
17  PluginControl::releaseInstance();
18  pgControl = NULL;
19 }
20 
21 void tst_ModulePlugin::loadPluginDir()
22 {
23  QList<IPluginFactory*> list;
24 
25  pgControl->loadPlugins(pluginDir);
26  list = pgControl->getLoadedPlugins();
27  QCOMPARE(list.isEmpty(),false);
28 
29  /* Load the same plugin */
30  int size = list.size();
31  QVERIFY(pgControl->loadPlugin(pluginDir+"libdebug_console.so"));
32  list = pgControl->getLoadedPlugins();
33  QCOMPARE(list.size(),size);
34 
35  /* load a non existent plugin */
36  QVERIFY(!pgControl->loadPlugin("blah"));
37  list = pgControl->getLoadedPlugins();
38  QCOMPARE(list.size(),size);
39 }
40 
41 void tst_ModulePlugin::pluginName_data()
42 {
43  QTest::addColumn<QString>("fileName");
44 
45 
46 #ifdef Q_WS_MAC
47  QTest::newRow("TEXTUAL") << pluginDir + "libncl_textual_plugin.dylib";
48  QTest::newRow("DEBUG") << pluginDir + "libdebug_console.dylib";
49  QTest::newRow("OUTLINE") << pluginDir + "liboutline_view.dylib";
50  QTest::newRow("PROPERTIES") << pluginDir + "libproperties_view.dylib";
51  QTest::newRow("QNLY") << pluginDir + "libQnly.dylib";
52  QTest::newRow("QNST") << pluginDir + "libQnst.dylib";
53 #elif WIN32
54  QTest::newRow("NCL") << profileDir+QDir::separator()+
55  "NCL"+QDir::separator()+"NCLLanguageProfile.dll";
56 #else
57  QTest::newRow("TEXTUAL") << pluginDir + "libncl_textual_plugin.so";
58  QTest::newRow("DEBUG") << pluginDir + "libdebug_console.so";
59  QTest::newRow("OUTLINE") << pluginDir + "liboutline_view.so";
60  QTest::newRow("PROPERTIES") << pluginDir + "libproperties_view.so";
61  QTest::newRow("QNLY") << pluginDir + "libQnly.so";
62  QTest::newRow("QNST") << pluginDir + "libQnst.so";
63 #endif
64 }
65 
66 void tst_ModulePlugin::pluginName()
67 {
68  QFETCH(QString, fileName);
69 
70  IPluginFactory *factory = NULL;
71 
72  factory = pgControl->loadPlugin(fileName);
73  QVERIFY(factory);
74 
75 }
76 
77 void tst_ModulePlugin::pluginLoadBenchmark_data()
78 {
79  QTest::addColumn<QString>("fileName");
80 
81 #ifdef Q_WS_MAC
82  QTest::newRow("TEXTUAL") << pluginDir + "libncl_textual_plugin.dylib";
83  QTest::newRow("DEBUG") << pluginDir + "libdebug_console.dylib";
84  QTest::newRow("OUTLINE") << pluginDir + "liboutline_view.dylib";
85  QTest::newRow("PROPERTIES") << pluginDir + "libproperties_view.dylib";
86  QTest::newRow("QNLY") << pluginDir + "libQnly.dylib";
87  QTest::newRow("QNST") << pluginDir + "libQnst.dylib";
88 #elif WIN32
89  QTest::newRow("NCL") << profileDir+QDir::separator()+
90  "NCL"+QDir::separator()+"NCLLanguageProfile.dll";
91 #else
92  QTest::newRow("TEXTUAL") << pluginDir + "libncl_textual_plugin.so";
93  QTest::newRow("DEBUG") << pluginDir + "libdebug_console.so";
94  QTest::newRow("OUTLINE") << pluginDir + "liboutline_view.so";
95  QTest::newRow("PROPERTIES") << pluginDir + "libproperties_view.so";
96  QTest::newRow("QNLY") << pluginDir + "libQnly.so";
97  QTest::newRow("QNST") << pluginDir + "libQnst.so";
98 #endif
99 }
100 
101 void tst_ModulePlugin::pluginLoadBenchmark()
102 {
103  if (!isBenchmark)
104  QSKIP("This test is not a benchmark test", SkipSingle);
105 
106  QFETCH(QString,fileName);
107 
108  QBENCHMARK
109  {
110  pgControl->loadPlugin(fileName);
111  }
112 }