From 430b0cbbfd0f5d9b74959f08e8f3c9eea6272ed6 Mon Sep 17 00:00:00 2001 From: Ashley Rich Date: Sat, 6 Apr 2024 21:30:05 +0100 Subject: [PATCH] Methods for total sizes --- src/Har.php | 14 ++++++++++++++ tests/Unit/HarTest.php | 8 ++++++++ 2 files changed, 22 insertions(+) diff --git a/src/Har.php b/src/Har.php index fd39688..31e3be4 100644 --- a/src/Har.php +++ b/src/Har.php @@ -81,6 +81,20 @@ public function smallestUncompressedRequest(): Request })->first(); } + public function totalSize(): int + { + return $this->requests()->sum(function (Request $request) { + return $request->size(); + }); + } + + public function totalUncompressedSize(): int + { + return $this->requests()->sum(function (Request $request) { + return $request->uncompressedSize(); + }); + } + public function onContentLoadTiming(int $precision = 2): ?float { return empty($this->har['log']['pages'][0]['pageTimings']['onContentLoad']) diff --git a/tests/Unit/HarTest.php b/tests/Unit/HarTest.php index 54b5b48..85cc96a 100644 --- a/tests/Unit/HarTest.php +++ b/tests/Unit/HarTest.php @@ -49,6 +49,14 @@ ->and($this->har->smallestUncompressedRequest()->uncompressedSize())->toEqual(0); }); +test('total size', function () { + expect($this->har->totalSize())->toEqual(1600544); +}); + +test('total uncompressed size', function () { + expect($this->har->totalUncompressedSize())->toEqual(4896355); +}); + test('get onContentLoad timing', function () { expect($this->har->onContentLoadTiming())->toEqual(580.40) ->and($this->har->onContentLoadTiming(0))->toEqual(580)