aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorRenato Araujo Oliveira Filho <renato.filho@canonical.com>2012-11-23 12:03:07 -0300
committerRenato Araujo Oliveira Filho <renato.filho@canonical.com>2012-11-23 12:03:07 -0300
commit6078bd7ddc6819d2650435313bb824442bbe033d (patch)
tree510e14d5585b7fa2777a1a51b9616be07e25de30 /tests
parent04391e9723278f8bb0a0985abd50aa9c3455980d (diff)
downloadqmenumodel-6078bd7ddc6819d2650435313bb824442bbe033d.tar.gz
qmenumodel-6078bd7ddc6819d2650435313bb824442bbe033d.tar.bz2
qmenumodel-6078bd7ddc6819d2650435313bb824442bbe033d.zip
Fixed QMenumodel behaviour when the GMenuModel is destroyed.
Diffstat (limited to 'tests')
-rw-r--r--tests/client/modeltest.cpp27
-rw-r--r--tests/script/menuscript.py3
2 files changed, 30 insertions, 0 deletions
diff --git a/tests/client/modeltest.cpp b/tests/client/modeltest.cpp
index c6b2f0e..0aa4b52 100644
--- a/tests/client/modeltest.cpp
+++ b/tests/client/modeltest.cpp
@@ -25,6 +25,19 @@
#include <QtTest>
#include <QDebug>
+extern "C" {
+#include <gio/gio.h>
+}
+
+class TestMenuModel : public QMenuModel
+{
+public:
+ TestMenuModel(GMenuModel *other, QObject *parent=0)
+ : QMenuModel(other, parent)
+ {
+ }
+};
+
class ModelTest : public QObject
{
Q_OBJECT
@@ -242,6 +255,20 @@ private Q_SLOTS:
delete model;
}
+ /*
+ * Test if the model is clearead after GMenuModel be destroyed
+ */
+ void testDestroyGMenuModel()
+ {
+ GMenu *menu = g_menu_new();
+ g_menu_append(menu, "test-menu0", NULL);
+ g_menu_append(menu, "test-menu1", NULL);
+ TestMenuModel model(reinterpret_cast<GMenuModel*>(menu));
+ QCOMPARE(model.rowCount(), 2);
+
+ g_object_unref(menu);
+ QCOMPARE(model.rowCount(), 0);
+ }
};
QTEST_MAIN(ModelTest)
diff --git a/tests/script/menuscript.py b/tests/script/menuscript.py
index 60cb33b..d25bb30 100644
--- a/tests/script/menuscript.py
+++ b/tests/script/menuscript.py
@@ -205,6 +205,9 @@ class ActionList(object):
if self._ownNameID:
Gio.bus_unown_name(self._ownNameID)
self._ownNameID = None
+
+ self._root = None
+ self._rootAction = None
self._restore()
def _onActionActivated(self, action, parameter):