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 @@ |
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 < 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 < 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 | ... | ... |
... | ... | @@ -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 @@ |
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> | ... | ... |
... | ... | @@ -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
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 @@ |
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" | ... | ... |
... | ... | @@ -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 | ... | ... |
... | ... | @@ -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/federated_network_update.rake
public/stylesheets/application.scss
... | ... | @@ -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 | -} |
... | ... | @@ -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 |
... | ... | @@ -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 |