Commit bc10f895412f9622c48ce002b1f275da0a873c18
1 parent
b48ac63d
Exists in
oauth_external_login
and in
3 other branches
rename federated_network -> external_environment
Showing
30 changed files
with
348 additions
and
348 deletions
Show diff stats
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 < ApplicationRecord | @@ -15,7 +15,7 @@ class Environment < 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 < ApplicationRecord | @@ -24,8 +24,8 @@ class Environment < 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 |
@@ -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
@@ -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> |
@@ -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
db/migrate/20160405175153_create_external_environment.rb
0 → 100644
db/migrate/20160405175153_create_federated_network.rb
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 |
db/schema.rb
@@ -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" |
@@ -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 |
@@ -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/federated_network_update.rake
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'; |
@@ -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 | -} |
@@ -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 |
@@ -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 |