Commit bc10f895412f9622c48ce002b1f275da0a873c18

Authored by Joenio Costa
1 parent b48ac63d

rename federated_network -> external_environment

app/controllers/admin/external_environments_controller.rb 0 → 100644
@@ -0,0 +1,13 @@ @@ -0,0 +1,13 @@
  1 +class ExternalEnvironmentsController < AdminController
  2 + protect 'edit_environment_features', :environment
  3 +
  4 + def index
  5 + @environments = ExternalEnvironment.all
  6 + end
  7 +
  8 + def save_environments
  9 + environment.update(params[:environment])
  10 + redirect_to action: :index
  11 + session[:notice] = _('External environments updated successfully.')
  12 + end
  13 +end
app/controllers/admin/federated_networks_controller.rb
@@ -1,13 +0,0 @@ @@ -1,13 +0,0 @@
1 -class FederatedNetworksController < AdminController  
2 - protect 'edit_environment_features', :environment  
3 -  
4 - def index  
5 - @networks = FederatedNetwork.all  
6 - end  
7 -  
8 - def save_networks  
9 - environment.update(params[:environment])  
10 - redirect_to action: :index  
11 - session[:notice] = _('Federated networks updated successfully.')  
12 - end  
13 -end  
app/models/environment.rb
@@ -15,7 +15,7 @@ class Environment &lt; ApplicationRecord @@ -15,7 +15,7 @@ class Environment &lt; ApplicationRecord
15 :members_whitelist, :highlighted_news_amount, 15 :members_whitelist, :highlighted_news_amount,
16 :portal_news_amount, :date_format, :signup_intro, 16 :portal_news_amount, :date_format, :signup_intro,
17 :enable_feed_proxy, :http_feed_proxy, :https_feed_proxy, 17 :enable_feed_proxy, :http_feed_proxy, :https_feed_proxy,
18 - :disable_feed_ssl, :federated_network_ids 18 + :disable_feed_ssl, :external_environment_ids
19 19
20 has_many :users 20 has_many :users
21 21
@@ -24,8 +24,8 @@ class Environment &lt; ApplicationRecord @@ -24,8 +24,8 @@ class Environment &lt; ApplicationRecord
24 false 24 false
25 end 25 end
26 26
27 - has_many :environment_federated_networks, :dependent => :destroy  
28 - has_many :federated_networks, :through => :environment_federated_networks 27 + has_many :environment_external_environments, :dependent => :destroy
  28 + has_many :external_environments, :through => :environment_external_environments
29 29
30 has_many :tasks, :dependent => :destroy, :as => 'target' 30 has_many :tasks, :dependent => :destroy, :as => 'target'
31 has_many :search_terms, :as => :context 31 has_many :search_terms, :as => :context
app/models/environment_external_environment.rb 0 → 100644
@@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
  1 +class EnvironmentExternalEnvironment < ActiveRecord::Base
  2 + belongs_to :environment
  3 + belongs_to :external_environment
  4 +
  5 + attr_accessible :environment, :external_environment
  6 +
  7 + validates_uniqueness_of :external_environment, :scope => :environment
  8 +end
app/models/environment_federated_network.rb
@@ -1,8 +0,0 @@ @@ -1,8 +0,0 @@
1 -class EnvironmentFederatedNetwork < ActiveRecord::Base  
2 - belongs_to :environment  
3 - belongs_to :federated_network  
4 -  
5 - attr_accessible :environment, :federated_network  
6 -  
7 - validates_uniqueness_of :federated_network, :scope => :environment  
8 -end  
app/models/external_environment.rb 0 → 100644
@@ -0,0 +1,9 @@ @@ -0,0 +1,9 @@
  1 +class ExternalEnvironment < ActiveRecord::Base
  2 + validates_presence_of :url, :name, :identifier
  3 + validates_uniqueness_of :url, :name, :identifier
  4 +
  5 + attr_accessible :name, :url, :thumbnail, :screenshot, :identifier
  6 +
  7 + has_many :environment_external_environments, dependent: :destroy
  8 + has_many :environments, through: :environment_external_environments
  9 +end
