Skip to content

Commit

Permalink
add ontologies controller tests
Browse files Browse the repository at this point in the history
  • Loading branch information
syphax-bouazzouni committed Nov 7, 2023
1 parent 69b2a21 commit d65a4dc
Show file tree
Hide file tree
Showing 8 changed files with 248 additions and 17 deletions.
13 changes: 6 additions & 7 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,6 @@ GEM
ast (2.4.2)
autoprefixer-rails (10.4.15.0)
execjs (~> 2)
base64 (0.1.1)
bcrypt_pbkdf (1.1.0)
better_html (2.0.2)
actionview (>= 6.0)
Expand Down Expand Up @@ -345,7 +344,7 @@ GEM
public_suffix (5.0.3)
puma (5.6.7)
nio4r (~> 2.0)
racc (1.7.1)
racc (1.7.3)
rack (2.2.8)
rack-accept (0.4.5)
rack (>= 0.4)
Expand Down Expand Up @@ -399,7 +398,7 @@ GEM
recaptcha (5.9.0)
json
redcarpet (3.6.0)
regexp_parser (2.8.1)
regexp_parser (2.8.2)
reline (0.3.8)
io-console (~> 0.5)
rest-client (2.1.0)
Expand All @@ -426,8 +425,7 @@ GEM
rspec-mocks (~> 3.12)
rspec-support (~> 3.12)
rspec-support (3.12.1)
rubocop (1.56.3)
base64 (~> 0.1.1)
rubocop (1.57.2)
json (~> 2.3)
language_server-protocol (>= 3.17.0)
parallel (~> 1.10)
Expand All @@ -438,7 +436,7 @@ GEM
rubocop-ast (>= 1.28.1, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 3.0)
rubocop-ast (1.29.0)
rubocop-ast (1.30.0)
parser (>= 3.2.1.0)
ruby-progressbar (1.13.0)
ruby2_keywords (0.0.5)
Expand Down Expand Up @@ -536,6 +534,7 @@ GEM

PLATFORMS
x86_64-darwin-21
x86_64-darwin-23
x86_64-linux
x86_64-linux-musl

Expand Down Expand Up @@ -616,4 +615,4 @@ DEPENDENCIES
will_paginate (~> 3.0)

BUNDLED WITH
2.4.12
2.4.21
5 changes: 3 additions & 2 deletions app/helpers/application_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -622,8 +622,9 @@ def get_link_for_label_xl_ajax(label_xl, ont_acronym, cls_id, modal: true)
def ontology_viewer_page_name(ontology_name, concept_label, page)
ontology_name + " | " + main_language_label(concept_label) + " - #{page.capitalize}"
end


def help_path(anchor: nil)
"#{Rails.configuration.settings.links[:help]}##{anchor}"
end

def uri?(url)
url =~ /\A#{URI::DEFAULT_PARSER.make_regexp(%w[http https])}\z/
Expand Down
172 changes: 172 additions & 0 deletions config/bioportal_config_test.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
# frozen_string_literal: true

$SITE = 'Testportal'
$UI_HOSTNAME = 'localhost'
$UI_URL = "http://#{$UI_HOSTNAME}:3000"

$API_KEY = ENV['API_KEY']
$REST_URL = ENV['API_URL']
$BIOMIXER_URL = ENV['BIOMIXER_URL']
$ANNOTATOR_URL = $PROXY_URL = ENV['ANNOTATOR_URL']
$FAIRNESS_URL = ENV['ANNOTATOR_URL']

# config/initializers/omniauth_providers.rb
$OMNIAUTH_PROVIDERS = {
github: {
client_id: 'id',
client_secret: 'secret',
icon: 'icons/github.svg'
},
google: {
strategy: :google_oauth2,
client_id: 'id',
client_secret: 'secret',
icon: 'icons/google.svg'
},
orcid: {
client_id: 'YOUR_ORCID_CLIENT_ID',
client_secret: 'YOUR_ORCID_CLIENT_SECRET',
icon: 'icons/orcid.svg'
},
keycloak: {
strategy: :keycloak_openid,
client_id: 'YOUR_KEYCLOAK_CLIENT_ID',
client_secret: 'YOUR_KEYCLOAK_CLIENT_SECRET',
client_options: { site: 'KEYCLOAK_SITE', realm: 'KEYCLOAK_REALM' },
name: 'keycloak',
icon: 'icons/keycloak.svg'
}
}.freeze

