From ff8656c0dfd7a2eb5aa19a167f92e34c75fd6126 Mon Sep 17 00:00:00 2001 From: Joachim Metz Date: Mon, 24 May 2021 10:14:11 +0200 Subject: [PATCH] Added tests for parser preferred time zone handling #3287 --- test_data/MSHist012013031020130311-index.dat | Bin 0 -> 32768 bytes tests/parsers/msiecf.py | 43 ++++++++++++++++++- 2 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 test_data/MSHist012013031020130311-index.dat diff --git a/test_data/MSHist012013031020130311-index.dat b/test_data/MSHist012013031020130311-index.dat new file mode 100644 index 0000000000000000000000000000000000000000..154f32bbd101a19aa3d11356e4dbf13e0e8d9945 GIT binary patch literal 32768 zcmeI4Z)n_P9LJwJH-v6deWeT`4m}3rlKa!{X5G=O-CPU3v9`9`?7yYCq|KH~Zb^1M zoG%V>PDO{zDI($~zM4>cp)Uksbjtc-qO0Hw*|j(59d!wy|ukDjd`U+%`Q-=n1a{?N{u zC($1F?Y#PCU;lj?3GVx2W1rLLIrr_no~PG#=$&6PzpZT@ZZ|P{*eY;%axe?Uwz8yPra}o`@Z|BwL^r`nwqF#ii zzj{qW`|H=Q+w(jz^ABoj!u#(>6rPo)17^F1(%RxeYa|qohN9t6 zaUO1^g6xE0q+1zgQc{xYq<%P^nyTE#WHvKNLF5k02F>Z|?Bd}) zFD=LKbU@$vTRTQ`x^YT|HJ*Pl)sIiDXvGYcf8ux0^zsUzxVuI)PLFi@BglU zYX9nMIDhId_C+iIn8*BM)z^R7^-rGv7N37)X)L8n0xt%1jgNQj2=*18jM~*K@^O41 z`BPWv>jnPF1Fu^AagY3Q*ZjPi6zIhQVA4#9z2;-Va{S)w-vxiM{%!m~+m|5N z;Zj1pbbSOlIX%GztsfObEwsUD^!W1uo>StHz@hl9eG&eqjxQE4f79iKlNNuMNB%C? z{3V*=AW*m-@Qdbckx$M606cfnu0{!4&1em}=~J2zQ(;)HEr s01SWuFaQR?02lxRU;qq&0WbgtzyKHk17H9QfB`T72EYIqxRVY12lro{VgLXD literal 0 HcmV?d00001 diff --git a/tests/parsers/msiecf.py b/tests/parsers/msiecf.py index 0ad1dcbc6c..69b0b6f5c6 100644 --- a/tests/parsers/msiecf.py +++ b/tests/parsers/msiecf.py @@ -24,9 +24,10 @@ def testParse(self): # Number of items : 7 # Number of recovered items : 11 - self.assertEqual(storage_writer.number_of_warnings, 0) # 7 + 11 records, each with 4 records. self.assertEqual(storage_writer.number_of_events, (7 + 11) * 4) + self.assertEqual(storage_writer.number_of_extraction_warnings, 0) + self.assertEqual(storage_writer.number_of_recovery_warnings, 0) events = list(storage_writer.GetEvents()) @@ -79,7 +80,8 @@ def testParseLeakAndRedirect(self): """Tests the Parse function with leak and redirected records.""" parser = msiecf.MSIECFParser() storage_writer = self._ParseFile(['nfury_index.dat'], parser) - self.assertEqual(storage_writer.number_of_warnings, 0) + self.assertEqual(storage_writer.number_of_extraction_warnings, 0) + self.assertEqual(storage_writer.number_of_recovery_warnings, 0) # MSIE Cache File information: # Version : 5.2 @@ -136,6 +138,43 @@ def testParseLeakAndRedirect(self): self.CheckEventValues(storage_writer, events[21], expected_event_values) + def testParseWithTimeZone(self): + """Tests the Parse function with a time zone.""" + parser = msiecf.MSIECFParser() + storage_writer = self._ParseFile( + ['MSHist012013031020130311-index.dat'], parser, + timezone='Europe/Amsterdam') + + self.assertEqual(storage_writer.number_of_events, 83) + self.assertEqual(storage_writer.number_of_extraction_warnings, 0) + self.assertEqual(storage_writer.number_of_recovery_warnings, 0) + + events = list(storage_writer.GetEvents()) + + # Test primary last visited time, in UTC, event. + expected_event_values = { + 'timestamp': '2013-03-10 10:18:17.281000', + 'timestamp_desc': definitions.TIME_DESCRIPTION_LAST_VISITED, + 'url': ':2013031020130311: -@:Host: libmsiecf.googlecode.com'} + + self.CheckEventValues(storage_writer, events[80], expected_event_values) + + # Test secondary last visited time, in local time, event. + expected_event_values = { + 'timestamp': '2013-03-10 10:18:17.281000', + 'timestamp_desc': definitions.TIME_DESCRIPTION_LAST_VISITED, + 'url': ':2013031020130311: -@:Host: libmsiecf.googlecode.com'} + + self.CheckEventValues(storage_writer, events[81], expected_event_values) + + # Test last checked time event. + expected_event_values = { + 'timestamp': '2013-03-10 10:18:18.000000', + 'timestamp_desc': definitions.TIME_DESCRIPTION_LAST_CHECKED, + 'url': ':2013031020130311: -@:Host: libmsiecf.googlecode.com'} + + self.CheckEventValues(storage_writer, events[82], expected_event_values) + if __name__ == '__main__': unittest.main()