app/models/federated_network.rb
@@ -1,9 +0,0 @@ @@ -1,9 +0,0 @@
1 -class FederatedNetwork < ActiveRecord::Base  
2 - validates_presence_of :url, :name, :identifier  
3 - validates_uniqueness_of :url, :name, :identifier  
4 -  
5 - attr_accessible :name, :url, :thumbnail, :screenshot, :identifier  
6 -  
7 - has_many :environment_federated_networks, dependent: :destroy  
8 - has_many :environments, through: :environment_federated_networks  
9 -end  
app/views/admin_panel/index.html.erb
@@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@
12 <tr><td><%= link_to _('Licenses'), :controller =>'licenses' %></td></tr> 12 <tr><td><%= link_to _('Licenses'), :controller =>'licenses' %></td></tr>
13 <tr><td><%= link_to _('Trusted sites'), :controller =>'trusted_sites' %></td></tr> 13 <tr><td><%= link_to _('Trusted sites'), :controller =>'trusted_sites' %></td></tr>
14 <tr><td><%= link_to _('Email templates'), :controller =>'environment_email_templates' %></td></tr> 14 <tr><td><%= link_to _('Email templates'), :controller =>'environment_email_templates' %></td></tr>
15 - <tr><td><%= link_to _('Federated Networks'), :controller =>'federated_networks' %></td></tr> 15 + <tr><td><%= link_to _('External environments'), :controller =>'external_environments' %></td></tr>
16 </table> 16 </table>
17 17
18 <h2><%= _('Profiles') %></h2> 18 <h2><%= _('Profiles') %></h2>
app/views/external_environments/index.html.erb 0 → 100644
@@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
  1 +<h1><%= _('Manage external environments') %></h1>
  2 +
  3 +<% if not @environments.empty? %>
  4 + <p>
  5 + <%= _('Select which external environments you want to enable in your environment') %>
  6 + </p>
  7 +
  8 + <%= labelled_form_for(:environment, :url => {:action => 'save_environments'}) do |f| %>
  9 + <div style='vertical_align: top'>
  10 + <%= collection_check_boxes(:environment, :external_environment_ids, ExternalEnvironment.all, :id, :name) do |box| %>
  11 + <div class='external-environment-thumbnail'>
  12 + <% if box.object.thumbnail.present? %>
  13 + <%= image_tag box.object.thumbnail %>
  14 + <% end %>
  15 + <h5><%= box.label { box.check_box + box.text }%></h5>
  16 + </div>
  17 + <% end %>
  18 + </div>
  19 + <div class='external-environment-button'>
  20 + <%= button_bar do %>
  21 + <%= submit_button('save', _('Save changes')) %>
  22 + <%= button :back, _('Back to admin panel'), :controller => 'admin_panel', :action => 'index' %>
  23 + <% end %>
  24 + </div>
  25 + <% end %>
  26 +<% else %>
  27 + <p> <%= _('No external environments available') %> </p>
  28 +<% end %>
app/views/federated_networks/index.html.erb
@@ -1,28 +0,0 @@ @@ -1,28 +0,0 @@
1 -<h1><%= _('Manage federated networks') %></h1>  
2 -  
3 -<% if not @networks.empty? %>  
4 - <p>  
5 - <%= _('Select which federated networks you want to enable in your environment') %>  
6 - </p>  
7 -  
8 - <%= labelled_form_for(:environment, :url => {:action => 'save_networks'}) do |f| %>  
9 - <div style='vertical_align: top'>  
10 - <%= collection_check_boxes(:environment, :federated_network_ids, FederatedNetwork.all, :id, :name) do |box| %>  
11 - <div class='federation-thumbnail'>  
12 - <% if box.object.thumbnail.present? %>  
13 - <%= image_tag box.object.thumbnail %>  
14 - <% end %>  
15 - <h5><%= box.label { box.check_box + box.text }%></h5>  
16 - </div>  
17 - <% end %>  
18 - </div>  
19 - <div class='federation-button'>  
20 - <% button_bar do %>  
21 - <%= submit_button('save', _('Save changes')) %>  
22 - <%= button :back, _('Back to admin panel'), :controller => 'admin_panel', :action => 'index' %>  
23 - <% end %>  
24 - </div>  
25 - <% end %>  
26 -<% else %>  
27 - <p> <%= _('No federated networks available') %> </p>  
28 -<% end %>  
config/schedule.rb
@@ -26,7 +26,7 @@ every 1.day do @@ -26,7 +26,7 @@ every 1.day do
26 end 26 end
27 27
28 every 1.day do 28 every 1.day do
29 - rake 'federated_network:update' 29 + rake 'external_environment:update'
30 end 30 end
31 31
32 32
db/migrate/20160405175153_create_external_environment.rb 0 → 100644
@@ -0,0 +1,11 @@ @@ -0,0 +1,11 @@
  1 +class CreateExternalEnvironment < ActiveRecord::Migration
  2 + def change
  3 + create_table :external_environments do |t|
  4 + t.string :name
  5 + t.string :url
  6 + t.string :identifier
  7 + t.string :screenshot
  8 + t.string :thumbnail
  9 + end
  10 + end
  11 +end
