public function test_update_wp_metadata_should_update_with_resized_original()
 {
     $tiny_image = new Tiny_Image(new Tiny_Settings(), 150, $this->json('_wp_attachment_metadata'));
     $response = array('output' => array('width' => 200, 'height' => 100));
     $tiny_image->get_image_size()->add_tiny_meta_start();
     $tiny_image->get_image_size()->add_tiny_meta($response);
     $tiny_image->add_wp_metadata(Tiny_Image::ORIGINAL, $tiny_image->get_image_size());
     $tiny_image_metadata = $tiny_image->get_wp_metadata();
     $this->assertEquals(200, $tiny_image_metadata['width']);
     $this->assertEquals(100, $tiny_image_metadata['height']);
 }
 public function compress_image_for_bulk()
 {
     if (!$this->check_ajax_referer()) {
         exit;
     }
     if (!current_user_can('upload_files')) {
         $message = esc_html__("You don't have permission to upload files.", 'tiny-compress-images');
         echo json_encode(array('error' => $message));
         exit;
     }
     if (empty($_POST['id'])) {
         $message = esc_html__('Not a valid media file.', 'tiny-compress-images');
         echo json_encode(array('error' => $message));
         exit;
     }
     $id = intval($_POST['id']);
     $metadata = wp_get_attachment_metadata($id);
     if (!is_array($metadata)) {
         $message = esc_html__('Could not find metadata of media file.', 'tiny-compress-images');
         echo json_encode(array('error' => $message));
         exit;
     }
     $tiny_image_before = new Tiny_Image($this->settings, $id, $metadata);
     $image_statistics_before = $tiny_image_before->get_statistics();
     $size_before = $image_statistics_before['optimized_total_size'];
     $tiny_image = new Tiny_Image($this->settings, $id, $metadata);
     $result = $tiny_image->compress($this->settings);
     $image_statistics = $tiny_image->get_statistics();
     wp_update_attachment_metadata($id, $tiny_image->get_wp_metadata());
     $current_library_size = intval($_POST['current_size']);
     $size_after = $image_statistics['optimized_total_size'];
     $new_library_size = $current_library_size + $size_after - $size_before;
     $result['message'] = $tiny_image->get_latest_error();
     $result['image_sizes_optimized'] = $image_statistics['image_sizes_optimized'];
     $result['initial_total_size'] = size_format($image_statistics['initial_total_size'], 1);
     $result['optimized_total_size'] = size_format($image_statistics['optimized_total_size'], 1);
     $result['savings'] = $tiny_image->get_savings($image_statistics);
     $result['status'] = $this->settings->get_status();
     $result['thumbnail'] = wp_get_attachment_image($id, array('30', '30'), true, array('class' => 'pinkynail', 'alt' => ''));
     $result['size_change'] = $size_after - $size_before;
     $result['human_readable_library_size'] = size_format($new_library_size, 2);
     echo json_encode($result);
     exit;
 }