Commit 5c1641f3595d162184bcec55ec7cad53b6d16966

Authored by Arthur Esposte
Committed by Daniela Feitosa
1 parent fd23e874

curriculum_lattes_plugin: Improvements and test

plugins/lattes_curriculum/features/lattes_curriculum.feature
... ... @@ -9,16 +9,53 @@ Feature: import lattes information
9 9 And I go to /admin/plugins
10 10 And I check "LattesCurriculumPlugin"
11 11 And I press "Save changes"
  12 + And I go to /admin/features/manage_fields
  13 + Given I follow "Person's fields"
  14 + And I check "person_fields_lattes_url_active"
  15 + And I check "person_fields_lattes_url_signup"
  16 + And I press "save_person_fields"
  17 + And feature "skip_new_user_email_confirmation" is enabled on environment
12 18 And I am not logged in
13 19  
14 20 @selenium
15 21 Scenario: Import lattes informations after singup
16 22 Given I am on signup page
17   - And I fill in "e-Mail" with "josesilva@example.com"
  23 + When I fill in "e-Mail" with "josesilva@example.com"
18 24 And I fill in "Username" with "josesilva"
19 25 And I fill in "Full name" with "João Silva"
20 26 And I fill in "Password" with "secret"
21 27 And I fill in "Password confirmation" with "secret"
22   - And I fill in "URL Lattes" with "http://lattes.cnpq.br/2864976228727880"
  28 + And I fill in "Lattes URL" with "http://lattes.cnpq.br/2864976228727880"
23 29 And wait for the captcha signup time
24   - And I press "Create my account"
25 30 \ No newline at end of file
  31 + And I press "Create my account"
  32 + And I go to /profile/josesilva
  33 + And I follow "Lattes" within "#ui-tabs-anchor"
  34 + Then I should see "Endereço para acessar este CV: http://lattes.cnpq.br/2864976228727880"
  35 +
  36 + @selenium
  37 + Scenario: Don't show lattes informations for blank lattes urls
  38 + Given I am on signup page
  39 + When I fill in "e-Mail" with "josesilva@example.com"
  40 + And I fill in "Username" with "josesilva"
  41 + And I fill in "Full name" with "João Silva"
  42 + And I fill in "Password" with "secret"
  43 + And I fill in "Password confirmation" with "secret"
  44 + And wait for the captcha signup time
  45 + And I press "Create my account"
  46 + And I go to /profile/josesilva
  47 + Then I should not see "Lattes" within "#ui-tabs-anchor"
  48 +
  49 + @selenium
  50 + Scenario: Inform problem if the informed lattes doesn't exist
  51 + Given I am on signup page
  52 + When I fill in "e-Mail" with "josesilva@example.com"
  53 + And I fill in "Username" with "josesilva"
  54 + And I fill in "Full name" with "João Silva"
  55 + And I fill in "Password" with "secret"
  56 + And I fill in "Password confirmation" with "secret"
  57 + And I fill in "Lattes URL" with "http://lattes.cnpq.br/123456"
  58 + And wait for the captcha signup time
  59 + And I press "Create my account"
  60 + And I go to /profile/josesilva
  61 + And I follow "Lattes" within "#ui-tabs-anchor"
  62 + Then I should see "Lattes not found. Please, make sure the informed URL is correct."
26 63 \ No newline at end of file
... ...
plugins/lattes_curriculum/lib/html_parser.rb
... ... @@ -15,8 +15,8 @@ class Html_parser
15 15 page = remove_select(page)
16 16 page = remove_footer(page)
17 17 page = remove_further_informations(page)
18   - rescue
19   - page = ""
  18 + rescue OpenURI::HTTPError => e
  19 + page = _("Lattes not found. Please, make sure the informed URL is correct.")
20 20 end
21 21 end
22 22  
... ...
plugins/lattes_curriculum/lib/lattes_curriculum_plugin.rb
... ... @@ -49,7 +49,7 @@ class LattesCurriculumPlugin < Noosfero::Plugin
49 49 end
50 50  
51 51 def profile_tabs
52   - unless context.profile.academic_info.nil? || context.profile.academic_info.lattes_url.nil?
  52 + unless context.profile.academic_info.nil? || context.profile.academic_info.lattes_url.blank?
53 53 href = context.profile.academic_info.lattes_url
54 54 html_parser = Html_parser.new
55 55 {
... ...
plugins/lattes_curriculum/test/unit/academic_info_test.rb 0 → 100644
... ... @@ -0,0 +1,25 @@
  1 +require "test_helper"
  2 +
  3 +class AcademicInfoTest < ActiveSupport::TestCase
  4 +
  5 + def setup
  6 + @academic_info = AcademicInfo.new
  7 + end
  8 +
  9 + should 'not ve invalid lattes url' do
  10 + @academic_info.lattes_url = "http://softwarelivre.org/"
  11 + assert !@academic_info.save
  12 + end
  13 +
  14 + should 'accept blank lattes url' do
  15 + @academic_info.lattes_url = ""
  16 + assert @academic_info.save
  17 + end
  18 +
  19 + should 'save with correct lattes url' do
  20 + @academic_info.lattes_url = "http://lattes.cnpq.br/2193972715230641"
  21 + assert @academic_info.save
  22 + end
  23 +
  24 +
  25 +end
... ...
plugins/lattes_curriculum/test/unit/html_parser_test.rb
  1 +#!/bin/env ruby
  2 +# encoding: utf-8
  3 +
1 4 require "test_helper"
2 5  
3 6 class HtmlParserTest < ActiveSupport::TestCase
... ... @@ -11,11 +14,12 @@ class HtmlParserTest &lt; ActiveSupport::TestCase
11 14 end
12 15  
13 16 should 'be not nil the return get_html' do
14   - assert_not_nil @parser.get_html("http://lattes.cnpq.br/2193972715230641")
  17 + result = @parser.get_html("http://lattes.cnpq.br/2193972715230641")
  18 + assert result.include?("Endereço para acessar este CV")
15 19 end
16 20  
17   - should 'return a string the return get_html' do
18   - assert_equal "", @parser.get_html()
  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")
19 23 end
20 24  
21 25 end
... ...