db/migrate/20160405175153_create_federated_network.rb
@@ -1,11 +0,0 @@ @@ -1,11 +0,0 @@
1 -class CreateFederatedNetwork < ActiveRecord::Migration  
2 - def change  
3 - create_table :federated_networks do |t|  
4 - t.string :name  
5 - t.string :url  
6 - t.string :identifier  
7 - t.string :screenshot  
8 - t.string :thumbnail  
9 - end  
10 - end  
11 -end  
db/migrate/20160406145351_environment_external_environments.rb 0 → 100644
@@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
  1 +class EnvironmentExternalEnvironments < ActiveRecord::Migration
  2 + def self.up
  3 + create_table :environment_external_environments do |t|
  4 + t.references :environment, index: true
  5 + t.references :external_environment, index: true
  6 + end
  7 + end
  8 +
  9 + def self.down
  10 + drop_table :environment_external_environments
  11 + end
  12 +end
db/migrate/20160406145351_environment_federated_networks.rb
@@ -1,12 +0,0 @@ @@ -1,12 +0,0 @@
1 -class EnvironmentFederatedNetworks < ActiveRecord::Migration  
2 - def self.up  
3 - create_table :environment_federated_networks do |t|  
4 - t.references :environment, index: true  
5 - t.references :federated_network, index: true  
6 - end  
7 - end  
8 -  
9 - def self.down  
10 - drop_table :environment_federated_networks  
11 - end  
12 -end  
@@ -370,9 +370,9 @@ ActiveRecord::Schema.define(version: 20160422163123) do @@ -370,9 +370,9 @@ ActiveRecord::Schema.define(version: 20160422163123) do
370 t.datetime "updated_at" 370 t.datetime "updated_at"
371 end 371 end
372 372
373 - create_table "environment_federated_networks", force: :cascade do |t| 373 + create_table "environment_external_environments", force: :cascade do |t|
374 t.integer "environment_id" 374 t.integer "environment_id"
375 - t.integer "federated_network_id" 375 + t.integer "external_environment_id"
376 end 376 end
377 377
378 create_table "environments", force: :cascade do |t| 378 create_table "environments", force: :cascade do |t|
@@ -429,7 +429,7 @@ ActiveRecord::Schema.define(version: 20160422163123) do @@ -429,7 +429,7 @@ ActiveRecord::Schema.define(version: 20160422163123) do
429 add_index "favorite_enterprise_people", ["person_id", "enterprise_id"], name: "index_favorite_enterprise_people_on_person_id_and_enterprise_id", using: :btree 429 add_index "favorite_enterprise_people", ["person_id", "enterprise_id"], name: "index_favorite_enterprise_people_on_person_id_and_enterprise_id", using: :btree
430 add_index "favorite_enterprise_people", ["person_id"], name: "index_favorite_enterprise_people_on_person_id", using: :btree 430 add_index "favorite_enterprise_people", ["person_id"], name: "index_favorite_enterprise_people_on_person_id", using: :btree
431 431
432 - create_table "federated_networks", force: :cascade do |t| 432 + create_table "external_environments", force: :cascade do |t|
433 t.string "name" 433 t.string "name"
434 t.string "url" 434 t.string "url"
435 t.string "identifier" 435 t.string "identifier"
features/external_environments.feature 0 → 100644
@@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
  1 +Feature: external environments
  2 + As an administrator
  3 + I want to associate my environment with external environments
  4 +
  5 + Background:
  6 + Given I am logged in as admin
  7 + Given the following external environments
  8 + | id | name | url |
  9 + | 1 | Test | test.org |
  10 +
  11 + Scenario: admin user could access the external environments
  12 + Given I follow "Administration"
  13 + When I follow "External environments"
  14 + Then I should be on /admin/external_environments
  15 +
  16 + Scenario: admin user could associated a external environment to the environment
  17 + Given I go to /admin/external_environments
  18 + And I check "environment_external_environment_ids_1"
  19 + When I press "Save changes"
  20 + Then I should be on /admin/external_environments
