Merge pull request #1111 from jamesaanderson/flash-video-onebox

Add flash video onebox support
This commit is contained in:
Robin Ward 2013-07-09 06:55:56 -07:00
commit 5cda0e556c
4 changed files with 54 additions and 0 deletions

View File

@ -172,6 +172,8 @@ class SiteSetting < ActiveRecord::Base
setting(:s3_region, '', enum: 'S3RegionSiteSetting')
setting(:s3_upload_bucket, '')
setting(:enable_flash_video_onebox, false)
setting(:default_trust_level, 0)
setting(:default_invitee_trust_level, 1)

View File

@ -583,6 +583,8 @@ en:
s3_secret_access_key: "The Amazon S3 secret access key that will be used to upload images"
s3_region: "The Amazon S3 region name that will be used to upload images"
enable_flash_video_onebox: "Enable embedding of swf and flv links in oneboxes (may introduce a security risk, caution advised)"
default_invitee_trust_level: "Default trust level (0-4) for invited users"
default_trust_level: "Default trust level (0-4) for users"

View File

@ -0,0 +1,17 @@
require_dependency 'oneboxer/base_onebox'
module Oneboxer
class FlashVideoOnebox < BaseOnebox
matcher /^https?:\/\/.*\.(swf|flv)$/
def onebox
if SiteSetting.enable_flash_video_onebox
"<object width='100%' height='100%'><param name='#{@url}' value='#{@url}'><embed src='#{@url}' width='100%' height='100%'></embed></object>"
else
"<a href='#{@url}'>#{@url}</a>"
end
end
end
end

View File

@ -0,0 +1,33 @@
require 'spec_helper'
require 'oneboxer'
require 'oneboxer/flash_video_onebox'
describe Oneboxer::FlashVideoOnebox do
before do
@o = Oneboxer::FlashVideoOnebox.new('http://player.56.com/v_OTMyNTk1MzE.swf')
end
context "when SiteSetting.enable_flash_video_onebox is true" do
before do
SiteSetting.stubs(:enable_flash_video_onebox).returns(true)
end
it "generates a flash video" do
expect(@o.onebox).to match_html(
"<object width='100%' height='100%'><param name='http://player.56.com/v_OTMyNTk1MzE.swf' value='http://player.56.com/v_OTMyNTk1MzE.swf'><embed src='http://player.56.com/v_OTMyNTk1MzE.swf' width='100%' height='100%'></embed></object>"
)
end
end
context "when SiteSetting.enable_flash_video_onebox is false" do
before do
SiteSetting.stubs(:enable_flash_video_onebox).returns(false)
end
it "generates a link" do
expect(@o.onebox).to match_html(
"<a href='http://player.56.com/v_OTMyNTk1MzE.swf'>http://player.56.com/v_OTMyNTk1MzE.swf</a>"
)
end
end
end