$INTERPORTAL_HASH = {}

# If your BioPortal installation includes Fairness score set this to true
$FAIRNESS_DISABLED = false

# Pairing a name with an array of ontology virtual ids will allow you to filter ontologies based on a subdomain.
# If your main UI is hosted at example.org and you add custom.example.org pointing to the same Rails installation
# you could filter the ontologies visible at custom.example.org by adding this to the hash: "custom" => { :name => "Custom Slice", :ontologies => [1032, 1054, 1099] }
# Any number of slices can be added. Groups are added automatically using the group acronym as the subdomain.
$ENABLE_SLICES = true
$ONTOLOGY_SLICES = {}

# Cube metrics reporting
$ENABLE_CUBE = false

$NOT_DOWNLOADABLE = {}
# Enable client request caching
$CLIENT_REQUEST_CACHING = true

# If you don't use Airbrake you can have exceptions emailed to the $ERROR_EMAIL address by setting this to 'true'
$EMAIL_EXCEPTIONS = false

# Announcements mailman mailing list REQUEST address, EX: list-request@lists.example.org
# NOTE: You must use the REQUEST address for the mailing list. ONLY WORKS WITH MAILMAN LISTS.
$ANNOUNCE_LIST ||= 'appliance-users-request@localhost'

# Email addresses used for sending notifications (errors, feedback, support)
$SUPPORT_EMAIL ||= 'support@localhost'
$ADMIN_EMAIL ||= 'admin@localhost'
$ERROR_EMAIL ||= 'errors@localhost'

# Custom BioPortal logging
require 'log'
$REMOTE_LOGGING = false

##
# Custom Ontology Details
# Custom details can be added on a per ontology basis using a key/value pair as columns of the details table
#
# Example:
# $ADDITIONAL_ONTOLOGY_DETAILS = { 1000 => { "Additional Detail" => "Text to be shown in the right-hand column." } }
##
$ADDITIONAL_ONTOLOGY_DETAILS = {}

# Site notice appears on all pages and remains closed indefinitely. Stored below as a hash with a unique key and a
# EX: $SITE_NOTICE = { :unique_key => 'Put your message here (can include <a href="/link">html</a> if you use
$SITE_NOTICE = {}
################################
## AUTO-GENERATED DO NOT MODIFY
#################################

# Full string for site, EX: "NCBO BioPortal"
$ORG_SITE = $ORG.nil? || $ORG.empty? ? $SITE : "#{$ORG} #{$SITE}"

$HOME_PAGE_LOGOS = {
supported_by: [
{
img_src: 'logos/supports/numev.png',
url: 'http://www.lirmm.fr/numev',
target: '_blank'
},
{
img_src: 'logos/supports/anr.png',
url: 'https://anr.fr/en',
target: '_blank'
},
{
img_src: 'logos/supports/eu.png',
url: 'https://commission.europa.eu/research-and-innovation_en',
target: '_blank'
}
],
with_the_collaboration_of: [
{
img_src: 'logos/collaboration/d2kab.png',
url: 'http://d2kab.mystrikingly.com',
target: '_blank'
},
{
img_src: 'logos/collaboration/lirmm.png',
url: 'http://www.lirmm.fr',
target: '_blank'
},
{
img_src: 'logos/collaboration/inrae.png',
url: 'https://www.inrae.fr/enm',
target: '_blank'
},
{
img_src: 'logos/collaboration/stanford.png',
url: 'https://www.stanford.edu',
target: '_blank'
}
]
}