features/federated_networks.feature
@@ -1,20 +0,0 @@ @@ -1,20 +0,0 @@
1 -Feature: federated networks  
2 - As an administrator  
3 - I want to associate my environment with federated networks  
4 -  
5 - Background:  
6 - Given I am logged in as admin  
7 - Given the following federated networks  
8 - | id | name | url |  
9 - | 1 | Test | test.org |  
10 -  
11 - Scenario: admin user could access the federated networks  
12 - Given I follow "Administration"  
13 - When I follow "Federated Networks"  
14 - Then I should be on /admin/federated_networks  
15 -  
16 - Scenario: admin user could associated a federated network to the environment  
17 - Given I go to /admin/federated_networks  
18 - And I check "environment_federated_network_ids_1"  
19 - When I press "Save changes"  
20 - Then I should be on /admin/federated_networks  
features/step_definitions/noosfero_steps.rb
@@ -55,11 +55,11 @@ Given /^the following (community|communities|enterprises?|organizations?)$/ do | @@ -55,11 +55,11 @@ Given /^the following (community|communities|enterprises?|organizations?)$/ do |
55 end 55 end
56 end 56 end
57 57
58 -Given /^the following federated networks$/ do |table| 58 +Given /^the following external environments$/ do |table|
59 environment = Environment.default 59 environment = Environment.default
60 table.hashes.each do |row| 60 table.hashes.each do |row|
61 - federated_network = FederatedNetwork.create!(row, :without_protection => true)  
62 - environment.federated_networks << federated_network 61 + external_environment = ExternalEnvironment.create!(row, :without_protection => true)
  62 + environment.external_environments << external_environment
63 end 63 end
64 end 64 end
65 65
lib/external_environment_updater.rb 0 → 100644
@@ -0,0 +1,35 @@ @@ -0,0 +1,35 @@
  1 +module ExternalEnvironmentUpdater
  2 + require 'json'
  3 + require 'net/http'
  4 + require './app/models/external_environment'
  5 +
  6 + def self.import_json
  7 + source = 'http://directory.noosfero.org/all.json'
  8 + begin
  9 + resp = Net::HTTP.get_response(URI.parse(source))
  10 + rescue Exception => ex
  11 + Rails.logger.error "Import External Environments Error: #{ex}"
  12 + end
  13 + JSON.parse(resp.body)
  14 + end
  15 +
  16 + def self.process_data
  17 + data = import_json
  18 +
  19 + if data.key?('sites')
  20 + data['sites'].each do |site|
  21 + if site.key?('name') && site.key?('url') && site.key?('id')
  22 + external_environment = ExternalEnvironment.find_or_create_by(identifier: site['id'])
  23 + external_environment.update(name: site['name'],
  24 + url: site['url'],
  25 + screenshot: site['screnshot'],
  26 + thumbnail: site['thumbnail'])
  27 + else
  28 + Rails.logger.error 'External environment JSON has site without name or url'
  29 + end
  30 + end
  31 + else
  32 + Rails.logger.error 'External environment JSON has no sites key'
  33 + end
  34 + end
  35 +end
lib/federated_network_updater.rb
@@ -1,35 +0,0 @@ @@ -1,35 +0,0 @@
1 -module FederatedNetworkUpdater  
2 - require 'json'  
3 - require 'net/http'  
4 - require './app/models/federated_network'  
5 -  
6 - def self.import_json  
7 - source = 'http://directory.noosfero.org/all.json'  
8 - begin  
9 - resp = Net::HTTP.get_response(URI.parse(source))  
10 - rescue Exception => ex  
11 - Rails.logger.error "Import Federated Networks Error: #{ex}"  
12 - end  
13 - JSON.parse(resp.body)  
14 - end  
15 -  
16 - def self.process_data  
17 - data = import_json  
18 -  
19 - if data.key?('sites')  
20 - data['sites'].each do |site|  
21 - if site.key?('name') && site.key?('url') && site.key?('id')  
22 - federated_network = FederatedNetwork.find_or_create_by(identifier: site['id'])  
23 - federated_network.update(name: site['name'],  
24 - url: site['url'],  
25 - screenshot: site['screnshot'],  
26 - thumbnail: site['thumbnail'])  
27 - else  
28 - Rails.logger.error 'Federated network JSON has site without name or url'  
29 - end  
30 - end  
31 - else  
32 - Rails.logger.error 'Federated network JSON has no sites key'  
33 - end  
34 - end  
35 -end  
lib/tasks/external_environment_update.rake 0 → 100644
@@ -0,0 +1,7 @@ @@ -0,0 +1,7 @@
  1 +namespace :external_environment do
  2 + desc 'Task to import external environments'
  3 + task :update do
  4 + sh 'rails', 'runner', 'ExternalEnvironmentUpdater::process_data'
  5 + puts 'External environments are up to date'
  6 + end
  7 +end
