diff --git a/modules/embedded_video/src/video_content_filter.e b/modules/embedded_video/src/video_content_filter.e index 8498abe..c445aed 100644 --- a/modules/embedded_video/src/video_content_filter.e +++ b/modules/embedded_video/src/video_content_filter.e @@ -24,8 +24,8 @@ feature {NONE} -- Initialization default_create do Precursor - width := 420 - height := 315 + default_width := 420 + default_height := 315 end feature -- Access @@ -38,6 +38,36 @@ feature -- Access help: STRING = "Embed video using the following pattern: [video:url width:X height:Y], width and height are optionals." +feature -- Settings + + default_width: INTEGER; + -- Specifies the width of an " + +feature -- Settings change + + set_default_width (w: like default_width) + do + default_width := w + end + + set_default_height (h: like default_height) + do + default_height := h + end + + set_template (tpl: like template) + do + template := tpl + end + feature -- Conversion filter (a_text: STRING_8) @@ -77,10 +107,10 @@ feature -- Conversion local i,j,n: INTEGER s,k,v: STRING_8 - l_url: STRING_8 - l_width, l_height: detachable STRING + l_url, l_att: STRING_8 + l_width, l_height, l_extra: detachable STRING do - s := a_text.substring (a_lower + 1, a_upper - 1) + s := a_text.substring (a_lower + 7, a_upper - 1) s.left_adjust i := next_space_position (s, 1) if i > 0 then @@ -96,6 +126,8 @@ feature -- Conversion j := s.index_of (':', i) if j > 0 then k := s.head (j - 1) + k.left_adjust + k.right_adjust s.remove_head (j) s.left_adjust i := 1 @@ -103,10 +135,14 @@ feature -- Conversion j := next_space_position (s, 1) if j > 0 then v := s.head (j - 1) + v.left_adjust + v.right_adjust s.remove_head (j) s.left_adjust else v := s.substring (i, n) + v.left_adjust + v.right_adjust s.wipe_out end n := s.count @@ -116,41 +152,69 @@ feature -- Conversion elseif k.is_case_insensitive_equal ("height") then l_height := v else - check supported: False end + -- Ignore end else + s.left_adjust + s.right_adjust + if not s.is_whitespace then + l_extra := s + end i := n + 1 end end else - s.remove_head (6) l_url := s end if not l_url.is_whitespace then - create Result.make_from_string ("") end - Result.append ("frameborder=%"0%" allowfullscreen>") end end @@ -171,12 +235,23 @@ feature -- Conversion end end -feature {NONE} -- Implementation + next_non_space_position (a_text: STRING; a_start_index: INTEGER): INTEGER + local + n: INTEGER + do + from + Result := a_start_index + n := a_text.count + until + not a_text[Result].is_space or Result > n + loop + Result := Result + 1 + end + if Result > n then + Result := 0 + end + end - width: INTEGER; - -- Specifies the width of an " + expected_text := "" create f f.filter (text) assert ("expected iframe with video", text.same_string (expected_text)) end - test_video_filter_2 + test_video_filter_02 -- New test routine local f: VIDEO_CONTENT_FILTER text: STRING expected_text: STRING do - text := "[ video : https://www.youtube.com/embed/jBMOSSnCMCk ]" - expected_text := "" + text := "[video: https://www.youtube.com/embed/jBMOSSnCMCk ]" + expected_text := "" create f f.filter (text) assert ("expected iframe with video", text.same_string (expected_text)) end - test_video_filter_3 + test_video_filter_03 -- New test routine local f: VIDEO_CONTENT_FILTER text: STRING expected_text: STRING do - text := "[ video :https://www.youtube.com/embed/jBMOSSnCMCk ]" - expected_text := "" + text := "[video:https://www.youtube.com/embed/jBMOSSnCMCk ]" + expected_text := "" create f f.filter (text) assert ("expected iframe with video", text.same_string (expected_text)) end - test_video_filter_4 + test_video_filter_04 -- New test routine local f: VIDEO_CONTENT_FILTER text: STRING expected_text: STRING do - text := "[ video :https://www.youtube.com/embed/jBMOSSnCMCk height:425]" - expected_text := "" + text := "[video:https://www.youtube.com/embed/jBMOSSnCMCk height:425]" + expected_text := "" create f f.filter (text) assert ("expected iframe with video", text.same_string (expected_text)) end - test_video_filter_5 + test_video_filter_05 -- New test routine local f: VIDEO_CONTENT_FILTER text: STRING expected_text: STRING do - text := "[ video :https://www.youtube.com/embed/jBMOSSnCMCk height : 425]" - expected_text := "" + text := "[video:https://www.youtube.com/embed/jBMOSSnCMCk height : 425]" + expected_text := "" create f f.filter (text) assert ("expected iframe with video", text.same_string (expected_text)) end - test_video_filter_6 + test_video_filter_06 -- New test routine local f: VIDEO_CONTENT_FILTER text: STRING expected_text: STRING do - text := "[ video :https://www.youtube.com/embed/jBMOSSnCMCk height : 425 width: 425]" - expected_text := "" + text := "[video:https://www.youtube.com/embed/jBMOSSnCMCk height : 425 width: 425]" + expected_text := "" create f f.filter (text) assert ("expected iframe with video", text.same_string (expected_text)) end - test_video_filter_7 + test_video_filter_07 -- New test routine local f: VIDEO_CONTENT_FILTER @@ -112,43 +112,13 @@ feature -- Test routines expected_text: STRING do text := "[video:https://www.youtube.com/embed/jBMOSSnCMCk height:425 width:425]" - expected_text := "" + expected_text := "" create f f.filter (text) assert ("expected iframe with video", text.same_string (expected_text)) end - - test_video_filter_8 - -- New test routine - local - f: VIDEO_CONTENT_FILTER - text: STRING - expected_text: STRING - do - text := "[height:425 width:425 video:https://www.youtube.com/embed/jBMOSSnCMCk ]" - expected_text := "" - create f - f.filter (text) - assert ("expected iframe with video", text.same_string (expected_text)) - end - - - test_video_filter_9 - -- New test routine - local - f: VIDEO_CONTENT_FILTER - text: STRING - expected_text: STRING - do - text := "[ width:425 video:https://www.youtube.com/embed/jBMOSSnCMCk height:425]" - expected_text := "" - create f - f.filter (text) - assert ("expected iframe with video", text.same_string (expected_text)) - end - - test_video_filter_10 + test_video_filter_08 -- New test routine local f: VIDEO_CONTENT_FILTER @@ -156,14 +126,27 @@ feature -- Test routines expected_text: STRING do text := "[ wrong:425 video:https://www.youtube.com/embed/jBMOSSnCMCk height:425]" - expected_text := "" + expected_text := "[ wrong:425 video:https://www.youtube.com/embed/jBMOSSnCMCk height:425]" create f f.filter (text) assert ("expected iframe with video", text.same_string (expected_text)) end + test_video_filter_09 + -- New test routine + local + f: VIDEO_CONTENT_FILTER + text: STRING + expected_text: STRING + do + text := "[video:https://www.youtube.com/embed/jBMOSSnCMCk height:425 foo:bar foo=bar foobar frameborder=%"0%" allowfullscreen]" + expected_text := "" + create f + f.filter (text) + assert ("expected iframe with video", text.same_string (expected_text)) + end - test_video_filter_11 + test_video_filter_10 -- New test routine local f: VIDEO_CONTENT_FILTER @@ -177,6 +160,24 @@ feature -- Test routines assert ("expected iframe with video", text.same_string (expected_text)) end + test_video_filter_tpl_01 + -- New test routine + local + f: VIDEO_CONTENT_FILTER + text: STRING + expected_text: STRING + do + text := "[video:https://www.youtube.com/embed/jBMOSSnCMCk height:425 foo:bar foo=bar foobar]" + create f + f.set_template ("") + f.set_default_width (500) + f.set_default_height (400) + + expected_text := "" + + f.filter (text) + assert ("expected iframe with video", text.same_string (expected_text)) + end end diff --git a/modules/embedded_video/test/testing-safe.ecf b/modules/embedded_video/test/testing-safe.ecf deleted file mode 100644 index cf818e4..0000000 --- a/modules/embedded_video/test/testing-safe.ecf +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/modules/embedded_video/test/testing.ecf b/modules/embedded_video/test/testing.ecf index 8d9b47c..8504468 100644 --- a/modules/embedded_video/test/testing.ecf +++ b/modules/embedded_video/test/testing.ecf @@ -1,7 +1,9 @@ - + + /.git$ /.svn$ @@ -9,13 +11,10 @@ - - - - - - - + + + +