Commit 1ea734898ee0b66b093bde6469d691215ca2c447

Authored by Arthur Esposte
Committed by Daniela Feitosa
1 parent 5c1641f3

curriculum_lattes_plugin: Refactoring to use load_plugin_filters hotspot

app/controllers/admin/features_controller.rb
@@ -17,10 +17,6 @@ class FeaturesController < AdminController @@ -17,10 +17,6 @@ class FeaturesController < AdminController
17 17
18 def manage_fields 18 def manage_fields
19 @person_fields = Person.fields 19 @person_fields = Person.fields
20 - @plugins.dispatch(:extra_person_fields).collect do |field|  
21 - @person_fields << field unless @person_fields.include?(field)  
22 - end  
23 -  
24 @enterprise_fields = Enterprise.fields 20 @enterprise_fields = Enterprise.fields
25 @community_fields = Community.fields 21 @community_fields = Community.fields
26 end 22 end
app/controllers/my_profile/profile_editor_controller.rb
@@ -16,21 +16,15 @@ class ProfileEditorController &lt; MyProfileController @@ -16,21 +16,15 @@ class ProfileEditorController &lt; MyProfileController
16 if request.post? 16 if request.post?
17 params[:profile_data][:fields_privacy] ||= {} if profile.person? && params[:profile_data].is_a?(Hash) 17 params[:profile_data][:fields_privacy] ||= {} if profile.person? && params[:profile_data].is_a?(Hash)
18 begin 18 begin
19 - @plugins.dispatch(:profile_editor_transaction_extras)  
20 -  
21 Profile.transaction do 19 Profile.transaction do
22 Image.transaction do 20 Image.transaction do
23 - if @profile_data.update_attributes(params[:profile_data])  
24 - redirect_to :action => 'index', :profile => profile.identifier  
25 - else  
26 - profile.identifier = params[:profile] if profile.identifier.blank?  
27 - end 21 + @plugins.dispatch(:profile_editor_transaction_extras)
  22 + @profile_data.update_attributes!(params[:profile_data])
  23 + redirect_to :action => 'index', :profile => profile.identifier
28 end 24 end
29 end 25 end
30 rescue Exception => ex 26 rescue Exception => ex
31 - if profile.identifier.blank?  
32 - profile.identifier = params[:profile]  
33 - end 27 + profile.identifier = params[:profile] if profile.identifier.blank?
34 end 28 end
35 end 29 end
36 end 30 end
app/controllers/public/account_controller.rb
@@ -93,13 +93,7 @@ class AccountController &lt; ApplicationController @@ -93,13 +93,7 @@ class AccountController &lt; ApplicationController
93 @user.terms_of_use = environment.terms_of_use 93 @user.terms_of_use = environment.terms_of_use
94 @user.environment = environment 94 @user.environment = environment
95 @terms_of_use = environment.terms_of_use 95 @terms_of_use = environment.terms_of_use
96 -  
97 - params_profile_data = params[:profile_data]  
98 - @plugins.dispatch(:extra_person_data_params).each do |data|  
99 - params_profile_data = params_profile_data.merge(data) unless params[:profile_data].blank?  
100 - end  
101 -  
102 - @user.person_data = params_profile_data 96 + @user.person_data = params[:profile_data]
103 @user.return_to = session[:return_to] 97 @user.return_to = session[:return_to]
104 @person = Person.new(params[:profile_data]) 98 @person = Person.new(params[:profile_data])
105 @person.environment = @user.environment 99 @person.environment = @user.environment
app/models/user.rb
@@ -29,8 +29,6 @@ class User &lt; ActiveRecord::Base @@ -29,8 +29,6 @@ class User &lt; ActiveRecord::Base
29 alias_method_chain :human_attribute_name, :customization 29 alias_method_chain :human_attribute_name, :customization
30 end 30 end
31 31
32 - include Noosfero::Plugin::HotSpot  
33 -  
34 before_create do |user| 32 before_create do |user|
35 if user.environment.nil? 33 if user.environment.nil?
36 user.environment = Environment.default 34 user.environment = Environment.default
@@ -48,7 +46,6 @@ class User &lt; ActiveRecord::Base @@ -48,7 +46,6 @@ class User &lt; ActiveRecord::Base
48 p.environment = user.environment 46 p.environment = user.environment
49 p.name ||= user.name || user.login 47 p.name ||= user.name || user.login
50 p.visible = false unless user.activated? 48 p.visible = false unless user.activated?
51 -  
52 p.save! 49 p.save!
53 50
54 user.person = p 51 user.person = p
1 # encoding: UTF-8 1 # encoding: UTF-8
2 # This file is auto-generated from the current state of the database. Instead 2 # This file is auto-generated from the current state of the database. Instead
3 # of editing this file, please use the migrations feature of Active Record to 3 # of editing this file, please use the migrations feature of Active Record to
  4 +# incrementally modify your database, and then regenerate this schema definition.