lib/tasks/federated_network_update.rake
@@ -1,7 +0,0 @@ @@ -1,7 +0,0 @@
1 -namespace :federated_network do  
2 - desc 'Task to import federated networks'  
3 - task :update do  
4 - sh 'rails', 'runner', 'FederatedNetworkUpdater::process_data'  
5 - puts 'Federated Networks are up to date'  
6 - end  
7 -end  
public/stylesheets/application.scss
@@ -52,7 +52,7 @@ @@ -52,7 +52,7 @@
52 @import 'admin-panel'; 52 @import 'admin-panel';
53 @import 'manage-fields'; 53 @import 'manage-fields';
54 @import 'environment-users'; 54 @import 'environment-users';
55 -@import 'federation'; 55 +@import 'external-environment';
56 56
57 @import 'content'; 57 @import 'content';
58 @import 'comments'; 58 @import 'comments';
public/stylesheets/external-environment.scss 0 → 100644
@@ -0,0 +1,17 @@ @@ -0,0 +1,17 @@
  1 +.external-environment-thumbnail {
  2 + width: 44%;
  3 + display: block;
  4 + float: left;
  5 + margin-left: 20px;
  6 + margin-top: 10px;
  7 + text-overflow: unset;
  8 + height: 220px;
  9 +}
  10 +
  11 +.external-environment-thumbnail img{
  12 + width: 80%;
  13 +}
  14 +
  15 +.external-environment-button {
  16 + clear: both;
  17 +}
public/stylesheets/federation.scss
@@ -1,17 +0,0 @@ @@ -1,17 +0,0 @@
1 -.federation-thumbnail {  
2 - width: 44%;  
3 - display: block;  
4 - float: left;  
5 - margin-left: 20px;  
6 - margin-top: 10px;  
7 - text-overflow: unset;  
8 - height: 220px;  
9 -}  
10 -  
11 -.federation-thumbnail img{  
12 - width: 80%;  
13 -}  
14 -  
15 -.federation-button {  
16 - clear: both;  
17 -}  
test/functional/external_environment_controller_test.rb 0 → 100644
@@ -0,0 +1,37 @@ @@ -0,0 +1,37 @@
  1 +require_relative '../test_helper'
  2 +require 'external_environments_controller'
  3 +include ExternalEnvironmentUpdater
  4 +
  5 +class ExternalEnvironmentsControllerTest < ActionController::TestCase
  6 + all_fixtures
  7 + def setup
  8 + @controller = ExternalEnvironmentsController.new
  9 + @request = ActionController::TestRequest.new
  10 + @response = ActionController::TestResponse.new
  11 + ExternalEnvironment.destroy_all
  12 + @external_environment = ExternalEnvironment.create!(name: 'Test', url: 'test.org',
  13 + identifier: 'Testing')
  14 + login_as(create_admin_user(Environment.default))
  15 + end
  16 +
  17 + should 'list external environments' do
  18 + get :index
  19 + assert_response :success
  20 + assert_template 'index'
  21 + assert assigns(:environments)
  22 + end
  23 +
  24 + should 'save external environments' do
  25 + post :save_environments, environment: { external_environment_ids: [@external_environment] }
  26 + assert_response 302
  27 + assert_redirected_to controller: 'external_environments', action: 'index'
  28 + assert Environment.default.external_environments, @external_environment
  29 + assert_equal 'External environments updated successfully.', session[:notice]
  30 + end
  31 +
  32 + should 'not allow non admin user to update external environments' do
  33 + login_as('johndoe')
  34 + post :save_environments, environment: { external_environment_ids: [@external_environment] }
  35 + assert_response 403
  36 + end
  37 +end
