Commit ba4f52d8089d287b9853de1199398f733623ce1a

Authored by Leandro Nunes dos Santos
1 parent b397fec9

Adding functional tests with design controllers to make sure that the videos are being displayed

plugins/video/README
1 -README - DisplayContent (DisplayContent Plugin) 1 +README - Video (Video Plugin)
2 ================================ 2 ================================
3 3
4 -DisplayContent is a plugin to allow the user adds a block where you could choose any of your content for display it. 4 +Video is a plugin to allow the user adds a block where you could choose any url from youtube, vimeo and url's of the following file formats: mp4, ogg, ogv and webm.
5 5
6 -The DisplayContent block will be available for all layout columns of communities, peole, enterprises and environments.  
7 -  
8 -All the articles choosen are displayed as a list with a link for the title and the lead content.  
9 -  
10 -If a Blog or a Folder is choosen the block will display all articles inside the blog or the folder.  
11 -  
12 -Galleries are not displayed in this block. 6 +The Video block will be available for all layout columns of communities, peole, enterprises and environments.
13 7
14 INSTALL 8 INSTALL
15 ======= 9 =======
@@ -17,10 +11,10 @@ INSTALL @@ -17,10 +11,10 @@ INSTALL
17 Enable Plugin 11 Enable Plugin
18 ------------- 12 -------------
19 13
20 -Also, you need to enable DisplayContent Plugin at you Noosfero: 14 +Also, you need to enable Video Plugin at you Noosfero:
21 15
22 cd <your_noosfero_dir> 16 cd <your_noosfero_dir>
23 -./script/noosfero-plugins enable display_content 17 +./script/noosfero-plugins enable video
24 18
25 Active Plugin 19 Active Plugin
26 ------------- 20 -------------
@@ -30,20 +24,10 @@ As a Noosfero administrator user, go to administrator panel: @@ -30,20 +24,10 @@ As a Noosfero administrator user, go to administrator panel:
30 - Click on "Enable/disable plugins" option 24 - Click on "Enable/disable plugins" option
31 - Click on "Display Content Plugin" check-box 25 - Click on "Display Content Plugin" check-box
32 26
33 -DEVELOPMENT  
34 -===========  
35 -  
36 -Noosfero uses jQuery 1.5.1 and the jsTree doesn't works fine with this jQuery version.  
37 -Until Noosfero upgrade its JQuery version to a newer one is necessary to load jQuery 1.8.3 inside plugin and apply some changes in jsTree to avoid jQuery conflit.  
38 -  
39 -Get the Display Content (Noosfero with Display Content Plugin) development repository:  
40 -  
41 -$ git clone https://gitorious.org/+noosfero/noosfero/display_content  
42 -  
43 -Running DisplayContent tests 27 +Running Video tests
44 -------------------- 28 --------------------
45 29
46 -$ rake test:noosfero_plugins:display_content 30 +$ rake test:noosfero_plugins:video
47 31
48 32
49 Get Involved 33 Get Involved
plugins/video/test/functional/video_plugin_environment_design_controller_test.rb 0 → 100644
@@ -0,0 +1,130 @@ @@ -0,0 +1,130 @@
  1 +require File.dirname(__FILE__) + '/../test_helper'
  2 +
  3 +# Re-raise errors caught by the controller.
  4 +class EnvironmentDesignController; def rescue_action(e) raise e end; end
  5 +
  6 +class EnvironmentDesignControllerTest < ActionController::TestCase
  7 +
  8 + def setup
  9 + @controller = EnvironmentDesignController.new
  10 + @request = ActionController::TestRequest.new
  11 + @response = ActionController::TestResponse.new
  12 +
  13 + Environment.delete_all
  14 + User.delete_all
  15 + @environment = Environment.create!(defaults_for_environment.merge(:is_default => true))
  16 + user = create_user('testinguser')
  17 + login_as(user.person.identifier)
  18 + @environment.add_admin(user.person)
  19 + @environment.save!
  20 +
  21 + @environment.enabled_plugins = ['VideoPlugin']
  22 + @environment.save!
  23 +
  24 + VideoBlock.delete_all
  25 +
  26 + @block = VideoBlock.new
  27 + @block.box = @environment.boxes.first
  28 + @block.save!
  29 + end
  30 +
  31 + attr_accessor :environment, :block
  32 +
  33 + should 'display video-block-data class in profile block edition' do
  34 + block.url='youtube.com/?v=XXXXX'
  35 + block.save!
  36 + get :index
  37 +
  38 + assert_tag :div, :attributes => {:class => 'video-block-data'}
  39 + end
  40 +
  41 + should "display iframe tag in profile block edition on youtube url's" do
  42 + block.url='youtube.com/?v=XXXXX'
  43 + block.save
  44 + get :index
  45 +
  46 + assert_tag :tag => 'iframe'
  47 + end
  48 +
  49 + should "the width in iframe tag be defined on youtube url's" do
  50 + block.url='youtube.com/?v=XXXXX'
  51 + block.save
  52 + get :index
  53 +
  54 + assert_tag :tag => 'iframe', :attributes => {:width => '400px'}
  55 + end
  56 +
  57 + should "display iframe tag in profile block edition on vimeo url's" do
  58 + block.url='http://vimeo.com/98979'
  59 + block.save
  60 + get :index
  61 +
  62 + assert_tag :tag => 'iframe'
  63 + end
  64 +
  65 + should "the width in iframe tag be defined on vimeo url's" do
  66 + block.url='http://vimeo.com/98979'
  67 + block.save
  68 + get :index
  69 +
  70 + assert_tag :tag => 'iframe', :attributes => {:width => '400px'}
  71 + end
  72 +
  73 + should "display video tag in profile block edition for any video url" do
  74 + block.url='http://www.vmsd.com/98979.mp4'
  75 + block.save
  76 + get :index
  77 +
  78 + assert_tag :tag => 'video'
  79 + end
  80 +
  81 + should "the width in video tag be defined for any video url" do
  82 + block.url='http://www.vmsd.com/98979.mp4'
  83 + block.save
  84 + get :index
  85 +
  86 + assert_tag :tag => 'video', :attributes => {:width => '400px'}
  87 + end
  88 +
  89 + should 'the heigth in iframe tag be defined' do
  90 + block.url='youtube.com/?v=XXXXX'
  91 + block.save
  92 + get :index
  93 +
  94 + assert_tag :tag => 'iframe', :attributes => {:height => '315px'}
  95 + end
  96 +
  97 + should 'display youtube videos' do
  98 + block.url='youtube.com/?v=XXXXX'
  99 + block.save
  100 + get :index
  101 +
  102 + assert_tag :tag => 'div', :attributes => {:class => 'video-block-data'}, :descendant => { :tag => 'div', :attributes => {:class => 'youtube'} }
  103 + end
  104 +
  105 + should 'display vimeo videos' do
  106 + block.url='http://vimeo.com/98979'
  107 + block.save
  108 + get :index
  109 +
  110 + assert_tag :tag => 'div', :attributes => {:class => 'video-block-data'}, :descendant => { :tag => 'div', :attributes => {:class => 'vimeo'} }
  111 + end
  112 +
  113 + should 'display other videos' do
  114 + block.url='http://www.vmsd.com/98979.mp4'
  115 + block.save
  116 + get :index
  117 +
  118 + assert_tag :tag => 'div', :attributes => {:class => 'video-block-data'}, :descendant => { :tag => 'div', :attributes => {:class => 'video'} }
  119 + end
  120 +
  121 + should 'display a messagem to register a new url' do
  122 + block.url='http://www.vmsd.com/test.pdf'
  123 + block.save
  124 + get :index
  125 +
  126 + assert_tag :tag => 'div', :attributes => {:class => 'video-block-data'}, :descendant => { :tag => 'span', :attributes => {:class => 'alert-block'} }
  127 + end
  128 +
  129 +
  130 +end
