public function __construct($id, $settings) { $this->logger = new Logger(); $this->id = $id; $this->logger->add('Attachment ID', $this->id); $this->settings = $settings; // 1. Get sizes $this->image_sizes = $this->get_image_sizes(); // Retina if (isset($this->settings['retina'])) { $retina = new Retina($this->settings); $this->image_sizes = $retina->set_sizes($this->image_sizes); } $this->logger->add('Image sizes', $this->image_sizes); // 2. Get images $this->images = $this->get_images($this->image_sizes); // 3. Order the images by width $this->images = $this->order_images($this->images); // 4. Adds retina versions to the same array as the 'original' image. if (isset($this->settings['retina']) && $this->settings['retina']) { $this->group_highres(); } // 5. Remove images that is larger than the one inserted into the editor. if (isset($this->settings['notBiggerThan'])) { $this->images = $this->remove_images_larger_than_inserted($this->images, $this->settings['notBiggerThan']); $this->logger->add('Largest size that should be used', $this->settings['notBiggerThan']); } $this->images = array_values($this->images); // 5. Set the media queries $user_media_queries = isset($settings['media_queries']) ? $settings['media_queries'] : null; $media_queries = new Media_Queries($this->images, $user_media_queries); $this->images = $media_queries->set(); $this->logger->log_media_queries($this->images); $this->log = $this->logger->get(); }
function test_custom_media_queries() { $settings = array('medium' => 'min-width: 600px', 'large' => 'min-width: 1280px'); $expected = $this->images; $expected[1]['media_query'] = 'min-width: 600px'; $expected[2]['media_query'] = 'min-width: 1280px'; $media_queries = new Media_Queries($this->images, $settings); $images = $media_queries->set($this->images); $this->assertEquals($expected, $images); }