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);
}
}