4 # 5 #
5 # Note that this schema.rb definition is the authoritative source for your 6 # Note that this schema.rb definition is the authoritative source for your
6 # database schema. If you need to create the application database on another 7 # database schema. If you need to create the application database on another
features/step_definitions/noosfero_steps.rb
@@ -762,3 +762,11 @@ When /^I confirm the &quot;(.*)&quot; dialog$/ do |confirmation| @@ -762,3 +762,11 @@ When /^I confirm the &quot;(.*)&quot; dialog$/ do |confirmation|
762 assert_equal confirmation, a.text 762 assert_equal confirmation, a.text
763 a.accept 763 a.accept
764 end 764 end
  765 +
  766 +Given /^the field (.*) is public for all users$/ do |field|
  767 + Person.all.each do |person|
  768 + person.fields_privacy = Hash.new if person.fields_privacy.nil?
  769 + person.fields_privacy[field] = "public"
  770 + person.save!
  771 + end
  772 +end
765 \ No newline at end of file 773 \ No newline at end of file
lib/noosfero/plugin.rb
@@ -537,23 +537,12 @@ class Noosfero::Plugin @@ -537,23 +537,12 @@ class Noosfero::Plugin
537 nil 537 nil
538 end 538 end
539 539
540 - # -> Return a list of extra person fields  
541 - # returns = a list of strings with fields' name  
542 - def extra_person_fields  
543 - []  
544 - end  
545 -  
546 # -> Return a list of hashs with the needed information to create optional fields 540 # -> Return a list of hashs with the needed information to create optional fields
547 # returns = a list of hashs as {:name => "string", :label => "string", :object_name => :key, :method => :key} 541 # returns = a list of hashs as {:name => "string", :label => "string", :object_name => :key, :method => :key}
548 def extra_optional_fields 542 def extra_optional_fields
549 [] 543 []
550 end 544 end
551 545
552 - # -> Return a hash with another object's params  
553 - def extra_person_data_params  
554 - {}  
555 - end  
556 -  
557 # -> Adds additional blocks to profiles and environments. 546 # -> Adds additional blocks to profiles and environments.
558 # Your plugin must implements a class method called 'extra_blocks' 547 # Your plugin must implements a class method called 'extra_blocks'
559 # that returns a hash with the following syntax. 548 # that returns a hash with the following syntax.
plugins/lattes_curriculum/README.md 0 → 100644
@@ -0,0 +1,45 @@ @@ -0,0 +1,45 @@
  1 +README - Lattes Curriculum (LattesCurriculum Plugin)
  2 +================================
  3 +
  4 +Lattes Curriculum is a plugin that allow users to show their academic informations in the wall, extracted from CNPQ's lattes plataform
  5 +
  6 +INSTALL
  7 +=======
  8 +
  9 +Enable Plugin
  10 +-------------
  11 +
  12 +Also, you need to enable LattesCurriculum Plugin on your Noosfero:
  13 +
  14 +cd <your_noosfero_dir>
  15 +./script/noosfero-plugins enable lattes_curriculum
  16 +
  17 +Active Plugin
  18 +-------------
  19 +
  20 +As a Noosfero administrator user, go to administrator panel:
  21 +
  22 +- Click on "Enable/disable plugins" option
  23 +- Click on "LattesCurriculumPlugin" check-box
  24 +
  25 +Running LattesCurriculum tests
  26 +--------------------
  27 +
  28 +$ rake test:noosfero_plugins:lattes_curriculum
  29 +
  30 +LICENSE
  31 +=======
  32 +
  33 +Copyright (c) The Author developers.
  34 +
  35 +See Noosfero license.
  36 +
  37 +
  38 +AUTHORS
  39 +=======
  40 +
  41 +Jose Pedro (1jpsneto at gmail.com)
  42 +Thiago Kairala (thiagor.kairala at gmail.com)
  43 +Ana Paula Vargas (anapaulavnoronha at gmail.com)
  44 +Leandro Veloso (leandrovelosorodrigues at gmail.com)
  45 +Arthur Del Esposte (arthurmde at gmail.com)
