diff --git a/tests/phpunit.xml b/tests/phpunit.xml index a96591c..d6893a0 100644 --- a/tests/phpunit.xml +++ b/tests/phpunit.xml @@ -1,15 +1,16 @@ body_converter.php data.php data_calendar.php data_tasks.php globalid_converter.php message.php timezone_converter.php + wbxml.php diff --git a/tests/wbxml.php b/tests/wbxml.php index 29a5c37..3b227ae 100644 --- a/tests/wbxml.php +++ b/tests/wbxml.php @@ -1,888 +1,892 @@ loadXML($lastSyncCollection['lastXML']); // // // try { // $decoder = new Syncroton_Wbxml_Decoder($dom); // $requestBody = $decoder->decode(); // if ($this->_logger instanceof Zend_Log) { // $requestBody->formatOutput = true; // $this->_logger->debug(__METHOD__ . '::' . __LINE__ . " xml request:\n" . $requestBody->saveXML()); // } // } catch(Syncroton_Wbxml_Exception_UnexpectedEndOfFile $e) { // $requestBody = NULL; // } // //TODO validate output //} public function testEncode() { $outputStream = fopen("php://temp", 'r+'); $encoder = new Syncroton_Wbxml_Encoder($outputStream, 'UTF-8', 3); $xml = << 2 tasksId clientId2 task2 0 2020-11-04T00:00:00.000Z 2020-11-03T23:00:00.000Z clientId3 task3 0 2020-11-04T00:00:00.000Z 2020-11-03T23:00:00.000Z 16 EOF; $dom = new DOMDocument(); $dom->loadXML($xml); $encoder->encode($dom); rewind($outputStream); $output = stream_get_contents($outputStream); // print("----"); // print(var_export($output, true)); // print("----"); $this->assertEquals( base64_decode('AwFqAEVcT0sDMgABUgN0YXNrc0lkAAFWR0wDY2xpZW50SWQyAAFdAAlgA3Rhc2syAAFKAzAAAUwDMjAyMC0xMS0wNFQwMDowMDowMC4wMDBaAAFNAzIwMjAtMTEtMDNUMjM6MDA6MDAuMDAwWgABAQEAAEdMA2NsaWVudElkMwABXQAJYAN0YXNrMwABSgMwAAFMAzIwMjAtMTEtMDRUMDA6MDA6MDAuMDAwWgABTQMyMDIwLTExLTAzVDIzOjAwOjAwLjAwMFoAAQEBAQEBAABVAzE2AAEB'), $output ); } public function testEncodeFolderSync() { $outputStream = fopen("php://temp", 'r+'); $encoder = new Syncroton_Wbxml_Encoder($outputStream, 'UTF-8', 3); $xml = << 1 1 18 2685b302b79f58d2753199545e3cb8be 0 Test2 13 9770b083c68e8584f396d15a116d6608 0 DavidCalendar 13 0f66388806743c514b8063bf0dc87486 0 SergeyCalendar 13 cca1b81c734abbcd669bea90d23e08ae 0 Calendar 8 ab1ddb4ef8e8f8fcc2c9f5a7f9062452 0 PubCal 13 d98bd8721371544ed095841ead941893 0 (david) Test2 13 9e7b9656ef61d4af2fb2fdcabe600079 0 (david) DavidCalendar 13 384cf2d877c39a622fdc2a16898052e2 0 (david) Calendar 13 Contacts::Syncroton 0 Contacts 9 1bb8c55fe84d52c6968db2571f7dc124 0 Archive 12 b51abe73e9e98fe200a4afe409050502 38b950ebd62cd9a66929c89615d0fc04 Spam 12 cf529c792fc87d1f207435b3921bb02e 0 Sent 5 715ed9ea29b8a5377a69c1f758037c65 0 Spam 12 db0d959a3aeb21757f8849a830947a7a 0 Trash 4 5ac9ec2e1a9d99e2e10cabe4abf26729 0 Drafts 3 38b950ebd62cd9a66929c89615d0fc04 0 INBOX 2 fc56f4c7ffe0aefa622db9f8d9186c4a 0 Notes 10 90335880f65deff6e521acea2b71a773 0 Tasks 7 EOF; $dom = new DOMDocument(); $dom->loadXML($xml); $encoder->encode($dom); rewind($outputStream); $output = stream_get_contents($outputStream); // print("----"); // print(var_export(base64_encode($output), true)); // print("----"); $this->assertEquals( base64_decode('AwFqAAAHVkwDMQABUgMxAAFOVwMxOAABT0gDMjY4NWIzMDJiNzlmNThkMjc1MzE5OTU0NWUzY2I4YmUAAUkDMAABRwNUZXN0MgABSgMxMwABAU9IAzk3NzBiMDgzYzY4ZTg1ODRmMzk2ZDE1YTExNmQ2NjA4AAFJAzAAAUcDRGF2aWRDYWxlbmRhcgABSgMxMwABAU9IAzBmNjYzODg4MDY3NDNjNTE0YjgwNjNiZjBkYzg3NDg2AAFJAzAAAUcDU2VyZ2V5Q2FsZW5kYXIAAUoDMTMAAQFPSANjY2ExYjgxYzczNGFiYmNkNjY5YmVhOTBkMjNlMDhhZQABSQMwAAFHA0NhbGVuZGFyAAFKAzgAAQFPSANhYjFkZGI0ZWY4ZThmOGZjYzJjOWY1YTdmOTA2MjQ1MgABSQMwAAFHA1B1YkNhbAABSgMxMwABAU9IA2Q5OGJkODcyMTM3MTU0NGVkMDk1ODQxZWFkOTQxODkzAAFJAzAAAUcDKGRhdmlkKSBUZXN0MgABSgMxMwABAU9IAzllN2I5NjU2ZWY2MWQ0YWYyZmIyZmRjYWJlNjAwMDc5AAFJAzAAAUcDKGRhdmlkKSBEYXZpZENhbGVuZGFyAAFKAzEzAAEBT0gDMzg0Y2YyZDg3N2MzOWE2MjJmZGMyYTE2ODk4MDUyZTIAAUkDMAABRwMoZGF2aWQpIENhbGVuZGFyAAFKAzEzAAEBT0gDQ29udGFjdHM6OlN5bmNyb3RvbgABSQMwAAFHA0NvbnRhY3RzAAFKAzkAAQFPSAMxYmI4YzU1ZmU4NGQ1MmM2OTY4ZGIyNTcxZjdkYzEyNAABSQMwAAFHA0FyY2hpdmUAAUoDMTIAAQFPSANiNTFhYmU3M2U5ZTk4ZmUyMDBhNGFmZTQwOTA1MDUwMgABSQMzOGI5NTBlYmQ2MmNkOWE2NjkyOWM4OTYxNWQwZmMwNAABRwNTcGFtAAFKAzEyAAEBT0gDY2Y1MjljNzkyZmM4N2QxZjIwNzQzNWIzOTIxYmIwMmUAAUkDMAABRwNTZW50AAFKAzUAAQFPSAM3MTVlZDllYTI5YjhhNTM3N2E2OWMxZjc1ODAzN2M2NQABSQMwAAFHA1NwYW0AAUoDMTIAAQFPSANkYjBkOTU5YTNhZWIyMTc1N2Y4ODQ5YTgzMDk0N2E3YQABSQMwAAFHA1RyYXNoAAFKAzQAAQFPSAM1YWM5ZWMyZTFhOWQ5OWUyZTEwY2FiZTRhYmYyNjcyOQABSQMwAAFHA0RyYWZ0cwABSgMzAAEBT0gDMzhiOTUwZWJkNjJjZDlhNjY5MjljODk2MTVkMGZjMDQAAUkDMAABRwNJTkJPWAABSgMyAAEBT0gDZmM1NmY0YzdmZmUwYWVmYTYyMmRiOWY4ZDkxODZjNGEAAUkDMAABRwNOb3RlcwABSgMxMAABAU9IAzkwMzM1ODgwZjY1ZGVmZjZlNTIxYWNlYTJiNzFhNzczAAFJAzAAAUcDVGFza3MAAUoDNwABAQEB'), $output ); } public function testEncodeCalendar() { $outputStream = fopen("php://temp", 'r+'); $encoder = new Syncroton_Wbxml_Encoder($outputStream, 'UTF-8', 3); $xml = << 0 38b950ebd62cd9a66929c89615d0fc04 0 0 512 0 2 8 4 1 0 cca1b81c734abbcd669bea90d23e08ae 0 0 512 0 1 1 0 Contacts::Syncroton 0 0 512 0 1 1 0 db0d959a3aeb21757f8849a830947a7a 0 0 512 0 2 8 4 1 0 cf529c792fc87d1f207435b3921bb02e 0 0 512 0 2 8 4 1 0 90335880f65deff6e521acea2b71a773 0 0 512 0 1 1 0 1bb8c55fe84d52c6968db2571f7dc124 0 0 512 0 2 8 4 1 0 715ed9ea29b8a5377a69c1f758037c65 0 0 512 0 2 8 4 1 0 b51abe73e9e98fe200a4afe409050502 0 0 512 0 2 8 4 1 0 0f66388806743c514b8063bf0dc87486 0 0 512 0 1 1 0 2685b302b79f58d2753199545e3cb8be 0 0 512 0 1 1 0 384cf2d877c39a622fdc2a16898052e2 0 0 512 0 1 1 0 9770b083c68e8584f396d15a116d6608 0 0 512 0 1 1 0 9e7b9656ef61d4af2fb2fdcabe600079 0 0 512 0 1 1 0 ab1ddb4ef8e8f8fcc2c9f5a7f9062452 0 0 512 0 1 1 0 d98bd8721371544ed095841ead941893 0 0 512 0 1 1 16 EOF; $dom = new DOMDocument(); $dom->loadXML($xml); $encoder->encode($dom); rewind($outputStream); $output = stream_get_contents($outputStream); // print("----"); // print(var_export(base64_encode($output), true)); // print("----"); $this->assertEquals( base64_decode('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'), $output ); } public function testEncodeEmail() { $outputStream = fopen("php://temp", 'r+'); $encoder = new Syncroton_Wbxml_Encoder($outputStream, 'UTF-8', 3); $xml = << Email 2 38b950ebd62cd9a66929c89615d0fc04 1 38b950ebd62cd9a66929c89615d0fc04::1 2023-05-06T14:51:40.000Z "Mollekopf, Christian" <christian@example.ch> 65001 Foobar 1 christian@example.ch 0 4 Return-Path: <christian@example.ch> Received: from imapb010.mykolab.com ([unix socket]) by imapb010.mykolab.com (Cyrus 2.5.10-49-g2e214b4-Kolab-2.5.10-8.1.el7.kolab_14) with LMTPA; Wed, 09 Aug 2017 18:37:01 +0200 X-Sieve: CMU Sieve 2.4 Received: from int-mx002.mykolab.com (unknown [10.9.13.2]) by imapb010.mykolab.com (Postfix) with ESMTPS id 0A93910A25047 for <christian@example.ch>; Wed, 9 Aug 2017 18:37:01 +0200 (CEST) Received: from int-subm002.mykolab.com (unknown [10.9.37.2]) by int-mx002.mykolab.com (Postfix) with ESMTPS id EC06AF6E for <christian@example.ch>; Wed, 9 Aug 2017 18:37:00 +0200 (CEST) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_291b8e96564265636432c6d494e02322" Date: Sat, 06 May 2023 14:41:40 From: "Mollekopf, Christian" <christian@example.ch> To: christian@example.ch Subject: Foobar 1 Message-ID: <foobar1@example.org> --=_291b8e96564265636432c6d494e02322 Content-Type: multipart/alternative; boundary="=_ceff0fd19756f45ed1295ee2069ff8e0" --=_ceff0fd19756f45ed1295ee2069ff8e0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII sdlkjsdjf --=_ceff0fd19756f45ed1295ee2069ff8e0 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=UTF-8 <html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; charset= =3DUTF-8" /></head><body style=3D'font-size: 10pt; font-family: Verdana,Gen= eva,sans-serif'> <p>sdlkjsdjf</p> </body></html> --=_ceff0fd19756f45ed1295ee2069ff8e0-- --=_291b8e96564265636432c6d494e02322 Content-Transfer-Encoding: base64 Content-Type: text/plain; name=xorg.conf Content-Disposition: attachment; filename=xorg.conf; size=211 U2VjdGlvbiAiRGV2aWNlIgogICAgSWRlbnRpZmllciAgICAgIkRldmljZTAiCiAgICBEcml2ZXIg ICAgIEJvYXJkTmFtZSAgICAgICJOVlMgNDIwME0iCiAgICBPcHRpb24gIk5vTG9nbyIgInRydWUi CiAgICBPcHRpb24gIlVzZUVESUQiICJ0cnVlIgpFbmRTZWN0aW9uCg== --=_291b8e96564265636432c6d494e02322-- 2 IPM.Note urn:content-classes:message xorg.conf 38b950ebd62cd9a66929c89615d0fc04::5::2 1 35100212 EOF; $dom = new DOMDocument(); $dom->loadXML($xml); $encoder->encode($dom); rewind($outputStream); $output = stream_get_contents($outputStream); // print("----"); // print(var_export(base64_encode($output), true)); // print("----"); $this->assertEquals( base64_decode('AwFqAEVcT1ADRW1haWwAAUsDMgABUgMzOGI5NTBlYmQ2MmNkOWE2NjkyOWM4OTYxNWQwZmMwNAABTgMxAAEUVkdNAzM4Yjk1MGViZDYyY2Q5YTY2OTI5Yzg5NjE1ZDBmYzA0OjoxAAFdAAJPAzIwMjMtMDUtMDZUMTQ6NTE6NDAuMDAwWgABWAMiTW9sbGVrb3BmLCBDaHJpc3RpYW4iIDxjaHJpc3RpYW5AZXhhbXBsZS5jaD4AAXkDNjUwMDEAAVQDRm9vYmFyIDEAAVYDY2hyaXN0aWFuQGV4YW1wbGUuY2gAAVUDMAABOgARSkYDNAABSwNSZXR1cm4tUGF0aDogPGNocmlzdGlhbkBleGFtcGxlLmNoPg0KUmVjZWl2ZWQ6IGZyb20gaW1hcGIwMTAubXlrb2xhYi5jb20gKFt1bml4IHNvY2tldF0pDQogICAgICAgIGJ5IGltYXBiMDEwLm15a29sYWIuY29tIChDeXJ1cyAyLjUuMTAtNDktZzJlMjE0YjQtS29sYWItMi41LjEwLTguMS5lbDcua29sYWJfMTQpIHdpdGggTE1UUEE7DQogICAgICAgIFdlZCwgMDkgQXVnIDIwMTcgMTg6Mzc6MDEgKzAyMDANClgtU2lldmU6IENNVSBTaWV2ZSAyLjQNClJlY2VpdmVkOiBmcm9tIGludC1teDAwMi5teWtvbGFiLmNvbSAodW5rbm93biBbMTAuOS4xMy4yXSkNCiAgICAgICAgYnkgaW1hcGIwMTAubXlrb2xhYi5jb20gKFBvc3RmaXgpIHdpdGggRVNNVFBTIGlkIDBBOTM5MTBBMjUwNDcNCiAgICAgICAgZm9yIDxjaHJpc3RpYW5AZXhhbXBsZS5jaD47IFdlZCwgIDkgQXVnIDIwMTcgMTg6Mzc6MDEgKzAyMDAgKENFU1QpDQpSZWNlaXZlZDogZnJvbSBpbnQtc3VibTAwMi5teWtvbGFiLmNvbSAodW5rbm93biBbMTAuOS4zNy4yXSkNCiAgICAgICAgYnkgaW50LW14MDAyLm15a29sYWIuY29tIChQb3N0Zml4KSB3aXRoIEVTTVRQUyBpZCBFQzA2QUY2RQ0KICAgICAgICBmb3IgPGNocmlzdGlhbkBleGFtcGxlLmNoPjsgV2VkLCAgOSBBdWcgMjAxNyAxODozNzowMCArMDIwMCAoQ0VTVCkNCk1JTUUtVmVyc2lvbjogMS4wDQpDb250ZW50LVR5cGU6IG11bHRpcGFydC9taXhlZDsNCmJvdW5kYXJ5PSI9XzI5MWI4ZTk2NTY0MjY1NjM2NDMyYzZkNDk0ZTAyMzIyIg0KRGF0ZTogU2F0LCAwNiBNYXkgMjAyMyAxNDo0MTo0MCANCkZyb206ICJNb2xsZWtvcGYsIENocmlzdGlhbiIgPGNocmlzdGlhbkBleGFtcGxlLmNoPg0KVG86IGNocmlzdGlhbkBleGFtcGxlLmNoDQpTdWJqZWN0OiBGb29iYXIgMQ0KTWVzc2FnZS1JRDogPGZvb2JhcjFAZXhhbXBsZS5vcmc+DQoNCi0tPV8yOTFiOGU5NjU2NDI2NTYzNjQzMmM2ZDQ5NGUwMjMyMg0KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7DQpib3VuZGFyeT0iPV9jZWZmMGZkMTk3NTZmNDVlZDEyOTVlZTIwNjlmZjhlMCINCg0KLS09X2NlZmYwZmQxOTc1NmY0NWVkMTI5NWVlMjA2OWZmOGUwDQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0DQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVMtQVNDSUkNCg0Kc2Rsa2pzZGpmDQotLT1fY2VmZjBmZDE5NzU2ZjQ1ZWQxMjk1ZWUyMDY5ZmY4ZTANCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUNCkNvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PVVURi04DQoNCjxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9M0QiQ29udGVudC1UeXBlIiBjb250ZW50PTNEInRleHQvaHRtbDsgY2hhcnNldD0NCj0zRFVURi04IiAvPjwvaGVhZD48Ym9keSBzdHlsZT0zRCdmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEdlbj0NCmV2YSxzYW5zLXNlcmlmJz4NCjxwPnNkbGtqc2RqZjwvcD4NCg0KPC9ib2R5PjwvaHRtbD4NCg0KLS09X2NlZmYwZmQxOTc1NmY0NWVkMTI5NWVlMjA2OWZmOGUwLS0NCg0KLS09XzI5MWI4ZTk2NTY0MjY1NjM2NDMyYzZkNDk0ZTAyMzIyDQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBiYXNlNjQNCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsNCm5hbWU9eG9yZy5jb25mDQpDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50Ow0KZmlsZW5hbWU9eG9yZy5jb25mOw0Kc2l6ZT0yMTENCg0KVTJWamRHbHZiaUFpUkdWMmFXTmxJZ29nSUNBZ1NXUmxiblJwWm1sbGNpQWdJQ0FnSWtSbGRtbGpaVEFpQ2lBZ0lDQkVjbWwyWlhJZw0KSUNBZ0lFSnZZWEprVG1GdFpTQWdJQ0FnSUNKT1ZsTWdOREl3TUUwaUNpQWdJQ0JQY0hScGIyNGdJazV2VEc5bmJ5SWdJblJ5ZFdVaQ0KQ2lBZ0lDQlBjSFJwYjI0Z0lsVnpaVVZFU1VRaUlDSjBjblZsSWdwRmJtUlRaV04wYVc5dUNnPT0NCi0tPV8yOTFiOGU5NjU2NDI2NTYzNjQzMmM2ZDQ5NGUwMjMyMi0tAAEBVgMyAAEAAlMDSVBNLk5vdGUAAXwDdXJuOmNvbnRlbnQtY2xhc3NlczptZXNzYWdlAAEAEU5PUAN4b3JnLmNvbmYAAVEDMzhiOTUwZWJkNjJjZDlhNjY5MjljODk2MTVkMGZjMDQ6OjU6OjIAAVIDMQABTAMzNTEwMDIxMgABAQEBAQEBAQE='), $output ); } public function testEncodeEmailPerformanceTest() { $outputStream = fopen("php://temp", 'r+'); $encoder = new Syncroton_Wbxml_Encoder($outputStream, 'UTF-8', 3); $attachment = str_repeat("ICAgIEJvYXJkTmFtZSAgICAgICJOVlMgNDIwME0iCiAgICBPcHRpb24gIk5vTG9nbyIgInRydWUi \n", 100000); $xml = << Email 2 38b950ebd62cd9a66929c89615d0fc04 1 38b950ebd62cd9a66929c89615d0fc04::1 2023-05-06T14:51:40.000Z "Mollekopf, Christian" <christian@example.ch> 65001 Foobar 1 christian@example.ch 0 4 Return-Path: <christian@example.ch> Received: from imapb010.mykolab.com ([unix socket]) by imapb010.mykolab.com (Cyrus 2.5.10-49-g2e214b4-Kolab-2.5.10-8.1.el7.kolab_14) with LMTPA; Wed, 09 Aug 2017 18:37:01 +0200 X-Sieve: CMU Sieve 2.4 Received: from int-mx002.mykolab.com (unknown [10.9.13.2]) by imapb010.mykolab.com (Postfix) with ESMTPS id 0A93910A25047 for <christian@example.ch>; Wed, 9 Aug 2017 18:37:01 +0200 (CEST) Received: from int-subm002.mykolab.com (unknown [10.9.37.2]) by int-mx002.mykolab.com (Postfix) with ESMTPS id EC06AF6E for <christian@example.ch>; Wed, 9 Aug 2017 18:37:00 +0200 (CEST) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_291b8e96564265636432c6d494e02322" Date: Sat, 06 May 2023 14:41:40 From: "Mollekopf, Christian" <christian@example.ch> To: christian@example.ch Subject: Foobar 1 Message-ID: <foobar1@example.org> --=_291b8e96564265636432c6d494e02322 Content-Type: multipart/alternative; boundary="=_ceff0fd19756f45ed1295ee2069ff8e0" --=_ceff0fd19756f45ed1295ee2069ff8e0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII sdlkjsdjf --=_ceff0fd19756f45ed1295ee2069ff8e0 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=UTF-8 <html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; charset= =3DUTF-8" /></head><body style=3D'font-size: 10pt; font-family: Verdana,Gen= eva,sans-serif'> <p>sdlkjsdjf</p> </body></html> --=_ceff0fd19756f45ed1295ee2069ff8e0-- --=_291b8e96564265636432c6d494e02322 Content-Transfer-Encoding: base64 Content-Type: text/plain; name=xorg.conf Content-Disposition: attachment; filename=xorg.conf; size=211 U2VjdGlvbiAiRGV2aWNlIgogICAgSWRlbnRpZmllciAgICAgIkRldmljZTAiCiAgICBEcml2ZXIg {$attachment} CiAgICBPcHRpb24gIlVzZUVESUQiICJ0cnVlIgpFbmRTZWN0aW9uCg== --=_291b8e96564265636432c6d494e02322-- 2 IPM.Note urn:content-classes:message xorg.conf 38b950ebd62cd9a66929c89615d0fc04::5::2 1 35100212 EOF; $dom = new DOMDocument(); $dom->loadXML($xml); - + + $start = microtime(true); $encoder->encode($dom); + $end = microtime(true); + + $this->assertTrue($end - $start < 0.05); } }