$FOOTER_LINKS = {
social: [
{ logo: 'social/people.svg', link: 'https://github.com/orgs/agroportal/people' },
{ logo: 'social/github.svg', link: 'https://github.com/agroportal' },
{ logo: 'social/twitter.svg', link: 'https://twitter.com/lagroportal' }
],
sections: {
products: {
ontoportal: 'https://ontoportal.org/',
release_notes: 'https://doc.jonquetlab.lirmm.fr/share/e6158eda-c109-4385-852c-51a42de9a412/doc/release-notes-btKjZk5tU2',
api: 'https://data.agroportal.lirmm.fr/',
sparql: 'https://sparql.agroportal.lirmm.fr/test/'
},
support: {
contact_us: 'https://agroportal.lirmm.fr/feedback',
wiki: 'https://www.bioontology.org/wiki/',
documentation: 'https://ontoportal.github.io/documentation/'
},
agreements: {
terms: '',
privacy_policy: '',
cite_us: '',
acknowledgments: ''
},
about: {
about_us: 'https://github.com/agroportal/project-management',
projects: 'https://d2kab.mystrikingly.com/',
team: 'https://github.com/orgs/agroportal/people'
}
}
}

$UI_THEME = :stageportal
if File.exist?('config/bioportal_config_development_testportal.lirmm.fr.rb')
require_relative 'bioportal_config_development_testportal.lirmm.fr' # local credentials
end
3 changes: 1 addition & 2 deletions config/database.yml.sample
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,9 @@
default: &default
adapter: mysql2
encoding: utf8mb4
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: root
password: bp_user
host: db
host: 127.0.0.1

development:
<<: *default
Expand Down
10 changes: 6 additions & 4 deletions config/environments/test.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
require "active_support/core_ext/integer/time"
# frozen_string_literal: true

require 'active_support/core_ext/integer/time'

# The test environment is used exclusively to run your application's
# test suite. You never need to work with it otherwise. Remember that
Expand All @@ -14,18 +16,18 @@
# Eager loading loads your whole application. When running a single test locally,
# this probably isn't necessary. It's a good idea to do in a continuous integration
# system, or in some way before deploying your code.
config.eager_load = ENV["CI"].present?
config.eager_load = ENV['CI'].present?

# Configure public file server for tests with Cache-Control for performance.
config.public_file_server.enabled = true
config.public_file_server.headers = {
"Cache-Control" => "public, max-age=#{1.hour.to_i}"
'Cache-Control' => "public, max-age=#{1.hour.to_i}"
}

# Show full error reports and disable caching.
config.consider_all_requests_local = true
config.action_controller.perform_caching = false
config.cache_store = :null_store
config.cache_store = ActiveSupport::Cache::MemCacheStore.new('localhost:11211', namespace: 'BioPortal')

# Raise exceptions instead of rendering exception templates.
config.action_dispatch.show_exceptions = false
Expand Down
35 changes: 35 additions & 0 deletions test/controllers/application_controller_test.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# frozen_string_literal: true

require 'test_helper'

class ApplicationControllerTest < ActionDispatch::IntegrationTest
test 'should show home page' do
get ''
assert_response :success
end

test 'should show projects page' do
get '/projects'
assert_response :success
end

test 'should show annotator page' do
get '/annotator'
assert_response :success
end

test 'should show recommender page' do
get '/recommender'
assert_response :success
end

test 'should show mapping page' do
get '/mappings'
assert_response :success
end

test 'should show feedback page' do
get '/feedback'
assert_response :success
end
end
6 changes: 4 additions & 2 deletions test/controllers/landscape_controller_test.rb
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
# frozen_string_literal: true

require 'test_helper'

class LandscapeControllerTest < ActionController::TestCase
test "should get index" do
test 'should get index' do
skip('take too much time')
get :index
assert_response :success
end

end
21 changes: 21 additions & 0 deletions test/controllers/ontologies_controller_test.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# frozen_string_literal: true

require 'test_helper'

class OntologiesControllerTest < ActionDispatch::IntegrationTest
ONTOLOGIES = LinkedData::Client::Models::Ontology.all(include: 'acronym')
PAGES = %w[summary classes properties notes mappings schemes collections widgets].freeze

test 'should return all the ontologies' do
get ontologies_path
assert_response :success
end

ONTOLOGIES.sample(5).flat_map { |ont| PAGES.map { |page| [ont, page] } }.each do |ont, page|
test "should get page #{page} of #{ont.acronym} ontology" do
path = "#{ontologies_path}/#{ont.acronym}?p=#{page}"
get path
assert_response :success, "GET #{path} returned #{response.status}"
end
end
end

0 comments on commit d65a4dc

Please sign in to comment.