[gjs: 7/22] testGtk3: Ensure that disposed signal callback gets called with valid object
- From: Philip Chimento <pchimento src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gjs: 7/22] testGtk3: Ensure that disposed signal callback gets called with valid object
- Date: Fri, 23 Apr 2021 04:56:06 +0000 (UTC)
commit 805d07e79265022c40b586dc7b12ec29c5b6d068
Author: Marco Trevisan (TreviƱo) <mail 3v1n0 net>
Date: Wed Mar 24 20:42:19 2021 +0100
testGtk3: Ensure that disposed signal callback gets called with valid object
As per previous commits we handle the disposal differently, so ensure
that all works as expected.
installed-tests/js/testGtk3.js | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
---
diff --git a/installed-tests/js/testGtk3.js b/installed-tests/js/testGtk3.js
index 8d08481f..a6ba2642 100644
--- a/installed-tests/js/testGtk3.js
+++ b/installed-tests/js/testGtk3.js
@@ -214,6 +214,23 @@ describe('Gtk overrides', function () {
'GTK vfuncs are not called if the object is disposed');
});
+ it('destroy signal is emitted while disposing objects', function () {
+ const label = new Gtk.Label({label: 'Hello'});
+ const handleDispose = jasmine.createSpy('handleDispose').and.callFake(() => {
+ expect(label.label).toBe('Hello');
+ });
+ label.connect('destroy', handleDispose);
+ label.destroy();
+
+ expect(handleDispose).toHaveBeenCalledWith(label);
+
+ GLib.test_expect_message('Gjs', GLib.LogLevelFlags.LEVEL_CRITICAL,
+ 'Object Gtk.Label (0x* deallocated *');
+ expect(label.label).toBeUndefined();
+ GLib.test_assert_expected_messages_internal('Gjs', 'testGtk3.js', 0,
+ 'GTK destroy signal is emitted while disposing objects');
+ });
+
it('accepts string in place of GdkAtom', function () {
expect(() => Gtk.Clipboard.get(1)).toThrow();
expect(() => Gtk.Clipboard.get(true)).toThrow();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]