|
3 | 3 | import time
|
4 | 4 | import tempfile
|
5 | 5 | import os
|
6 |
| -from Npp import notepad, editor, NOTIFICATION, LANGTYPE, SCINTILLANOTIFICATION |
| 6 | +from Npp import notepad, editor, NOTIFICATION, LANGTYPE, SCINTILLANOTIFICATION, MODIFICATIONFLAGS |
7 | 7 |
|
8 | 8 | globalCallbackCalled = False
|
9 | 9 |
|
@@ -188,5 +188,29 @@ def callback_with_disallowed_sync_method(self, args):
|
188 | 188 | notepad.activateBufferID(self.oldBufferID)
|
189 | 189 | self.callbackCalled = True
|
190 | 190 |
|
| 191 | + def callback_editor_before_modified(self, args): |
| 192 | + flags = args["modificationType"] |
| 193 | + self.assertTrue((flags & MODIFICATIONFLAGS.BEFOREDELETE != 0) or (flags & MODIFICATIONFLAGS.BEFOREINSERT != 0)) |
| 194 | + self.callbackCalled = True |
| 195 | + |
| 196 | + def test_add_modification_flags(self): |
| 197 | + original_mask = editor.getModEventMask() |
| 198 | + self.assertTrue(notepad.addModificationFlags(MODIFICATIONFLAGS.BEFOREDELETE | MODIFICATIONFLAGS.BEFOREINSERT)) |
| 199 | + editor.setModEventMask(MODIFICATIONFLAGS.BEFOREDELETE | MODIFICATIONFLAGS.BEFOREINSERT) |
| 200 | + editor.callback(lambda a: self.callback_editor_before_modified(a), [SCINTILLANOTIFICATION.MODIFIED]) |
| 201 | + editor.write('A') |
| 202 | + self.poll_for_callback() |
| 203 | + self.assertTrue(self.callbackCalled, "BEFOREINSERT test failed, callback not called") |
| 204 | + self.callbackCalled = False |
| 205 | + editor.undo() |
| 206 | + self.poll_for_callback() |
| 207 | + self.assertTrue(self.callbackCalled, "BEFOREDELETE test failed, callback not called") |
| 208 | + editor.setModEventMask(original_mask) |
| 209 | + |
| 210 | + def test_add_modification_flags_invalid(self): |
| 211 | + with self.assertRaises(RuntimeError): |
| 212 | + notepad.addModificationFlags(0x800000) |
| 213 | + |
| 214 | + |
191 | 215 |
|
192 | 216 | suite = unittest.TestLoader().loadTestsFromTestCase(NotepadCallbackTestCase)
|
0 commit comments