0 \ No newline at end of file 46 \ No newline at end of file
plugins/lattes_curriculum/db/migrate/20140814210103_create_academic_infos.rb
1 class CreateAcademicInfos < ActiveRecord::Migration 1 class CreateAcademicInfos < ActiveRecord::Migration
2 def self.up 2 def self.up
3 - create_table :academic_infos do |t|  
4 - t.references :person 3 + create_table :academic_infos do |t|
  4 + t.references :person
5 t.column :lattes_url, :string 5 t.column :lattes_url, :string
6 end 6 end
7 - end 7 + end
8 8
9 def self.down 9 def self.down
10 drop_table :academic_infos 10 drop_table :academic_infos
plugins/lattes_curriculum/features/lattes_curriculum.feature
@@ -7,55 +7,43 @@ Feature: import lattes information @@ -7,55 +7,43 @@ Feature: import lattes information
7 Given "LattesCurriculumPlugin" plugin is enabled 7 Given "LattesCurriculumPlugin" plugin is enabled
8 And I am logged in as admin 8 And I am logged in as admin
9 And I go to /admin/plugins 9 And I go to /admin/plugins
10 - And I check "LattesCurriculumPlugin" 10 + And I check "Lattes Curriculum Plugin"
11 And I press "Save changes" 11 And I press "Save changes"
12 And I go to /admin/features/manage_fields 12 And I go to /admin/features/manage_fields
13 Given I follow "Person's fields" 13 Given I follow "Person's fields"
14 And I check "person_fields_lattes_url_active" 14 And I check "person_fields_lattes_url_active"
15 And I check "person_fields_lattes_url_signup" 15 And I check "person_fields_lattes_url_signup"
16 And I press "save_person_fields" 16 And I press "save_person_fields"
17 - And feature "skip_new_user_email_confirmation" is enabled on environment  
18 - And I am not logged in  
19 17
20 - @selenium  
21 - Scenario: Import lattes informations after singup  
22 - Given I am on signup page  
23 - When I fill in "e-Mail" with "josesilva@example.com"  
24 - And I fill in "Username" with "josesilva"  
25 - And I fill in "Full name" with "João Silva"  
26 - And I fill in "Password" with "secret"  
27 - And I fill in "Password confirmation" with "secret" 18 + Scenario: Don't accept edit the profile with invalid lattes url
  19 + Given I am on admin_user's control panel
  20 + When I follow "Edit Profile"
  21 + And I fill in "Lattes URL" with "http://youtube.com.br/"
  22 + And I press "Save"
  23 + Then I should see "Academic info lattes url is invalid"
  24 +
  25 + Scenario: Import lattes informations
  26 + Given I am on admin_user's control panel
  27 + And the field lattes_url is public for all users
  28 + When I follow "Edit Profile"
