diff --git a/lib/white_list_filter.rb b/lib/white_list_filter.rb index 5c2d29f..8218ba1 100644 --- a/lib/white_list_filter.rb +++ b/lib/white_list_filter.rb @@ -9,7 +9,7 @@ module WhiteListFilter unless iframe =~ /src=['"].*src=['"]/ trusted_sites.each do |trusted_site| re_dom = trusted_site.gsub('.', '\.') - if iframe =~ /src=["']https?:\/\/(www\.)?#{re_dom}\// + if iframe =~ /src=["'](https?:)?\/\/(www\.)?#{re_dom}\// result = iframe end end diff --git a/test/unit/white_list_filter_test.rb b/test/unit/white_list_filter_test.rb index 8b7e0d9..27d6d29 100644 --- a/test/unit/white_list_filter_test.rb +++ b/test/unit/white_list_filter_test.rb @@ -40,6 +40,15 @@ class WhiteListFilterTest < ActiveSupport::TestCase assert_equal "", check_iframe_on_content(content, environment.trusted_sites_for_iframe) end + should 'allow iframe if it is from a trusted site and protocol was not specified' do + env = Environment.default + env.trusted_sites_for_iframe = ['avideosite.com'] + env.save + assert_includes Environment.default.trusted_sites_for_iframe, 'avideosite.com' + content = "" + assert_equal "", check_iframe_on_content(content, environment.trusted_sites_for_iframe) + end + should 'remove only the iframe from untrusted site' do content = "" assert_equal "", check_iframe_on_content(content, environment.trusted_sites_for_iframe) -- libgit2 0.21.2