Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 7 additions & 14 deletions src/class-tiny-bulk-optimization.php
Original file line number Diff line number Diff line change
Expand Up @@ -125,22 +125,15 @@ private static function populate_optimization_statistics( $settings, $result, $s
$image_stats = $tiny_image->get_statistics( $active_sizes, $active_tinify_sizes );

++$stats['uploaded-images'];
$stats['estimated_credit_use'] += $image_stats['available_uncompressed_sizes'];
$stats['estimated_credit_use'] += $image_stats['available_uncompressed_sizes'];
$stats['available-unoptimized-sizes'] += $image_stats['available_unoptimized_sizes'];
$stats['optimized-image-sizes'] += $image_stats['image_sizes_optimized'];
$stats['optimized-library-size'] += $image_stats['compressed_total_size'];
$stats['unoptimized-library-size'] += $image_stats['initial_total_size'];

if ( $conversion_enabled ) {
$stats['available-unoptimized-sizes'] +=
$image_stats['available_unconverted_sizes'];
$stats['optimized-image-sizes'] +=
$image_stats['image_sizes_converted'];
$stats['estimated_credit_use'] +=
$image_stats['available_unconverted_sizes'];
} else {
$stats['available-unoptimized-sizes'] +=
$image_stats['available_uncompressed_sizes'];
$stats['optimized-image-sizes'] +=
$image_stats['image_sizes_compressed'];
$stats['estimated_credit_use'] += $image_stats['available_unconverted_sizes'];
}
$stats['optimized-library-size'] += $image_stats['compressed_total_size'];
$stats['unoptimized-library-size'] += $image_stats['initial_total_size'];

$has_conversions = $image_stats['available_unconverted_sizes'] > 0;
$has_compressions = $image_stats['available_uncompressed_sizes'] > 0;
Expand Down
13 changes: 13 additions & 0 deletions src/class-tiny-image.php
Original file line number Diff line number Diff line change
Expand Up @@ -483,6 +483,10 @@ public function get_statistics( $active_sizes, $active_tinify_sizes ) {
$this->statistics['available_uncompressed_sizes'] = 0;
$this->statistics['image_sizes_converted'] = 0;
$this->statistics['available_unconverted_sizes'] = 0;
$this->statistics['image_sizes_optimized'] = 0;
$this->statistics['available_unoptimized_sizes'] = 0;

$conversion_enabled = $this->settings->get_conversion_enabled();
Comment on lines 484 to +489

foreach ( $this->sizes as $size_name => $size ) {
// skip duplicates or inactive sizes
Expand Down Expand Up @@ -526,6 +530,15 @@ public function get_statistics( $active_sizes, $active_tinify_sizes ) {
} else {
++$this->statistics['available_unconverted_sizes'];
}

$needs_compression = $size->uncompressed();
$needs_conversion = $conversion_enabled && $size->unconverted();
if ( $needs_compression || $needs_conversion ) {
++$this->statistics['available_unoptimized_sizes'];
} elseif ( $size->compressed() && ( ! $conversion_enabled
|| $size->has_been_converted() ) ) {
++$this->statistics['image_sizes_optimized'];
}
}
}// End foreach().

Expand Down
2 changes: 2 additions & 0 deletions test/unit/TinyImageEmptyTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ public function test_get_statistics() {
'available_uncompressed_sizes' => 4,
'available_unconverted_sizes' => 4,
'image_sizes_converted' => 0,
'image_sizes_optimized' => 0,
'available_unoptimized_sizes' => 4
), $this->subject->get_statistics( $active_sizes, $active_tinify_sizes ) );
}
}
42 changes: 38 additions & 4 deletions test/unit/TinyImageTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -156,16 +156,50 @@ public function test_get_latest_error_should_return_trimmed_message_if_message_i
}

public function test_get_statistics() {
$active_sizes = $this->settings->get_sizes();
$active_tinify_sizes = $this->settings->get_active_tinify_sizes();
$this->wp->addOption( 'tinypng_convert_format', array(
'convert' => 'off',
) );
$settings = new Tiny_Settings();
Comment on lines 158 to +162
$subject = new Tiny_Image( $settings, 1, $this->json( '_wp_attachment_metadata' ) );

$active_sizes = $settings->get_sizes();
$active_tinify_sizes = $settings->get_active_tinify_sizes();
$stats = $subject->get_statistics( $active_sizes, $active_tinify_sizes );

$this->assertEquals( array(
'initial_total_size' => 360542,
'compressed_total_size' => 328670,
'image_sizes_compressed' => 3,
'available_uncompressed_sizes' => 1,
'image_sizes_converted' => 0,
'available_unconverted_sizes' => 4,
'image_sizes_optimized' => 3,
'available_unoptimized_sizes' => 1,
), $stats);
}

public function test_get_statistics_with_conversion_enabled() {
$this->wp->addOption( 'tinypng_convert_format', array(
'convert' => 'on',
'convert_to' => 'smallest',
) );
$settings = new Tiny_Settings();
$subject = new Tiny_Image( $settings, 1, $this->json( '_wp_attachment_metadata' ) );

$active_sizes = $settings->get_sizes();
$active_tinify_sizes = $settings->get_active_tinify_sizes();
$stats = $subject->get_statistics( $active_sizes, $active_tinify_sizes );

$this->assertEquals( array(
'initial_total_size' => 360542,
'compressed_total_size' => 328670,
'image_sizes_compressed' => 3,
'available_uncompressed_sizes' => 1,
'image_sizes_converted' => 0,
'available_unconverted_sizes' => 4
), $this->subject->get_statistics( $active_sizes, $active_tinify_sizes ) );
'available_unconverted_sizes' => 4,
'image_sizes_optimized' => 0,
'available_unoptimized_sizes' => 4,
), $stats);
}

public function test_get_image_sizes_available_for_compression_when_file_modified() {
Expand Down
Loading