Commit 7bfd56cae3b0d983bf49efb6de874096b04c48e6

Authored by Gabriela Navarro
Committed by Luciano Prestes
1 parent 8f20e5fa

Add Download block to software view and unit tests to it

Signed-off-by: Gabriela Navarro <navarro1703@gmail.com>
Signed-off-by: Parley Martins <parley@outlook.com>
lib/download_block.rb 0 → 100644
... ... @@ -0,0 +1,33 @@
  1 +class DownloadBlock < Block
  2 +
  3 + attr_accessible :name, :link, :software_description,:show_name, :version_news
  4 +
  5 + settings_items :name, :type => :string, :default => ''
  6 + settings_items :link, :type => :string, :default => ''
  7 + settings_items :software_description, :type => :string, :default => ''
  8 + settings_items :show_name, :type => :boolean, :default => false
  9 + settings_items :version_news, :type => :string, :default => ''
  10 +
  11 + def self.description
  12 + _('Download Stable Version')
  13 + end
  14 +
  15 + def help
  16 + _('This block displays the stable version of a software.')
  17 + end
  18 +
  19 + def content(args={})
  20 + block = self
  21 + s = show_name
  22 + lambda do |object|
  23 + render(
  24 + :file => 'blocks/download',
  25 + :locals => { :block => block, :show_name => s }
  26 + )
  27 + end
  28 + end
  29 +
  30 + def cacheable?
  31 + false
  32 + end
  33 +end
... ...
lib/mpog_software_plugin.rb
... ... @@ -128,7 +128,8 @@ class MpogSoftwarePlugin &lt; Noosfero::Plugin
128 128 {
129 129 SoftwaresBlock => {:type => [Environment, Person] },
130 130 SoftwareInformationBlock => {:type => [Community] },
131   - InstitutionsBlock => {:type => [Environment, Person]}
  131 + InstitutionsBlock => {:type => [Environment, Person]},
  132 + DownloadBlock => {:type => [Community]}
132 133 }
133 134 end
134 135  
... ...
test/unit/download_block_test.rb 0 → 100644
... ... @@ -0,0 +1,29 @@
  1 +require File.dirname(__FILE__) + '/../../../../test/test_helper'
  2 +require File.dirname(__FILE__) + '/../helpers/plugin_test_helper'
  3 +
  4 +class DownloadBlockTest < ActiveSupport::TestCase
  5 + include PluginTestHelper
  6 + should 'inherit from Block' do
  7 + assert_kind_of Block, DownloadBlock.new
  8 + end
  9 +
  10 + should 'declare its default title' do
  11 + DownloadBlock.any_instance.stubs(:profile_count).returns(0)
  12 + assert_equal Block.new.default_title, DownloadBlock.new.default_title
  13 + end
  14 +
  15 + should 'describe itself' do
  16 + assert_not_equal Block.description, DownloadBlock.description
  17 + end
  18 +
  19 + should 'have software info to download it' do
  20 +
  21 + link = "gitlab.com/teste"
  22 + name = "Test Software"
  23 +
  24 + block = DownloadBlock.create(:name => name, :link => link)
  25 +
  26 + assert_equal block.link, link, "Link should not be empty"
  27 + assert_equal block.name, name, "Name should not be empty"
  28 + end
  29 +end
... ...
views/blocks/download.html.erb 0 → 100644
... ... @@ -0,0 +1,28 @@
  1 +<div id="download-block">
  2 + <div id="download_spb">
  3 + <h2> <%= _("Download") %> </h2>
  4 +
  5 + <span class="download-name">
  6 + <%= link_to block.name, "#" %>
  7 + </span>
  8 +
  9 + <span class="download-system">
  10 + <%= _(block.software_description) %>
  11 + </span>
  12 + </div>
  13 +
  14 + <p id="download_info">
  15 + <span class="req_spb">
  16 + <%= link_to _("Minimal Requirements") , block.owner.admin_url, :class => "anchor-link", :target => "_self" %>
  17 + </span>
  18 +
  19 + <span class="nov_spb">
  20 + <%= link_to(_("Version News"), block.version_news, :class => "anchor-link", :target => "_self") if !block.version_news.blank? %>
  21 + </span>
  22 +
  23 + <span class="licensed">
  24 + <%= _("Licensed by") %>
  25 + <%= link_to block.owner.software_info.license_info.version , block.owner.software_info.license_info.link, :target => "_blank" %>
  26 + </span>
  27 + </p>
  28 +</div>
... ...
views/box_organizer/_download_block.html.erb 0 → 100644
... ... @@ -0,0 +1,6 @@
  1 +<div id='edit-download-block'>
  2 + <%= labelled_form_field _('Name:'), text_field_tag('block[name]', @block.name) %>
  3 + <%= labelled_form_field _('Link:'), text_field_tag('block[link]', @block.link) %>
  4 + <%= labelled_form_field _('Software Description:'), text_field_tag('block[software_description]', @block.software_description) %>
  5 + <%= labelled_form_field _('Link to Version News:'), text_field_tag('block[version_news]', @block.version_news) %>
  6 +</div>
... ...