28 And I fill in "Lattes URL" with "http://lattes.cnpq.br/2864976228727880" 29 And I fill in "Lattes URL" with "http://lattes.cnpq.br/2864976228727880"
29 - And wait for the captcha signup time  
30 - And I press "Create my account"  
31 - And I go to /profile/josesilva  
32 - And I follow "Lattes" within "#ui-tabs-anchor" 30 + And I press "Save"
  31 + And I go to /profile/admin_user#lattes_tab
33 Then I should see "Endereço para acessar este CV: http://lattes.cnpq.br/2864976228727880" 32 Then I should see "Endereço para acessar este CV: http://lattes.cnpq.br/2864976228727880"
34 33
35 - @selenium  
36 Scenario: Don't show lattes informations for blank lattes urls 34 Scenario: Don't show lattes informations for blank lattes urls
37 - Given I am on signup page  
38 - When I fill in "e-Mail" with "josesilva@example.com"  
39 - And I fill in "Username" with "josesilva"  
40 - And I fill in "Full name" with "João Silva"  
41 - And I fill in "Password" with "secret"  
42 - And I fill in "Password confirmation" with "secret"  
43 - And wait for the captcha signup time  
44 - And I press "Create my account"  
45 - And I go to /profile/josesilva  
46 - Then I should not see "Lattes" within "#ui-tabs-anchor" 35 + Given I am on admin_user's control panel
  36 + And the field lattes_url is public for all users
  37 + When I follow "Edit Profile"
  38 + And I press "Save"
  39 + And I go to /profile/admin_user
  40 + Then I should not see "Lattes"
47 41
48 - @selenium  
49 Scenario: Inform problem if the informed lattes doesn't exist 42 Scenario: Inform problem if the informed lattes doesn't exist
50 - Given I am on signup page  
51 - When I fill in "e-Mail" with "josesilva@example.com"  
52 - And I fill in "Username" with "josesilva"  
53 - And I fill in "Full name" with "João Silva"  
54 - And I fill in "Password" with "secret"  
55 - And I fill in "Password confirmation" with "secret" 43 + Given I am on admin_user's control panel
  44 + And the field lattes_url is public for all users
  45 + When I follow "Edit Profile"
56 And I fill in "Lattes URL" with "http://lattes.cnpq.br/123456" 46 And I fill in "Lattes URL" with "http://lattes.cnpq.br/123456"
57 - And wait for the captcha signup time  
58 - And I press "Create my account"  
59 - And I go to /profile/josesilva  
60 - And I follow "Lattes" within "#ui-tabs-anchor" 47 + And I press "Save"
  48 + And I go to /profile/admin_user#lattes_tab
61 Then I should see "Lattes not found. Please, make sure the informed URL is correct." 49 Then I should see "Lattes not found. Please, make sure the informed URL is correct."
62 \ No newline at end of file 50 \ No newline at end of file
plugins/lattes_curriculum/lib/academic_info.rb
1 class AcademicInfo < ActiveRecord::Base 1 class AcademicInfo < ActiveRecord::Base
2 2
3 - belongs_to :person 3 + belongs_to :person
4 4
5 - attr_accessible :lattes_url 5 + attr_accessible :lattes_url
6 validate :lattes_url_validate? 6 validate :lattes_url_validate?
7 7
8 def lattes_url_validate? 8 def lattes_url_validate?
9 - valid_url_start = 'http://lattes.cnpq.br/'  
10 - unless self.lattes_url.blank? || self.lattes_url =~ /http:\/\/lattes.cnpq.br\/\d+/  
11 - self.errors.add(:lattes_url, _("Sorry, the lattes url is not valid.")) 9 + unless AcademicInfo.matches?(self.lattes_url)
  10 + self.errors.add(:lattes_url, _(" is invalid."))