test/functional/federated_network_controller_test.rb
@@ -1,37 +0,0 @@ @@ -1,37 +0,0 @@
1 -require_relative '../test_helper'  
2 -require 'federated_networks_controller'  
3 -include FederatedNetworkUpdater  
4 -  
5 -class FederatedNetworksControllerTest < ActionController::TestCase  
6 - all_fixtures  
7 - def setup  
8 - @controller = FederatedNetworksController.new  
9 - @request = ActionController::TestRequest.new  
10 - @response = ActionController::TestResponse.new  
11 - FederatedNetwork.destroy_all  
12 - @federated_network = FederatedNetwork.create!(name: 'Test', url: 'test.org',  
13 - identifier: 'Testing')  
14 - login_as(create_admin_user(Environment.default))  
15 - end  
16 -  
17 - should 'list federated networks' do  
18 - get :index  
19 - assert_response :success  
20 - assert_template 'index'  
21 - assert assigns(:networks)  
22 - end  
23 -  
24 - should 'save federated networks' do  
25 - post :save_networks, environment: { federated_network_ids: [@federated_network] }  
26 - assert_response 302  
27 - assert_redirected_to controller: 'federated_networks', action: 'index'  
28 - assert Environment.default.federated_networks, @federated_network  
29 - assert_equal 'Federated networks updated successfully.', session[:notice]  
30 - end  
31 -  
32 - should 'not allow non admin user to update federated networks' do  
33 - login_as('johndoe')  
34 - post :save_networks, environment: { federated_network_ids: [@federated_network] }  
35 - assert_response 403  
36 - end  
37 -end  
test/unit/external_environment_test.rb 0 → 100644
@@ -0,0 +1,139 @@ @@ -0,0 +1,139 @@
  1 +require_relative '../test_helper'
  2 +
  3 +class ExternalEnvironmentTest < ActiveSupport::TestCase
  4 + def setup
  5 + ExternalEnvironment.destroy_all
  6 + end
  7 +
  8 + should 'try to process a wrong json without sites key' do
  9 + json = {
  10 + 'name' => 'Blogoosfero',
  11 + 'url' => 'http://blogoosfero.cc/',
  12 + 'id' => 'blogoosfero',
  13 + 'screnshot' => 'http://directorncly.noosfero.org/sites/blogoosfero/screenshot.png',
  14 + 'thumbnail' => 'http://directory.noosfero.org/sites/blogoosfero/screenshot.thumb.png'
  15 + }
  16 + ExternalEnvironmentUpdater.stubs(:import_json).returns(json)
  17 + ExternalEnvironmentUpdater::process_data
  18 +
  19 + assert_equal ExternalEnvironment.find_by_url('http://blogoosfero.cc'), nil
  20 + end
  21 +
  22 + should 'try to process a wrong json with sites but without url' do
  23 + json = {
  24 + 'sites' => [
  25 + { 'name' => 'Blogoosfero',
  26 + 'id' => 'blogoosfero',
  27 + 'screnshot' => 'http://directorncly.noosfero.org/sites/blogoosfero/screenshot.png',
  28 + 'thumbnail' => 'http://directory.noosfero.org/sites/blogoosfero/screenshot.thumb.png'
  29 + }
  30 + ]
  31 + }
  32 + ExternalEnvironmentUpdater.stubs(:import_json).returns(json)
  33 + ExternalEnvironmentUpdater::process_data
  34 +
  35 + assert_equal ExternalEnvironment.find_by_name('Blogoosfero'), nil
  36 + end
  37 +
  38 + should 'try to process a wrong json with sites but without name' do
  39 + json = {
  40 + 'sites' => [
  41 + { 'url' => 'test.org',
  42 + 'id' => 'blogoosfero',
  43 + 'screnshot' => 'http://directorncly.noosfero.org/sites/blogoosfero/screenshot.png',
  44 + 'thumbnail' => 'http://directory.noosfero.org/sites/blogoosfero/screenshot.thumb.png'
  45 + }
  46 + ]
  47 + }
  48 + ExternalEnvironmentUpdater.stubs(:import_json).returns(json)
  49 + ExternalEnvironmentUpdater::process_data
  50 +
  51 + assert_equal ExternalEnvironment.find_by_url('test.org'), nil
  52 + end
  53 +
  54 + should 'try to process a wrong json with sites but without identifier' do
  55 + json = {
  56 + 'sites' => [
  57 + { 'name' => 'Blogoosfero',
  58 + 'url' => 'test.org',
  59 + 'screnshot' => 'http://directorncly.noosfero.org/sites/blogoosfero/screenshot.png',
  60 + 'thumbnail' => 'http://directory.noosfero.org/sites/blogoosfero/screenshot.thumb.png'
  61 + }
  62 + ]
  63 + }
  64 + ExternalEnvironmentUpdater.stubs(:import_json).returns(json)
  65 + ExternalEnvironmentUpdater::process_data
  66 +
  67 + assert_equal ExternalEnvironment.find_by_url('test.org'), nil
  68 + end
  69 +
  70 + should 'try to update site info' do
  71 + ExternalEnvironment.create(name: 'Test', url: 'test.org')
  72 + json = {
  73 + 'sites' => [
  74 + { 'name' => 'Test',
  75 + 'url' => 'test.org',
  76 + 'id' => 'blogoosfero',
  77 + 'screnshot' => 'http://directorncly.noosfero.org/sites/blogoosfero/screenshot.png',
  78 + 'thumbnail' => 'http://directory.noosfero.org/sites/blogoosfero/screenshot.thumb.png'
  79 + }
  80 + ]
  81 + }
  82 +
  83 + ExternalEnvironmentUpdater.stubs(:import_json).returns(json)
  84 +
  85 + ExternalEnvironmentUpdater::process_data
  86 +
  87 + external_environment = ExternalEnvironment.find_by_url('test.org')
  88 +
  89 + assert_equal external_environment.name, 'Test'
  90 + assert_equal external_environment.identifier, 'blogoosfero'
  91 + assert_equal external_environment.screenshot, 'http://directorncly.noosfero.org/sites/blogoosfero/screenshot.png'
  92 + assert_equal external_environment.thumbnail, 'http://directory.noosfero.org/sites/blogoosfero/screenshot.thumb.png'
  93 + end
  94 +
  95 + should 'external environment should have unique url' do
  96 + f1 = ExternalEnvironment.create(name: 'Test2', url: 'http://www.test.com',
  97 + identifier: 'Federation')
  98 + assert(f1.valid?, 'not a valid external environment on f1')
  99 +
  100 + f2 = ExternalEnvironment.create(name: 'Test3', url: f1.url,
  101 + identifier: 'Federation')
  102 + assert_not(f2.valid?, 'f2 should not be a valid external environment')
  103 + end
  104 +
  105 + should 'validades presence of url on external environment' do
  106 + f = ExternalEnvironment.create(name: 'testname', identifier: 'Federation')
  107 + assert_not(f.valid?, 'should not be a valid external environment')
  108 + end
  109 +
  110 + should 'external environment should have unique name' do
  111 + f1 = ExternalEnvironment.create(name: 'Test', url: 'http://www.test.com',
  112 + identifier: 'Federation')
  113 + assert(f1.valid?, 'not a valid external environment on f1')
  114 +
  115 + f2 = ExternalEnvironment.create(name: f1.name, url: 'test.org',
  116 + identifier: 'Federation2')
  117 + assert_not(f2.valid?, 'f2 should not be a valid external environment')
  118 + end
  119 +
  120 + should 'validades presence of name on external environment' do
  121 + f = ExternalEnvironment.create(url: 'test.org', identifier: 'Federation')
  122 + assert_not(f.valid?, 'should not be a valid external environment')
  123 + end
  124 +
  125 + should 'external environment should have unique identifier' do
  126 + f1 = ExternalEnvironment.create(name: 'Test', url: 'http://www.test.com',
  127 + identifier: 'Federation')
  128 + assert(f1.valid?, 'not a valid external environment on f1')
  129 +
  130 + f2 = ExternalEnvironment.create(name: 'Test2', url: 'test.org',
  131 + identifier: f1.identifier)
  132 + assert_not(f2.valid?, 'f2 should not be a valid external environment')
  133 + end
  134 +
  135 + should 'validades presence of identifier on external environment' do
  136 + f = ExternalEnvironment.create(name: 'Test', url: 'test.org')
  137 + assert_not(f.valid?, 'should not be a valid external environment')
  138 + end
  139 +end
