From 73b390946abf7eafe8999641c281d4f259e1bce3 Mon Sep 17 00:00:00 2001 From: Thiago Ribeiro Date: Thu, 5 May 2016 17:02:19 -0300 Subject: [PATCH] Add test structure --- lib/noosfero/api/federation/webfinger.rb | 61 ++++++++++++++++++++++++++++++------------------------------- test/api/federation/webfinger_test.rb | 12 ++++++++++++ 2 files changed, 42 insertions(+), 31 deletions(-) create mode 100644 test/api/federation/webfinger_test.rb diff --git a/lib/noosfero/api/federation/webfinger.rb b/lib/noosfero/api/federation/webfinger.rb index f4f9f52..ce5a0d1 100644 --- a/lib/noosfero/api/federation/webfinger.rb +++ b/lib/noosfero/api/federation/webfinger.rb @@ -12,9 +12,13 @@ module Noosfero end end -def extract_person_identifier - person = params[:resource].split("@")[0].split(":")[1] - person +def generate_jrd + result = {} + if valid_domain? && request_acct? + result = acct_hash + elsif valid_domain? && valid_uri?(params[:resource]) + result = uri_hash + end end def valid_domain? @@ -28,32 +32,6 @@ def valid_domain? end end -def valid_uri?(url) - uri = URI.parse(url) - uri.kind_of?(URI::HTTP) - rescue URI::BadURIError - false - rescue URI::InvalidURIError - false -end - -def entity_exists?(uri) - possible_entity = uri.split('/') - possible_entity.map! {|entity| "#{entity}s"} - ( ActiveRecord::Base.connection.tables & possible_entity ) - rescue ActiveRecord::RecordNotFound - false -end - -def generate_jrd - result = {} - if valid_domain? && request_acct? - result = acct_hash - elsif valid_uri?(params[:resource]) - result = uri_hash - end -end - def request_acct? params[:resource].include? "acct:" end @@ -65,13 +43,34 @@ def acct_hash acct end +def extract_person_identifier + person = params[:resource].split("@")[0].split(":")[1] +end + +def valid_uri?(url) + uri = URI.parse(url) + uri.kind_of?(URI::HTTP) + rescue URI::BadURIError + "URI is valid, bad usage is not" + rescue URI::InvalidURIError + "invalid URI" +end + def uri_hash uri = {} uri[:subject] = params[:resource] entity = entity_exists?(params[:resource]) - noosfero_entity = ActiveSupport::Inflector.classify(entity) id = params[:resource].split('/').last.to_i - uri[:properties] = entity.first.classify.constantize.find(id) + uri[:properties] = entity.classify.constantize.find(id) puts uri.inspect uri end + +def entity_exists?(uri) + possible_entity = uri.split('/') + possible_entity.map! {|entity| "#{entity}s"} + ( ActiveRecord::Base.connection.tables & possible_entity ).first + rescue ActiveRecord::RecordNotFound + false +end + diff --git a/test/api/federation/webfinger_test.rb b/test/api/federation/webfinger_test.rb new file mode 100644 index 0000000..8c88f7f --- /dev/null +++ b/test/api/federation/webfinger_test.rb @@ -0,0 +1,12 @@ +require_relative '../test_helper' + +class WebfingerTest < ActiveSupport::TestCase + + def setup + end + + should 'list tasks of environment' do + assert_equal true, true + end + +end -- libgit2 0.21.2