plugins/video/test/functional/video_plugin_myprofile_controller_test.rb
@@ -1,132 +0,0 @@ @@ -1,132 +0,0 @@
1 -require File.dirname(__FILE__) + '/../test_helper'  
2 -  
3 -# Re-raise errors caught by the controller.  
4 -class ProfileDesignController; def rescue_action(e) raise e end; end  
5 -  
6 -class ProfileDesignControllerTest < ActionController::TestCase  
7 -  
8 - def setup  
9 - @controller = ProfileDesignController.new  
10 - @request = ActionController::TestRequest.new  
11 - @response = ActionController::TestResponse.new  
12 -  
13 - user = create_user('testinguser')  
14 - login_as(user.login)  
15 - @profile = user.person  
16 - @environment = @profile.environment  
17 -  
18 - @environment.enabled_plugins = ['VideoPlugin']  
19 - @environment.save!  
20 -  
21 - VideoBlock.delete_all  
22 - @box1 = Box.create!(:owner => @profile)  
23 - @profile.boxes = [@box1]  
24 -  
25 - @block = VideoBlock.new  
26 - @block.box = @box1  
27 - @block.save!  
28 -  
29 - @profile.blocks<<@block  
30 - @profile.save!  
31 - end  
32 -  
33 - attr_accessor :profile, :block  
34 -  
35 - should 'display video-block-data class in profile block edition' do  
36 - block.url='youtube.com/?v=XXXXX'  
37 - block.save  
38 - get :index, :profile => profile.identifier  
39 -  
40 - assert_tag :div, :attributes => {:class => 'video-block-data'}  
41 - end  
42 -  
43 - should "display iframe tag in profile block edition on youtube url's" do  
44 - block.url='youtube.com/?v=XXXXX'  
45 - block.save  
46 - get :index, :profile => profile.identifier  
47 -  
48 - assert_tag :tag => 'iframe'  
49 - end  
50 -  
51 - should "the width in iframe tag be defined on youtube url's" do  
52 - block.url='youtube.com/?v=XXXXX'  
53 - block.save  
54 - get :index, :profile => profile.identifier  
55 -  
56 - assert_tag :tag => 'iframe', :attributes => {:width => '400px'}  
57 - end  
58 -  
59 - should "display iframe tag in profile block edition on vimeo url's" do  
60 - block.url='http://vimeo.com/98979'  
61 - block.save  
62 - get :index, :profile => profile.identifier  
63 -  
64 - assert_tag :tag => 'iframe'  
65 - end  
66 -  
67 - should "the width in iframe tag be defined on vimeo url's" do  
68 - block.url='http://vimeo.com/98979'  
69 - block.save  
70 - get :index, :profile => profile.identifier  
71 -  
72 - assert_tag :tag => 'iframe', :attributes => {:width => '400px'}  
73 - end  
74 -  
75 - should "display video tag in profile block edition for any video url" do  
76 - block.url='http://www.vmsd.com/98979.mp4'  
77 - block.save  
78 - get :index, :profile => profile.identifier  
79 -  
80 - assert_tag :tag => 'video'  
81 - end  
82 -  
83 - should "the width in video tag be defined for any video url" do  
84 - block.url='http://www.vmsd.com/98979.mp4'  
85 - block.save  
86 - get :index, :profile => profile.identifier  
87 -  
88 - assert_tag :tag => 'video', :attributes => {:width => '400px'}  
89 - end  
90 -  
91 - should 'the heigth in iframe tag be defined' do  
92 - block.url='youtube.com/?v=XXXXX'  
93 - block.save  
94 - get :index, :profile => profile.identifier  
95 -  
96 - assert_tag :tag => 'iframe', :attributes => {:height => '315px'}  
97 - end  
98 -  
99 - should 'display youtube videos' do  
100 - block.url='youtube.com/?v=XXXXX'  
101 - block.save  
102 - get :index, :profile => profile.identifier  
103 -  
104 - assert_tag :tag => 'div', :attributes => {:class => 'video-block-data'}, :descendant => { :tag => 'div', :attributes => {:class => 'youtube'} }  
105 - end  
106 -  
107 - should 'display vimeo videos' do  
108 - block.url='http://vimeo.com/98979'  
109 - block.save  
110 - get :index, :profile => profile.identifier  
111 -  
112 - assert_tag :tag => 'div', :attributes => {:class => 'video-block-data'}, :descendant => { :tag => 'div', :attributes => {:class => 'vimeo'} }  
113 - end  
114 -  
115 - should 'display other videos' do  
116 - block.url='http://www.vmsd.com/98979.mp4'  
117 - block.save  
118 - get :index, :profile => profile.identifier  
119 -  
120 - assert_tag :tag => 'div', :attributes => {:class => 'video-block-data'}, :descendant => { :tag => 'div', :attributes => {:class => 'video'} }  
121 - end  
122 -  
123 - should 'display a messagem to register a new url' do  
124 - block.url='http://www.vmsd.com/test.pdf'  
125 - block.save  
126 - get :index, :profile => profile.identifier  
127 -  
128 - assert_tag :tag => 'div', :attributes => {:class => 'video-block-data'}, :descendant => { :tag => 'span', :attributes => {:class => 'alert-block'} }  
129 - end  
130 -  
131 -  
132 -end  
plugins/video/test/functional/video_plugin_profile_design_controller_test.rb 0 → 100644
@@ -0,0 +1,132 @@ @@ -0,0 +1,132 @@
  1 +require File.dirname(__FILE__) + '/../test_helper'
  2 +
  3 +# Re-raise errors caught by the controller.
  4 +class ProfileDesignController; def rescue_action(e) raise e end; end
  5 +
  6 +class ProfileDesignControllerTest < ActionController::TestCase
  7 +
  8 + def setup
  9 + @controller = ProfileDesignController.new
  10 + @request = ActionController::TestRequest.new
  11 + @response = ActionController::TestResponse.new
  12 +
  13 + user = create_user('testinguser')
  14 + login_as(user.login)
  15 + @profile = user.person
  16 + @environment = @profile.environment
  17 +
  18 + @environment.enabled_plugins = ['VideoPlugin']
  19 + @environment.save!
  20 +
  21 + VideoBlock.delete_all
  22 + @box1 = Box.create!(:owner => @profile)
  23 + @profile.boxes = [@box1]
  24 +
  25 + @block = VideoBlock.new
  26 + @block.box = @box1
  27 + @block.save!
  28 +
  29 + @profile.blocks<<@block
  30 + @profile.save!
  31 + end
  32 +
  33 + attr_accessor :profile, :block
  34 +
  35 + should 'display video-block-data class in profile block edition' do
  36 + block.url='youtube.com/?v=XXXXX'
  37 + block.save
  38 + get :index, :profile => profile.identifier
  39 +
  40 + assert_tag :div, :attributes => {:class => 'video-block-data'}
  41 + end
  42 +
  43 + should "display iframe tag in profile block edition on youtube url's" do
  44 + block.url='youtube.com/?v=XXXXX'
  45 + block.save
  46 + get :index, :profile => profile.identifier
  47 +
  48 + assert_tag :tag => 'iframe'
  49 + end
  50 +
  51 + should "the width in iframe tag be defined on youtube url's" do
  52 + block.url='youtube.com/?v=XXXXX'
  53 + block.save
  54 + get :index, :profile => profile.identifier
  55 +
  56 + assert_tag :tag => 'iframe', :attributes => {:width => '400px'}
  57 + end
  58 +
  59 + should "display iframe tag in profile block edition on vimeo url's" do
  60 + block.url='http://vimeo.com/98979'
  61 + block.save
  62 + get :index, :profile => profile.identifier
  63 +
  64 + assert_tag :tag => 'iframe'
  65 + end
  66 +
  67 + should "the width in iframe tag be defined on vimeo url's" do
  68 + block.url='http://vimeo.com/98979'
  69 + block.save
  70 + get :index, :profile => profile.identifier
  71 +
  72 + assert_tag :tag => 'iframe', :attributes => {:width => '400px'}
  73 + end
  74 +
  75 + should "display video tag in profile block edition for any video url" do
  76 + block.url='http://www.vmsd.com/98979.mp4'
  77 + block.save
  78 + get :index, :profile => profile.identifier
  79 +
  80 + assert_tag :tag => 'video'
  81 + end
  82 +
  83 + should "the width in video tag be defined for any video url" do
  84 + block.url='http://www.vmsd.com/98979.mp4'
  85 + block.save
  86 + get :index, :profile => profile.identifier
  87 +
  88 + assert_tag :tag => 'video', :attributes => {:width => '400px'}
  89 + end
  90 +
  91 + should 'the heigth in iframe tag be defined' do
  92 + block.url='youtube.com/?v=XXXXX'
  93 + block.save
  94 + get :index, :profile => profile.identifier
  95 +
  96 + assert_tag :tag => 'iframe', :attributes => {:height => '315px'}
  97 + end
  98 +
  99 + should 'display youtube videos' do
  100 + block.url='youtube.com/?v=XXXXX'
  101 + block.save
  102 + get :index, :profile => profile.identifier
  103 +
  104 + assert_tag :tag => 'div', :attributes => {:class => 'video-block-data'}, :descendant => { :tag => 'div', :attributes => {:class => 'youtube'} }
  105 + end
  106 +
  107 + should 'display vimeo videos' do
  108 + block.url='http://vimeo.com/98979'
  109 + block.save
  110 + get :index, :profile => profile.identifier
  111 +
  112 + assert_tag :tag => 'div', :attributes => {:class => 'video-block-data'}, :descendant => { :tag => 'div', :attributes => {:class => 'vimeo'} }
  113 + end
  114 +
  115 + should 'display other videos' do
  116 + block.url='http://www.vmsd.com/98979.mp4'
  117 + block.save
  118 + get :index, :profile => profile.identifier
  119 +
  120 + assert_tag :tag => 'div', :attributes => {:class => 'video-block-data'}, :descendant => { :tag => 'div', :attributes => {:class => 'video'} }
  121 + end
  122 +
  123 + should 'display a messagem to register a new url' do
  124 + block.url='http://www.vmsd.com/test.pdf'
  125 + block.save
  126 + get :index, :profile => profile.identifier
  127 +
  128 + assert_tag :tag => 'div', :attributes => {:class => 'video-block-data'}, :descendant => { :tag => 'span', :attributes => {:class => 'alert-block'} }
  129 + end
  130 +
  131 +
  132 +end
plugins/video/test/unit/video_block_test.rb
@@ -215,18 +215,4 @@ class VideoBlockTest &lt; ActiveSupport::TestCase @@ -215,18 +215,4 @@ class VideoBlockTest &lt; ActiveSupport::TestCase
215 instance_eval(& block.content) 215 instance_eval(& block.content)
216 end 216 end
217 217
218 - should 'display box_organizer/iframe_video_block partial for youtube videos' do  
219 - block = VideoBlock.new  
220 - block.url = "youtube.com/?v=XXXXX"  
221 -  
222 -# self.expects(:render).with(:partial => 'box_organizer/iframe_video_block', :locals => {  
223 -# :url => block.format_embed_video_url_for_youtube,  
224 -# :width => block.width,  
225 -# :height => block.height  
226 -# })  
227 -c = instance_eval(& block.content)  
228 -puts c.inspect  
229 - end  
230 -  
231 -  
232 end 218 end