Commit 73b390946abf7eafe8999641c281d4f259e1bce3

Authored by Thiago Ribeiro
Committed by Larissa Reis
1 parent 2a4c9e64

Add test structure

Signed-off-by: Alessandro Caetano <alessandro.caetanob@gmail.com>
lib/noosfero/api/federation/webfinger.rb
@@ -12,9 +12,13 @@ module Noosfero @@ -12,9 +12,13 @@ module Noosfero
12 end 12 end
13 end 13 end
14 14
15 -def extract_person_identifier  
16 - person = params[:resource].split("@")[0].split(":")[1]  
17 - person 15 +def generate_jrd
  16 + result = {}
  17 + if valid_domain? && request_acct?
  18 + result = acct_hash
  19 + elsif valid_domain? && valid_uri?(params[:resource])
  20 + result = uri_hash
  21 + end
18 end 22 end
19 23
20 def valid_domain? 24 def valid_domain?
@@ -28,32 +32,6 @@ def valid_domain? @@ -28,32 +32,6 @@ def valid_domain?
28 end 32 end
29 end 33 end
30 34
31 -def valid_uri?(url)  
32 - uri = URI.parse(url)  
33 - uri.kind_of?(URI::HTTP)  
34 - rescue URI::BadURIError  
35 - false  
36 - rescue URI::InvalidURIError  
37 - false  
38 -end  
39 -  
40 -def entity_exists?(uri)  
41 - possible_entity = uri.split('/')  
42 - possible_entity.map! {|entity| "#{entity}s"}  
43 - ( ActiveRecord::Base.connection.tables & possible_entity )  
44 - rescue ActiveRecord::RecordNotFound  
45 - false  
46 -end  
47 -  
48 -def generate_jrd  
49 - result = {}  
50 - if valid_domain? && request_acct?  
51 - result = acct_hash  
52 - elsif valid_uri?(params[:resource])  
53 - result = uri_hash  
54 - end  
55 -end  
56 -  
57 def request_acct? 35 def request_acct?
58 params[:resource].include? "acct:" 36 params[:resource].include? "acct:"
59 end 37 end
@@ -65,13 +43,34 @@ def acct_hash @@ -65,13 +43,34 @@ def acct_hash
65 acct 43 acct
66 end 44 end
67 45
  46 +def extract_person_identifier
  47 + person = params[:resource].split("@")[0].split(":")[1]
  48 +end
  49 +
  50 +def valid_uri?(url)
  51 + uri = URI.parse(url)
  52 + uri.kind_of?(URI::HTTP)
  53 + rescue URI::BadURIError
  54 + "URI is valid, bad usage is not"
  55 + rescue URI::InvalidURIError
  56 + "invalid URI"
  57 +end
  58 +
68 def uri_hash 59 def uri_hash
69 uri = {} 60 uri = {}
70 uri[:subject] = params[:resource] 61 uri[:subject] = params[:resource]
71 entity = entity_exists?(params[:resource]) 62 entity = entity_exists?(params[:resource])
72 - noosfero_entity = ActiveSupport::Inflector.classify(entity)  
73 id = params[:resource].split('/').last.to_i 63 id = params[:resource].split('/').last.to_i
74 - uri[:properties] = entity.first.classify.constantize.find(id) 64 + uri[:properties] = entity.classify.constantize.find(id)
75 puts uri.inspect 65 puts uri.inspect
76 uri 66 uri
77 end 67 end
  68 +
  69 +def entity_exists?(uri)
  70 + possible_entity = uri.split('/')
  71 + possible_entity.map! {|entity| "#{entity}s"}
  72 + ( ActiveRecord::Base.connection.tables & possible_entity ).first
  73 + rescue ActiveRecord::RecordNotFound
  74 + false
  75 +end
  76 +
test/api/federation/webfinger_test.rb 0 → 100644
@@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
  1 +require_relative '../test_helper'
  2 +
  3 +class WebfingerTest < ActiveSupport::TestCase
  4 +
  5 + def setup
  6 + end
  7 +
  8 + should 'list tasks of environment' do
  9 + assert_equal true, true
  10 + end
  11 +
  12 +end