File tree Expand file tree Collapse file tree 4 files changed +47
-0
lines changed Expand file tree Collapse file tree 4 files changed +47
-0
lines changed Original file line number Diff line number Diff line change 1212require "qiita/markdown/embed/tweet"
1313require "qiita/markdown/embed/asciinema"
1414require "qiita/markdown/embed/youtube"
15+ require "qiita/markdown/embed/google_drive_video"
1516require "qiita/markdown/embed/slide_share"
1617require "qiita/markdown/embed/google_slide"
1718require "qiita/markdown/embed/speeker_deck"
Original file line number Diff line number Diff line change 1+ module Qiita
2+ module Markdown
3+ module Embed
4+ module GoogleDriveVideo
5+ SCRIPT_HOST = "drive.google.com" . freeze
6+ end
7+ end
8+ end
9+ end
Original file line number Diff line number Diff line change @@ -10,6 +10,7 @@ class FilterIframe
1010 Embed ::GoogleSlide ::SCRIPT_HOST ,
1111 Embed ::Docswell ::SCRIPT_HOSTS ,
1212 Embed ::Figma ::SCRIPT_HOST ,
13+ Embed ::GoogleDriveVideo ::SCRIPT_HOST ,
1314 ] . flatten . freeze
1415
1516 def self . call ( **args )
Original file line number Diff line number Diff line change 15201520 end
15211521 end
15221522
1523+ context "with HTML embed code for Google Drive Video" do
1524+ shared_examples "embed code googledrive example" do
1525+ let ( :markdown ) do
1526+ <<-MARKDOWN . strip_heredoc
1527+ <iframe src="#{ url } " width="640" height="480" frameborder="0" allowfullscreen="true"></iframe>
1528+ MARKDOWN
1529+ end
1530+ let ( :file_id ) { "DRIVE_FILE_ID_EXAMPLE" }
1531+ let ( :url ) { "#{ scheme } //drive.google.com/file/d/#{ file_id } /preview" }
1532+
1533+ if allowed
1534+ it "does not sanitize embed code" do
1535+ should eq <<-HTML . strip_heredoc
1536+ < iframe src ="#{ url } " width="640" height="480" frameborder="0" allowfullscreen="true"> </ iframe>
1537+ HTML
1538+ end
1539+ else
1540+ it "forces width attribute on iframe" do
1541+ should eq <<-HTML . strip_heredoc
1542+ < iframe src ="#{ url } " width="100%" height="480" frameborder="0" allowfullscreen="true"> </ iframe>
1543+ HTML
1544+ end
1545+ end
1546+ end
1547+
1548+ context "with scheme" do
1549+ let ( :scheme ) { "https:" }
1550+ include_examples "embed code googledrive example"
1551+ end
1552+
1553+ context "without scheme" do
1554+ let ( :scheme ) { "" }
1555+ include_examples "embed code googledrive example"
1556+ end
1557+ end
1558+
15231559 context "with HTML embed code for SlideShare" do
15241560 shared_examples "embed code slideshare example" do
15251561 let ( :markdown ) do
You can’t perform that action at this time.
0 commit comments