about summary refs log tree commit diff stats
path: root/src/omemo/omemo.c
Commit message (Expand)AuthorAgeFilesLines
...
* Decrypt all incoming OMEMO msgPaul Fariello2019-06-201-0/+7
* Free contacts in omemo_start_sessions()Michael Vetter2019-06-191-0/+1
* Free OMEMO session store upon disconnectMichael Vetter2019-06-191-0/+1
* Add copyright to omemo codeMichael Vetter2019-06-171-0/+34
* Remove OMEMO session when untrusting a fingerprintPaul Fariello2019-06-071-15/+114
* Correctly handle malformed OMEMO messagesPaul Fariello2019-05-231-4/+8
* OMEMO: Initialize result in omemo_automatic_startMichael Vetter2019-04-291-1/+1
* Handle missing real jid in OMEMO encrypted MUCPaul Fariello2019-04-171-3/+7
* Add OMEMO policyPaul Fariello2019-04-171-15/+62
* Don't persist OMEMO {signed,}prekey cleaning on disconnectPaul Fariello2019-04-141-10/+0
* Handle malformed OMEMO identity.txtPaul Fariello2019-04-141-7/+34
* Don't unload OMEMO cryto on disconnect if OMEMO wasn't loadedPaul Fariello2019-04-141-0/+4
* Try to start sessions with every jid in rosterPaul Fariello2019-04-101-0/+17
* Automatically starts OMEMO if one identity is trustedPaul Fariello2019-04-101-6/+23
* Rework trusted fingerprint storagePaul Fariello2019-04-101-20/+71
* Wait for discovery end to publish omemo devicelist and bundlePaul Fariello2019-04-101-7/+14
* Prefix static function with _Paul Fariello2019-04-101-41/+41
* Ensure pre keys are generated if missing from long term storagePaul Fariello2019-04-101-24/+51
* Permanently store pre keysPaul Fariello2019-04-101-20/+76
* Handle bundle publication error on publish-optionsPaul Fariello2019-04-101-2/+2
* Ensure signal context is built on connectionPaul Fariello2019-04-101-20/+23
* Don't use glib 2.58 funcPaul Fariello2019-04-101-3/+1
* Add fingerprint autocompletionPaul Fariello2019-04-101-1/+21
* Use /omemo fingerprint to show contact fingerprintsPaul Fariello # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. if __name__ == '__main__': from __init__ import init; init() from unittest import TestCase, main from ranger.container.commandlist import CommandList as CL class Test(TestCase): def assertKeyError(self, obj, key): self.assertRaises(KeyError, obj.__getitem__, key) def test_commandist(self): cl = CL() fnc = lambda arg: 1 fnc2 = lambda arg: 2 dmy = cl.dummy_object cl.bind(fnc, 'aaaa') cl.rebuild_paths() self.assertEqual(dmy, cl['a']) self.assertEqual(dmy, cl['aa']) self.assertEqual(dmy, cl['aaa']) self.assertEqual(fnc, cl['aaaa'].execute) self.assertKeyError(cl, 'aabb') self.assertKeyError(cl, 'aaaaa') cl.bind(fnc, 'aabb') cl.rebuild_paths() self.assertEqual(dmy, cl['a']) self.assertEqual(dmy, cl['aa']) self.assertEqual(dmy, cl['aab']) self.assertEqual(fnc, cl['aabb'].execute) self.assertEqual(dmy, cl['aaa']) self.assertEqual(fnc, cl['aaaa'].execute) cl.unbind('aabb') cl.rebuild_paths() self.assertEqual(dmy, cl['a']) self.assertEqual(dmy, cl['aa']) self.assertKeyError(cl, 'aabb') self.assertKeyError(cl, 'aab') self.assertEqual(dmy, cl['aaa']) self.assertEqual(fnc, cl['aaaa'].execute) # Hints work different now. Since a rework of this system # is planned anyway, there is no need to fix the test. # hint_text = 'some tip blablablba' # cl.hint(hint_text, 'aa') # cl.rebuild_paths() self.assertEqual(dmy, cl['a']) # self.assertEqual(hint_text, cl['aa'].text) self.assertEqual(dmy, cl['aaa']) self.assertEqual(fnc, cl['aaaa'].execute) # ------------------------ test aliases cl.alias('aaaa', 'cc') cl.rebuild_paths() self.assertEqual(dmy, cl['c']) self.assertEqual(cl['cc'].execute, cl['aaaa'].execute) cl.bind(fnc2, 'aaaa') cl.rebuild_paths() self.assertEqual(cl['cc'].execute, cl['aaaa'].execute) cl.unbind('cc') cl.rebuild_paths() self.assertEqual(fnc2, cl['aaaa'].execute) self.assertKeyError(cl, 'cc') # ----------------------- test clearing cl.clear() self.assertKeyError(cl, 'a') self.assertKeyError(cl, 'aa') self.assertKeyError(cl, 'aaa') self.assertKeyError(cl, 'aaaa') self.assertKeyError(cl, 'aab') self.assertKeyError(cl, 'aabb') if __name__ == '__main__': main()