12 end 11 end
13 end 12 end
  13 +
  14 + def self.matches?(info)
  15 + lattes = nil
  16 + if info.class == String
  17 + lattes = info
  18 + elsif info.class == Hash
  19 + lattes = info[:lattes_url]
  20 + end
  21 + return lattes.blank? || lattes =~ /^http:\/\/lattes.cnpq.br\/\d+$/
  22 + end
14 end 23 end
plugins/lattes_curriculum/lib/ext/person.rb
@@ -15,4 +15,6 @@ class Person @@ -15,4 +15,6 @@ class Person
15 def lattes_url= value 15 def lattes_url= value
16 self.academic_info.lattes_url = value unless self.academic_info.nil? 16 self.academic_info.lattes_url = value unless self.academic_info.nil?
17 end 17 end
  18 +
  19 + FIELDS << "lattes_url"
18 end 20 end
plugins/lattes_curriculum/lib/html_parser.rb
@@ -6,8 +6,8 @@ Encoding.default_external = Encoding::UTF_8 @@ -6,8 +6,8 @@ Encoding.default_external = Encoding::UTF_8
6 Encoding.default_internal = Encoding::UTF_8 6 Encoding.default_internal = Encoding::UTF_8
7 7
8 class Html_parser 8 class Html_parser
9 - def get_html(lattes_link = "")  
10 - begin 9 + def get_html(lattes_link = "")
  10 + begin
11 page = Nokogiri::HTML(open(lattes_link), nil, "UTF-8") 11 page = Nokogiri::HTML(open(lattes_link), nil, "UTF-8")
12 page = page.css(".main-content").to_s() 12 page = page.css(".main-content").to_s()
13 page = remove_class_tooltip(page) 13 page = remove_class_tooltip(page)
@@ -17,8 +17,10 @@ class Html_parser @@ -17,8 +17,10 @@ class Html_parser
17 page = remove_further_informations(page) 17 page = remove_further_informations(page)
18 rescue OpenURI::HTTPError => e 18 rescue OpenURI::HTTPError => e
19 page = _("Lattes not found. Please, make sure the informed URL is correct.") 19 page = _("Lattes not found. Please, make sure the informed URL is correct.")
20 - end  
21 - end 20 + rescue Timeout::Error => e
  21 + page = _("Lattes Platform is unreachable. Please, try it later.")
  22 + end
  23 + end
