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 8 INSTALL
15 9 =======
... ... @@ -17,10 +11,10 @@ INSTALL
17 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 16 cd <your_noosfero_dir>
23   -./script/noosfero-plugins enable display_content
  17 +./script/noosfero-plugins enable video
24 18  
25 19 Active Plugin
26 20 -------------
... ... @@ -30,20 +24,10 @@ As a Noosfero administrator user, go to administrator panel:
30 24 - Click on "Enable/disable plugins" option
31 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 33 Get Involved
... ...
plugins/video/test/functional/video_plugin_environment_design_controller_test.rb 0 → 100644
... ... @@ -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   -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 @@
  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 215 instance_eval(& block.content)
216 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 218 end
... ...