test/unit/federated_network_test.rb
@@ -1,139 +0,0 @@ @@ -1,139 +0,0 @@
1 -require_relative '../test_helper'  
2 -  
3 -class FederatedNetworkTest < ActiveSupport::TestCase  
4 - def setup  
5 - FederatedNetwork.destroy_all  
6 - end  
7 -  
8 - should 'try to process a wrong json without sites key' do  
9 - json = {  
10 - 'name' => 'Blogoosfero',  
11 - 'url' => 'http://blogoosfero.cc/',  
12 - 'id' => 'blogoosfero',  
13 - 'screnshot' => 'http://directorncly.noosfero.org/sites/blogoosfero/screenshot.png',  
14 - 'thumbnail' => 'http://directory.noosfero.org/sites/blogoosfero/screenshot.thumb.png'  
15 - }  
16 - FederatedNetworkUpdater.stubs(:import_json).returns(json)  
17 - FederatedNetworkUpdater::process_data  
18 -  
19 - assert_equal FederatedNetwork.find_by_url('http://blogoosfero.cc'), nil  
20 - end  
21 -  
22 - should 'try to process a wrong json with sites but without url' do  
23 - json = {  
24 - 'sites' => [  
25 - { 'name' => 'Blogoosfero',  
26 - 'id' => 'blogoosfero',  
27 - 'screnshot' => 'http://directorncly.noosfero.org/sites/blogoosfero/screenshot.png',  
28 - 'thumbnail' => 'http://directory.noosfero.org/sites/blogoosfero/screenshot.thumb.png'  
29 - }  
30 - ]  
31 - }  
32 - FederatedNetworkUpdater.stubs(:import_json).returns(json)  
33 - FederatedNetworkUpdater::process_data  
34 -  
35 - assert_equal FederatedNetwork.find_by_name('Blogoosfero'), nil  
36 - end  
37 -  
38 - should 'try to process a wrong json with sites but without name' do  
39 - json = {  
40 - 'sites' => [  
41 - { 'url' => 'test.org',  
42 - 'id' => 'blogoosfero',  
43 - 'screnshot' => 'http://directorncly.noosfero.org/sites/blogoosfero/screenshot.png',  
44 - 'thumbnail' => 'http://directory.noosfero.org/sites/blogoosfero/screenshot.thumb.png'  
45 - }  
46 - ]  
47 - }  
48 - FederatedNetworkUpdater.stubs(:import_json).returns(json)  
49 - FederatedNetworkUpdater::process_data  
50 -  
51 - assert_equal FederatedNetwork.find_by_url('test.org'), nil  
52 - end  
53 -  
54 - should 'try to process a wrong json with sites but without identifier' do  
55 - json = {  
56 - 'sites' => [  
57 - { 'name' => 'Blogoosfero',  
58 - 'url' => 'test.org',  
59 - 'screnshot' => 'http://directorncly.noosfero.org/sites/blogoosfero/screenshot.png',  
60 - 'thumbnail' => 'http://directory.noosfero.org/sites/blogoosfero/screenshot.thumb.png'  
61 - }  
62 - ]  
63 - }  
64 - FederatedNetworkUpdater.stubs(:import_json).returns(json)  
65 - FederatedNetworkUpdater::process_data  
66 -  
67 - assert_equal FederatedNetwork.find_by_url('test.org'), nil  
68 - end  
69 -  
70 - should 'try to update site info' do  
71 - FederatedNetwork.create(name: 'Test', url: 'test.org')  
72 - json = {  
73 - 'sites' => [  
74 - { 'name' => 'Test',  
75 - 'url' => 'test.org',  
76 - 'id' => 'blogoosfero',  
77 - 'screnshot' => 'http://directorncly.noosfero.org/sites/blogoosfero/screenshot.png',  
78 - 'thumbnail' => 'http://directory.noosfero.org/sites/blogoosfero/screenshot.thumb.png'  
79 - }  
80 - ]  
81 - }  
82 -  
83 - FederatedNetworkUpdater.stubs(:import_json).returns(json)  
84 -  
85 - FederatedNetworkUpdater::process_data  
86 -  
87 - federated_network = FederatedNetwork.find_by_url('test.org')  
88 -  
89 - assert_equal federated_network.name, 'Test'  
90 - assert_equal federated_network.identifier, 'blogoosfero'  
91 - assert_equal federated_network.screenshot, 'http://directorncly.noosfero.org/sites/blogoosfero/screenshot.png'  
92 - assert_equal federated_network.thumbnail, 'http://directory.noosfero.org/sites/blogoosfero/screenshot.thumb.png'  
93 - end  
94 -  
95 - should 'federated network should have unique url' do  
96 - f1 = FederatedNetwork.create(name: 'Test2', url: 'http://www.test.com',  
97 - identifier: 'Federation')  
98 - assert(f1.valid?, 'not a valid federated network on f1')  
99 -  
100 - f2 = FederatedNetwork.create(name: 'Test3', url: f1.url,  
101 - identifier: 'Federation')  
102 - assert_not(f2.valid?, 'f2 should not be a valid federated network')  
103 - end  
104 -  
105 - should 'validades presence of url on federated network' do  
106 - f = FederatedNetwork.create(name: 'testname', identifier: 'Federation')  
107 - assert_not(f.valid?, 'should not be a valid federated network')  
108 - end  
109 -  
110 - should 'federated network should have unique name' do  
111 - f1 = FederatedNetwork.create(name: 'Test', url: 'http://www.test.com',  
112 - identifier: 'Federation')  
113 - assert(f1.valid?, 'not a valid federated network on f1')  
114 -  
115 - f2 = FederatedNetwork.create(name: f1.name, url: 'test.org',  
116 - identifier: 'Federation2')  
117 - assert_not(f2.valid?, 'f2 should not be a valid federated network')  
118 - end  
119 -  
120 - should 'validades presence of name on federated network' do  
121 - f = FederatedNetwork.create(url: 'test.org', identifier: 'Federation')  
122 - assert_not(f.valid?, 'should not be a valid federated network')  
123 - end  
124 -  
125 - should 'federated network should have unique identifier' do  
126 - f1 = FederatedNetwork.create(name: 'Test', url: 'http://www.test.com',  
127 - identifier: 'Federation')  
128 - assert(f1.valid?, 'not a valid federated network on f1')  
129 -  
130 - f2 = FederatedNetwork.create(name: 'Test2', url: 'test.org',  
131 - identifier: f1.identifier)  
132 - assert_not(f2.valid?, 'f2 should not be a valid federated network')  
133 - end  
134 -  
135 - should 'validades presence of identifier on federated network' do  
136 - f = FederatedNetwork.create(name: 'Test', url: 'test.org')  
137 - assert_not(f.valid?, 'should not be a valid federated network')  
138 - end  
139 -end