diff --git a/inc/lazyload_replacer.php b/inc/lazyload_replacer.php index 32a8cde6..54058c10 100644 --- a/inc/lazyload_replacer.php +++ b/inc/lazyload_replacer.php @@ -200,6 +200,8 @@ public function can_lazyload_for( $url, $tag = '' ) { if ( false === Optml_Filters::should_do_image( $url, self::$filters[ Optml_Settings::FILTER_TYPE_LAZYLOAD ][ Optml_Settings::FILTER_FILENAME ] ) ) { return false; } + $url = strtok( $url, '?' ); + $type = wp_check_filetype( basename( $url ), Optml_Config::$extensions diff --git a/inc/manager.php b/inc/manager.php index 0be17b58..4d68f096 100644 --- a/inc/manager.php +++ b/inc/manager.php @@ -332,7 +332,11 @@ function ( $url ) { ); foreach ( $urls as $origin => $replace ) { - $html = preg_replace( '/(? '; + const BACKGROUND_IMG_SECOND = '
'; + const SHOULD_NOT_REPLACE = ' '; + const SHOULD_NOT_REPLACE_SECOND = ' '; + + public static $sample_post; + + public function setUp() + { + + parent::setUp(); + $settings = new Optml_Settings(); + $settings->update('service_data', [ + 'cdn_key' => 'test123', + 'cdn_secret' => '12345', + 'whitelist' => ['example.com'], + + ]); + $settings->update('lazyload', 'disabled'); + $settings->update('img_to_video', 'enabled'); + + + Optml_Url_Replacer::instance()->init(); + Optml_Tag_Replacer::instance()->init(); + Optml_Manager::instance()->init(); + + self::$sample_post = self::factory()->post->create([ + 'post_title' => 'Test post', + 'post_content' => self::BACKGROUND_IMG + ] + ); + } + + public function test_should_replace_url() + { + + $replaced_content = Optml_Manager::instance()->replace_content(self::BACKGROUND_IMG); + $this->assertContains('i.optimole.com', $replaced_content); + $replaced_content = Optml_Manager::instance()->replace_content(self::BACKGROUND_IMG_SECOND); + $this->assertContains('i.optimole.com', $replaced_content); + $this->assertNotContains('?test=whatever7_whatever', $replaced_content); + + } + public function test_should_not_replace_url() { + $replaced_content = Optml_Manager::instance()->replace_content(self::SHOULD_NOT_REPLACE); + $this->assertNotContains('i.optimole.com', $replaced_content); + $replaced_content = Optml_Manager::instance()->replace_content(self::SHOULD_NOT_REPLACE_SECOND); + $this->assertNotContains('i.optimole.com', $replaced_content); + } +} + diff --git a/tests/test-lazyload.php b/tests/test-lazyload.php index 93f913fe..af82ad1e 100644 --- a/tests/test-lazyload.php +++ b/tests/test-lazyload.php @@ -254,5 +254,12 @@ public function test_lazyload_json_data_disabled() { $this->assertEquals( 2, substr_count( $replaced_content2, '/http:\/\/example.org' ) ); } - + public function test_should_replace_query_string_url() + { + $content = '