22 24
23 def remove_class_tooltip(page = "") 25 def remove_class_tooltip(page = "")
24 while page.include? 'class="tooltip"' do 26 while page.include? 'class="tooltip"' do
plugins/lattes_curriculum/lib/lattes_curriculum_plugin.rb
1 class LattesCurriculumPlugin < Noosfero::Plugin 1 class LattesCurriculumPlugin < Noosfero::Plugin
2 2
3 def self.plugin_name 3 def self.plugin_name
4 - "LattesCurriculumPlugin" 4 + "Lattes Curriculum Plugin"
5 end 5 end
6 6
7 def self.plugin_description 7 def self.plugin_description
@@ -17,10 +17,6 @@ class LattesCurriculumPlugin &lt; Noosfero::Plugin @@ -17,10 +17,6 @@ class LattesCurriculumPlugin &lt; Noosfero::Plugin
17 end 17 end
18 18
19 def extra_optional_fields 19 def extra_optional_fields
20 - if context.profile && context.profile.person? && context.profile.academic_info.nil?  
21 - context.profile.academic_info = AcademicInfo.new  
22 - end  
23 -  
24 fields = [] 20 fields = []
25 21
26 lattes_url = { 22 lattes_url = {
@@ -36,20 +32,8 @@ class LattesCurriculumPlugin &lt; Noosfero::Plugin @@ -36,20 +32,8 @@ class LattesCurriculumPlugin &lt; Noosfero::Plugin
36 return fields 32 return fields
37 end 33 end
38 34
39 - def extra_person_fields  
40 - fields = []  
41 -  
42 - fields << "lattes_url"  
43 -  
44 - return fields  
45 - end  
46 -  
47 - def extra_person_data_params  
48 - {"academic_info_attributes" => context.params[:academic_infos]}  
49 - end  
50 -  
51 def profile_tabs 35 def profile_tabs
52 - unless context.profile.academic_info.nil? || context.profile.academic_info.lattes_url.blank? 36 + if show_lattes_tab?
53 href = context.profile.academic_info.lattes_url 37 href = context.profile.academic_info.lattes_url
54 html_parser = Html_parser.new 38 html_parser = Html_parser.new
55 { 39 {
@@ -69,6 +53,78 @@ class LattesCurriculumPlugin &lt; Noosfero::Plugin @@ -69,6 +53,78 @@ class LattesCurriculumPlugin &lt; Noosfero::Plugin
69 end 53 end
70 end 54 end
71 55
  56 + def profile_editor_controller_filters
  57 + validate_lattes_url_block = proc do
  58 + if request.post?
  59 + if !params[:academic_infos].blank?
  60 + @profile_data = profile
  61 +
  62 + academic_infos = {"academic_info_attributes" => params[:academic_infos]}
  63 +
  64 + params_profile_data = params[:profile_data]
  65 + params_profile_data = params_profile_data.merge(academic_infos)
  66 +
  67 + @profile_data.attributes = params_profile_data
  68 + @profile_data.valid?
  69 +
  70 + @possible_domains = profile.possible_domains
  71 +
  72 + unless AcademicInfo.matches?(params[:academic_infos])
  73 + @profile_data.errors.add(:lattes_url, _(' Invalid lattes url'))
  74 + render :action => :edit, :profile => profile.identifier
  75 + end
  76 + end
  77 + end
  78 + end
  79 +
  80 + create_academic_info_block = proc do
  81 + if profile && profile.person? && profile.academic_info.nil?
  82 + profile.academic_info = AcademicInfo.new
  83 + end
  84 + end
  85 +
  86 + [{:type => 'before_filter',
  87 + :method_name => 'validate_lattes_url',
  88 + :options => {:only => 'edit'},
  89 + :block => validate_lattes_url_block },
  90 + {:type => 'before_filter',
  91 + :method_name => 'create_academic_info',
  92 + :options => {:only => 'edit'},
  93 + :block => create_academic_info_block }]
  94 + end
  95 +
  96 + def account_controller_filters
  97 + validate_lattes_url_block = proc do
  98 + if request.post?
  99 + params[:profile_data] ||= {}
  100 + params[:profile_data][:academic_info_attributes] = params[:academic_infos]
  101 +
  102 + if !params[:academic_infos].blank? && !AcademicInfo.matches?(params[:academic_infos])
  103 + @person = Person.new(params[:profile_data])
  104 + @person.environment = environment
  105 + @user = User.new(params[:user])
  106 + @person.errors.add(:lattes_url, _(' Invalid lattes url'))
  107 + render :action => :signup
  108 + end
  109 + end
  110 + end
  111 +
  112 + create_academic_info_block = proc do
  113 + if profile && profile.person? && profile.academic_info.nil?
  114 + profile.academic_info = AcademicInfo.new
  115 + end
  116 + end
  117 +
  118 + [{:type => 'before_filter',
  119 + :method_name => 'validate_lattes_url',
  120 + :options => {:only => 'signup'},
  121 + :block => validate_lattes_url_block },
  122 + {:type => 'before_filter',
  123 + :method_name => 'create_academic_info',
  124 + :options => {:only => 'edit'},
  125 + :block => create_academic_info_block }]
  126 + end
  127 +
72 protected 128 protected
73 129
74 def academic_info_transaction 130 def academic_info_transaction
@@ -77,4 +133,7 @@ class LattesCurriculumPlugin &lt; Noosfero::Plugin @@ -77,4 +133,7 @@ class LattesCurriculumPlugin &lt; Noosfero::Plugin
77 end 133 end
78 end 134 end
79 135
  136 + def show_lattes_tab?
  137 + return context.profile.person? && !context.profile.academic_info.nil? && !context.profile.academic_info.lattes_url.blank? && context.profile.public_fields.include?("lattes_url")
  138 + end
80 end 139 end
plugins/lattes_curriculum/public/singup_complement.js
1 jQuery(function($){ 1 jQuery(function($){
2 - $(document).ready(function(){  
3 - $('#lattes_id_field').blur(function(){  
4 - var value = this.value  
5 - }) 2 + $(document).ready(function(){
  3 + $('#lattes_id_field').blur(function(){
  4 + var value = this.value
  5 + })
6 6
7 - $('#lattes_id_field').focus(function(){  
8 - $('#lattes-id-balloon').fadeIn('slow')  
9 - }) 7 + $('#lattes_id_field').focus(function(){
  8 + $('#lattes-id-balloon').fadeIn('slow')
  9 + })
10 10
11 - $('#lattes_id_field').blur(function(){  
12 - $('#lattes-id-balloon').fadeOut('slow')  
13 - })  
14 - }) 11 + $('#lattes_id_field').blur(function(){
  12 + $('#lattes-id-balloon').fadeOut('slow')
  13 + })
  14 + })
15 }) 15 })
16 \ No newline at end of file 16 \ No newline at end of file
plugins/lattes_curriculum/test/unit/academic_info_test.rb
@@ -20,6 +20,4 @@ class AcademicInfoTest &lt; ActiveSupport::TestCase @@ -20,6 +20,4 @@ class AcademicInfoTest &lt; ActiveSupport::TestCase
20 @academic_info.lattes_url = "http://lattes.cnpq.br/2193972715230641" 20 @academic_info.lattes_url = "http://lattes.cnpq.br/2193972715230641"
21 assert @academic_info.save 21 assert @academic_info.save
22 end 22 end
23 -  
24 -  
25 end 23 end
plugins/lattes_curriculum/test/unit/html_parser_test.rb
@@ -21,5 +21,4 @@ class HtmlParserTest &lt; ActiveSupport::TestCase @@ -21,5 +21,4 @@ class HtmlParserTest &lt; ActiveSupport::TestCase
21 should 'inform that lattes was not found' do 21 should 'inform that lattes was not found' do
22 assert_equal "Lattes not found. Please, make sure the informed URL is correct.", @parser.get_html("http://lattes.cnpq.br/123") 22 assert_equal "Lattes not found. Please, make sure the informed URL is correct.", @parser.get_html("http://lattes.cnpq.br/123")
23 end 23 end
24 -  
25 end 24 end
plugins/lattes_curriculum/test/unit/lattes_curriculum_test.rb
@@ -11,7 +11,7 @@ class LattesCurriculumPluginTest &lt; ActiveSupport::TestCase @@ -11,7 +11,7 @@ class LattesCurriculumPluginTest &lt; ActiveSupport::TestCase
11 end 11 end
12 12
13 should 'have name' do 13 should 'have name' do
14 - assert_equal 'LattesCurriculumPlugin', LattesCurriculumPlugin.plugin_name 14 + assert_equal 'Lattes Curriculum Plugin', LattesCurriculumPlugin.plugin_name
15 end 15 end
16 16
17 should 'have description' do 17 should 'have description' do
@@ -21,5 +21,4 @@ class LattesCurriculumPluginTest &lt; ActiveSupport::TestCase @@ -21,5 +21,4 @@ class LattesCurriculumPluginTest &lt; ActiveSupport::TestCase
21 should 'have stylesheet' do 21 should 'have stylesheet' do
22 assert @plugin.stylesheet? 22 assert @plugin.stylesheet?
23 end 23 end
24 -  
25 end 24 end