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 @@
  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   -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 15 :members_whitelist, :highlighted_news_amount,
16 16 :portal_news_amount, :date_format, :signup_intro,
17 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 20 has_many :users
21 21  
... ... @@ -24,8 +24,8 @@ class Environment &lt; ApplicationRecord
24 24 false
25 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 30 has_many :tasks, :dependent => :destroy, :as => 'target'
31 31 has_many :search_terms, :as => :context
... ...
app/models/environment_external_environment.rb 0 → 100644
... ... @@ -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   -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 @@
  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   -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 12 <tr><td><%= link_to _('Licenses'), :controller =>'licenses' %></td></tr>
13 13 <tr><td><%= link_to _('Trusted sites'), :controller =>'trusted_sites' %></td></tr>
14 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 16 </table>
17 17  
18 18 <h2><%= _('Profiles') %></h2>
... ...
app/views/external_environments/index.html.erb 0 → 100644
... ... @@ -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   -<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 26 end
27 27  
28 28 every 1.day do
29   - rake 'federated_network:update'
  29 + rake 'external_environment:update'
30 30 end
31 31  
32 32  
... ...
db/migrate/20160405175153_create_external_environment.rb 0 → 100644
... ... @@ -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   -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 @@
  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   -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
db/schema.rb
... ... @@ -370,9 +370,9 @@ ActiveRecord::Schema.define(version: 20160422163123) do
370 370 t.datetime "updated_at"
371 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 374 t.integer "environment_id"
375   - t.integer "federated_network_id"
  375 + t.integer "external_environment_id"
376 376 end
377 377  
378 378 create_table "environments", force: :cascade do |t|
... ... @@ -429,7 +429,7 @@ ActiveRecord::Schema.define(version: 20160422163123) do
429 429 add_index "favorite_enterprise_people", ["person_id", "enterprise_id"], name: "index_favorite_enterprise_people_on_person_id_and_enterprise_id", using: :btree
430 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 433 t.string "name"
434 434 t.string "url"
435 435 t.string "identifier"
... ...
features/external_environments.feature 0 → 100644
... ... @@ -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   -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 55 end
56 56 end
57 57  
58   -Given /^the following federated networks$/ do |table|
  58 +Given /^the following external environments$/ do |table|
59 59 environment = Environment.default
60 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 63 end
64 64 end
65 65  
... ...
lib/external_environment_updater.rb 0 → 100644
... ... @@ -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   -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 @@
  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   -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 52 @import 'admin-panel';
53 53 @import 'manage-fields';
54 54 @import 'environment-users';
55   -@import 'federation';
  55 +@import 'external-environment';
56 56  
57 57 @import 'content';
58 58 @import 'comments';
... ...
public/stylesheets/external-environment.scss 0 → 100644
... ... @@ -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   -.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 @@
  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   -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 @@
  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   -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