iqvoc 4.13.0 → 4.14.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -1
- data/Gemfile +13 -16
- data/Gemfile.lock +415 -326
- data/README.md +7 -6
- data/app/aides/inline_data_helper.rb +3 -3
- data/app/aides/skos_exporter.rb +1 -1
- data/app/assets/javascripts/framework.js +3 -3
- data/app/assets/javascripts/iqvoc/hover_menues.js +14 -0
- data/app/assets/javascripts/iqvoc/iqvoc.js +46 -61
- data/app/assets/javascripts/iqvoc/manifest.js +2 -1
- data/app/assets/javascripts/iqvoc/treeview.js +2 -1
- data/app/assets/stylesheets/iqvoc/_manifest.scss +1 -0
- data/app/assets/stylesheets/iqvoc/_search_results.scss +14 -0
- data/app/assets/stylesheets/iqvoc/components/_entity_select.scss +5 -8
- data/app/assets/stylesheets/iqvoc/components/_simplete.scss +2 -1
- data/app/assets/stylesheets/iqvoc/components/_treeview.scss +1 -0
- data/app/assets/stylesheets/iqvoc/hacks/_hacks.scss +1 -1
- data/app/controllers/collections/versions_controller.rb +13 -48
- data/app/controllers/collections_controller.rb +16 -9
- data/app/controllers/concepts/alphabetical_controller.rb +2 -2
- data/app/controllers/concepts/hierarchical_controller.rb +9 -13
- data/app/controllers/concepts/scheme_controller.rb +2 -1
- data/app/controllers/concepts/versions_controller.rb +14 -49
- data/app/controllers/concepts_controller.rb +28 -18
- data/app/controllers/concepts_movement_controller.rb +1 -1
- data/app/controllers/dashboard_controller.rb +5 -5
- data/app/controllers/hierarchy_controller.rb +1 -1
- data/app/controllers/imports_controller.rb +9 -6
- data/app/controllers/reverse_matches_controller.rb +2 -4
- data/app/controllers/search_results_controller.rb +16 -19
- data/app/controllers/triplestore_sync_controller.rb +2 -2
- data/app/controllers/users_controller.rb +1 -1
- data/app/helpers/application_helper.rb +6 -11
- data/app/helpers/concepts_helper.rb +3 -3
- data/app/helpers/link_helper.rb +10 -6
- data/app/helpers/navigation_helper.rb +24 -13
- data/app/helpers/rdf_helper.rb +9 -5
- data/app/jobs/reverse_match_job.rb +8 -4
- data/app/models/ability.rb +7 -7
- data/app/models/abstract_user.rb +1 -1
- data/app/models/collection/base.rb +17 -8
- data/app/models/concept/base.rb +25 -6
- data/app/models/concept/relation/base.rb +1 -1
- data/app/models/concept/relation/reverse_relation_extension.rb +9 -5
- data/app/models/concept/skos/base.rb +0 -10
- data/app/models/concept/validations.rb +6 -4
- data/app/models/concerns/search_extension.rb +0 -17
- data/app/models/concerns/versioning.rb +2 -32
- data/app/models/dataset/adaptors/iqvoc/alphabetical_search_adaptor.rb +2 -2
- data/app/models/dataset/adaptors/iqvoc/http_adaptor.rb +3 -3
- data/app/models/dataset/adaptors/iqvoc/label_adaptor.rb +1 -1
- data/app/models/dataset/adaptors/iqvoc/search_adaptor.rb +3 -3
- data/app/models/export.rb +1 -1
- data/app/models/label/base.rb +5 -5
- data/app/models/labeling/skos/base.rb +14 -10
- data/app/models/note/base.rb +1 -1
- data/app/models/user.rb +2 -0
- data/app/models/user_session.rb +0 -3
- data/app/services/rdf_sync_service.rb +3 -3
- data/app/uploaders/rdf_uploader.rb +1 -1
- data/app/views/collections/_data.html.erb +2 -2
- data/app/views/collections/show_unpublished.html.erb +3 -11
- data/app/views/concepts/alphabetical/_search_result.html.erb +3 -1
- data/app/views/concepts/hierarchical/_treeview.html.erb +4 -1
- data/app/views/concepts/notifications/_referenced_concepts.html.erb +0 -1
- data/app/views/concepts/scheme/show.html.erb +1 -3
- data/app/views/concepts/show_published.html.erb +2 -0
- data/app/views/concepts/show_unpublished.html.erb +5 -11
- data/app/views/dashboard/_table.html.erb +0 -8
- data/app/views/errors/server_error.html.erb +1 -2
- data/app/views/pages/version.html.erb +1 -1
- data/app/views/partials/collection/_member.html.erb +1 -1
- data/app/views/partials/concept/_edit_link_base.html.erb +2 -2
- data/app/views/partials/concept/relation/_base.html.erb +4 -4
- data/app/views/partials/concept/relation/_edit_base.html.erb +13 -10
- data/app/views/partials/concept/relation/skos/_narrower.html.erb +1 -1
- data/app/views/partials/concept/relation/skos/broader/_mono.html.erb +2 -2
- data/app/views/partials/concept/relation/skos/broader/_poly.html.erb +2 -2
- data/app/views/partials/labeling/skos/_base.html.erb +1 -1
- data/app/views/partials/labeling/skos/_edit_base.html.erb +2 -1
- data/app/views/partials/labeling/skos/_search_result.html.erb +3 -0
- data/app/views/partials/match/_panel.html.erb +2 -2
- data/app/views/partials/notation/_base.html.erb +1 -1
- data/app/views/search_results/_detailed_search.html.erb +27 -0
- data/app/views/search_results/_form.html.erb +21 -9
- data/app/views/search_results/index.html.erb +4 -4
- data/app/views/search_results/sections/_change_note.html.erb +28 -25
- data/app/views/search_results/sections/_collection.html.erb +5 -5
- data/app/views/search_results/sections/_datasets.html.erb +8 -20
- data/app/views/search_results/sections/_klass.html.erb +7 -9
- data/app/views/search_results/sections/_languages.html.erb +4 -14
- data/app/views/search_results/sections/_mode.html.erb +8 -10
- data/app/views/search_results/sections/_options.html.erb +8 -0
- data/app/views/search_results/sections/_terms.html.erb +13 -10
- data/app/views/search_results/sections/_type.html.erb +13 -13
- data/config/application.rb +15 -10
- data/config/boot.rb +3 -3
- data/config/cable.yml +1 -1
- data/config/database.yml +17 -16
- data/config/database.yml.postgresql +1 -1
- data/config/engine.rb +1 -1
- data/config/environment.rb +1 -1
- data/config/initializers/active_record.rb +2 -0
- data/config/initializers/backtrace_silencers.rb +4 -3
- data/config/initializers/content_security_policy.rb +21 -21
- data/config/initializers/filter_parameter_logging.rb +6 -2
- data/config/initializers/inflections.rb +4 -4
- data/config/initializers/iqvoc.rb +1 -0
- data/config/initializers/permissions_policy.rb +11 -0
- data/config/initializers/wrap_parameters.rb +3 -3
- data/config/initializers/zeitwerk.rb +6 -0
- data/config/locales/activerecord.de.yml +2 -2
- data/config/locales/de.yml +18 -19
- data/config/locales/en.yml +16 -17
- data/config/locales/pt.yml +0 -7
- data/config/puma.rb +10 -4
- data/config/routes.rb +0 -4
- data/db/migrate/20220107114201_add_fk_constraint_to_active_storage_attachments_for_blob_id.active_storage.rb +10 -0
- data/db/migrate/20231012135837_remove_locked_by.rb +6 -0
- data/db/schema.rb +36 -39
- data/iqvoc.gemspec +14 -13
- data/lib/iqvoc/configuration/concept.rb +2 -0
- data/lib/iqvoc/configuration/core.rb +13 -2
- data/lib/iqvoc/configuration/instance_configuration.rb +3 -3
- data/lib/iqvoc/environments/development.rb +23 -9
- data/lib/iqvoc/environments/production.rb +21 -19
- data/lib/iqvoc/environments/test.rb +15 -8
- data/lib/iqvoc/version.rb +1 -1
- data/lib/tasks/sync.rake +1 -1
- data/test/authentication.rb +1 -1
- data/test/controllers/concepts_movement_controller_test.rb +0 -2
- data/test/controllers/hierarchy_test.rb +4 -4
- data/test/controllers/reverse_match_test.rb +1 -1
- data/test/integration/client_edit_concept_test.rb +1 -1
- data/test/integration/collection_browsing_test.rb +45 -0
- data/test/integration/collection_circularity_test.rb +3 -3
- data/test/integration/concept_collection_assignment_test.rb +7 -7
- data/test/integration/create_concept_test.rb +15 -0
- data/test/integration/reverse_match_job_test.rb +39 -7
- data/test/integration/search_test.rb +12 -12
- data/test/integration/version_page_test.rb +26 -0
- data/test/integration_test_helper.rb +2 -2
- data/test/models/concept_test.rb +37 -0
- data/test/models/deep_cloning_test.rb +9 -7
- data/test/models/rdf_sync_test.rb +3 -3
- data/test/models/zeitwerk_compliance_test.rb +7 -0
- data/test/test_helper.rb +3 -0
- metadata +69 -222
- data/app/views/search_results/sections/_note.html.erb +0 -6
- data/config/initializers/new_framework_defaults_5_1.rb +0 -14
- data/config/initializers/sqlite3_booleans.rb +0 -1
- data/public/422.html +0 -58
- data/public/assets/fonts/FiraMono-Regular-0b6138c5b386dc9125473fd851926f29.ttf +0 -0
- data/public/assets/fonts/FiraMono-Regular-690950e8d89c92cba41eeeb13f1de93e.woff +0 -0
- data/public/assets/fonts/FiraMono-Regular-98f97ed2dbf9d94d4fa5df048434b88d.eot +0 -0
- data/public/assets/fonts/FiraMono-Regular.eot +0 -0
- data/public/assets/fonts/FiraMono-Regular.ttf +0 -0
- data/public/assets/fonts/FiraMono-Regular.woff +0 -0
- data/public/assets/fonts/FiraSans-Bold-0de5f536bd0dc370449c0c67a49a6fe7.eot +0 -0
- data/public/assets/fonts/FiraSans-Bold-25037ef8d155e38b5df0c242a4c6cf2d.ttf +0 -0
- data/public/assets/fonts/FiraSans-Bold-494219a9639084eb9528ff47f79fcda1.woff +0 -0
- data/public/assets/fonts/FiraSans-Bold.eot +0 -0
- data/public/assets/fonts/FiraSans-Bold.ttf +0 -0
- data/public/assets/fonts/FiraSans-Bold.woff +0 -0
- data/public/assets/fonts/FiraSans-BoldItalic-5b3b812df9e1cb2b1f34baad65a2bdfb.ttf +0 -0
- data/public/assets/fonts/FiraSans-BoldItalic-90b8087c48feff2e828f658c49de5399.eot +0 -0
- data/public/assets/fonts/FiraSans-BoldItalic-b10e46158d50bf9b78968112acf87310.woff +0 -0
- data/public/assets/fonts/FiraSans-BoldItalic.eot +0 -0
- data/public/assets/fonts/FiraSans-BoldItalic.ttf +0 -0
- data/public/assets/fonts/FiraSans-BoldItalic.woff +0 -0
- data/public/assets/fonts/FiraSans-Book-659d252627051e785260ba445da8930f.woff +0 -0
- data/public/assets/fonts/FiraSans-Book-abc65ceb7bfaed729bff7a9d1367b7d4.eot +0 -0
- data/public/assets/fonts/FiraSans-Book-f0410501d5ecc5fe66bcdbc02b482c81.ttf +0 -0
- data/public/assets/fonts/FiraSans-Book.eot +0 -0
- data/public/assets/fonts/FiraSans-Book.ttf +0 -0
- data/public/assets/fonts/FiraSans-Book.woff +0 -0
- data/public/assets/fonts/FiraSans-ExtraLight-140f15ee97cb2099ff01c2b57dcd1a24.woff +0 -0
- data/public/assets/fonts/FiraSans-ExtraLight-28e5c2679df66406ebd117fbdded6753.eot +0 -0
- data/public/assets/fonts/FiraSans-ExtraLight-c15de70ebceffce178cbd2e82aa2c373.ttf +0 -0
- data/public/assets/fonts/FiraSans-ExtraLight.eot +0 -0
- data/public/assets/fonts/FiraSans-ExtraLight.ttf +0 -0
- data/public/assets/fonts/FiraSans-ExtraLight.woff +0 -0
- data/public/assets/fonts/FiraSans-Italic-ac4cb18fe14a7c90f29cdd2ce499ba59.woff +0 -0
- data/public/assets/fonts/FiraSans-Italic-bdea00fee0da5ca9176061e00c26a0da.eot +0 -0
- data/public/assets/fonts/FiraSans-Italic-e7e76a0ee170fd29b5d8100753eff569.ttf +0 -0
- data/public/assets/fonts/FiraSans-Italic.eot +0 -0
- data/public/assets/fonts/FiraSans-Italic.ttf +0 -0
- data/public/assets/fonts/FiraSans-Italic.woff +0 -0
- data/public/assets/fonts/FiraSans-Light-20adaf630b690c3e3184daaeae585f22.woff +0 -0
- data/public/assets/fonts/FiraSans-Light-3689e18b38d335ec0c43823adb6a2984.eot +0 -0
- data/public/assets/fonts/FiraSans-Light-55b04531e7a9ecdf58090d70b94b68e2.ttf +0 -0
- data/public/assets/fonts/FiraSans-Light-SC-098407a72b7ad46f7c2480d7ac11baf2.eot +0 -0
- data/public/assets/fonts/FiraSans-Light-SC-82763fe2ce9e6b897556c6f3c2aceb29.woff2 +0 -0
- data/public/assets/fonts/FiraSans-Light-SC-c73985985f0501c1845a5185b180fe6b.woff +0 -0
- data/public/assets/fonts/FiraSans-Light-SC-c9563f48d9cccd91f07e46801c27130f.ttf +0 -0
- data/public/assets/fonts/FiraSans-Light-SC.eot +0 -0
- data/public/assets/fonts/FiraSans-Light-SC.ttf +0 -0
- data/public/assets/fonts/FiraSans-Light-SC.woff +0 -0
- data/public/assets/fonts/FiraSans-Light-SC.woff2 +0 -0
- data/public/assets/fonts/FiraSans-Light.eot +0 -0
- data/public/assets/fonts/FiraSans-Light.ttf +0 -0
- data/public/assets/fonts/FiraSans-Light.woff +0 -0
- data/public/assets/fonts/FiraSans-Medium-082fab59048189168006bf2e914ba8b7.woff +0 -0
- data/public/assets/fonts/FiraSans-Medium-11706edfe8651c355b413bd24b4b5e10.eot +0 -0
- data/public/assets/fonts/FiraSans-Medium-3a0dacdeaba1b4c054f2d6cb5061965d.ttf +0 -0
- data/public/assets/fonts/FiraSans-Medium.eot +0 -0
- data/public/assets/fonts/FiraSans-Medium.ttf +0 -0
- data/public/assets/fonts/FiraSans-Medium.woff +0 -0
- data/public/assets/fonts/FiraSans-MediumItalic-6c8a2646d72641226527d574a8485b66.woff +0 -0
- data/public/assets/fonts/FiraSans-MediumItalic-b81e92794a6878b6c578d97b3ad5e6d7.ttf +0 -0
- data/public/assets/fonts/FiraSans-MediumItalic-eae7f4a3c4db9fe83025909ebfae5ad9.eot +0 -0
- data/public/assets/fonts/FiraSans-MediumItalic.eot +0 -0
- data/public/assets/fonts/FiraSans-MediumItalic.ttf +0 -0
- data/public/assets/fonts/FiraSans-MediumItalic.woff +0 -0
- data/public/assets/fonts/FiraSans-Regular-537188a19aeebdd74a92e114af7a02cb.ttf +0 -0
- data/public/assets/fonts/FiraSans-Regular-5d6a923de9be80ff5c2995cc03d93127.woff +0 -0
- data/public/assets/fonts/FiraSans-Regular-db689e5fea21ed4b7890811151968dc6.eot +0 -0
- data/public/assets/fonts/FiraSans-Regular.eot +0 -0
- data/public/assets/fonts/FiraSans-Regular.ttf +0 -0
- data/public/assets/fonts/FiraSans-Regular.woff +0 -0
- data/public/assets/fonts/FiraSans-UltraLight-3baefce4c224a0f0b26cdafe37dfa55d.eot +0 -0
- data/public/assets/fonts/FiraSans-UltraLight-e3909a352b87f853bb464836adfd602a.ttf +0 -0
- data/public/assets/fonts/FiraSans-UltraLight-f7289beeaa2353caf487553ee8b8ef03.woff +0 -0
- data/public/assets/fonts/FiraSans-UltraLight.eot +0 -0
- data/public/assets/fonts/FiraSans-UltraLight.ttf +0 -0
- data/public/assets/fonts/FiraSans-UltraLight.woff +0 -0
- data/public/assets/fonts/FontAwesome.otf +0 -0
- data/public/assets/fonts/fontawesome-webfont.eot +0 -0
- data/public/assets/fonts/fontawesome-webfont.svg +0 -2671
- data/public/assets/fonts/fontawesome-webfont.ttf +0 -0
- data/public/assets/fonts/fontawesome-webfont.woff +0 -0
- data/public/assets/fonts/fontawesome-webfont.woff2 +0 -0
- data/public/assets/images/ajax-loader-30d8e72bfdae694b1938658e1b087df0.gif +0 -0
- data/public/assets/images/ajax-loader.gif +0 -0
- data/public/assets/images/iqvoc_logo-165f17a46cf0a1bf9464db9d136fb843.svg +0 -41
- data/public/assets/images/iqvoc_logo.svg +0 -41
- data/public/assets/images/treeview-default-line-5e3c0e0c48f48c23c45aef7b72c739c0.gif +0 -0
- data/public/assets/images/treeview-default-line.gif +0 -0
- data/public/assets/javascripts/bootstrap.bundle.min-68b3c2f1c1f636f947fff1229d3ffbf5.js +0 -7
- data/public/assets/javascripts/bootstrap.bundle.min.js +0 -42
- data/public/assets/javascripts/jquery-17e41799d7fba03a313ca6b67d8a0954.js +0 -26
- data/public/assets/javascripts/jquery-d52dc3a9171f1fc89dd0f8e35e42c9d2.js +0 -26
- data/public/assets/javascripts/jquery.js +0 -10875
- data/public/assets/javascripts/manifest-7708201f7c24d5186cd075c3317f9b70.js +0 -7311
- data/public/assets/javascripts/manifest-89894d9f630fa57378a0c28e2a3d9ea9.js +0 -7325
- data/public/assets/javascripts/manifest.js +0 -5660
- data/public/assets/manifest.json +0 -1
- data/public/assets/stylesheets/manifest-893c7de3dee9ed1295bc1b5b4c1f0c34.css +0 -13
- data/public/assets/stylesheets/manifest-94b7be92a9b1cfeafea4ea71af910324.css +0 -13
- data/public/assets/stylesheets/manifest-e576edf92efaaad86b15b565fa473d0b.css +0 -7
- data/public/assets/stylesheets/manifest.css +0 -14314
- data/public/export/12750.nt +0 -28
- data/public/export/17385303752427181100115432751692126521.nt +0 -28
- data/public/export/181196830007276319343907883650755121680.nt +0 -28
- data/public/export/194669028845730209313058462140064732442.nt +0 -28
- data/public/export/21988.nt +0 -28
- data/public/export/230655012044692637365356891394989635995.nt +0 -28
- data/public/export/233590502327750705645106563554497694497.nt +0 -28
- data/public/export/245884359537367641918690456207690070316.nt +0 -28
- data/public/export/250386066048669747259363837063223215204.nt +0 -28
- data/public/export/256041066575224861739818511470898486442.nt +0 -28
- data/public/export/287138383024694264939471429022965897163.nt +0 -28
- data/public/export/31892.nt +0 -28
- data/public/export/333774437366008328346740356666975078086.nt +0 -28
- data/public/export/34639390376251419382098415225771775708.nt +0 -28
- data/public/export/4098.nt +0 -28
- data/public/export/47070.nt +0 -28
- data/public/export/49947.nt +0 -28
- data/public/export/5793.nt +0 -28
- data/public/export/64089124325772410079516909502763866955.nt +0 -28
- data/public/export/64718.nt +0 -28
- data/public/export/71200590939430584664474292378126383577.nt +0 -28
- data/public/export/81965533953024918329855744567916239964.nt +0 -28
- data/public/favicon.ico +0 -0
- data/public/robots.txt +0 -5
- data/public/uploads/import/213b73161661ebbad4e5ee3f543ae617.nt +0 -259
- data/public/uploads/import/22ad4d7419b7914c7319c46a66839f77.nt +0 -259
- data/public/uploads/import/22b78e01b9b5876851578cf9a8373c07.nt +0 -259
- data/public/uploads/import/2ab75781f8141010699dd272f681b245.nt +0 -259
- data/public/uploads/import/4c7fe47a2c21a681fd8f0eb3af0ebf19.nt +0 -259
- data/public/uploads/import/5265d7cb194f017c592a68914ecf8d9f.nt +0 -259
- data/public/uploads/import/5cb5414a66e4ae5dbe05eb763c367bd1.nt +0 -259
- data/public/uploads/import/6b042e00c2e2abf9241d2ece3e67ed27.nt +0 -259
- data/public/uploads/import/749edd3918db157202b00f89418b87d1.nt +0 -259
- data/public/uploads/import/7aeb9d76b78ba67674caa53a96e1caa0.nt +0 -259
- data/public/uploads/import/7b7fc425b8926e586ca10d0f1385aa4e.nt +0 -259
- data/public/uploads/import/8319d34702375718b20e72a6af71c503.nt +0 -259
- data/public/uploads/import/9ec48f5aaece8d2a8770439e34199b19.nt +0 -259
- data/public/uploads/import/a22750632c35587057285920142c2db8.nt +0 -259
- data/public/uploads/import/a6d9eeb5e76ce0032614c8142a33c90b.nt +0 -259
- data/public/uploads/import/a7ec826e32e80d1fc61f5e89f7442199.nt +0 -259
- data/public/uploads/import/af2ac8cb84a194da9871ea701f915a25.nt +0 -259
- data/public/uploads/import/b50c67ef8cb51fa12812ac2601faaa75.nt +0 -259
- data/public/uploads/import/b66560ac9cc4aecd50f82d4fcec8bde4.nt +0 -259
- data/public/uploads/import/c1a12245a41d9105585fb48a0b5244ab.nt +0 -259
- data/public/uploads/import/c4b23750b9f72a7f93bcd979a9afded3.nt +0 -259
- data/public/uploads/import/d1edac76626a35a6e72a592c98e97b1a.nt +0 -259
- data/public/uploads/import/eca92dbeff4aec30e3072103bb5f565f.nt +0 -259
- data/public/uploads/import/f7996f8826062cd8dcfc8fac70e830b9.nt +0 -259
- data/public/uploads/tmp/1609926599-187261935008931-0002-5418/hobbies.nt +0 -259
- data/public/uploads/tmp/1610450700-516890595554445-0002-2685/hobbies.nt +0 -259
- data/public/uploads/tmp/1610450844-597126333235543-0001-0714/hobbies.nt +0 -259
- data/public/uploads/tmp/1611054155-443031323634581-0001-9192/hobbies.nt +0 -259
- data/public/uploads/tmp/1611225485-767301590714814-0002-6904/hobbies.nt +0 -259
- data/public/uploads/tmp/1611225661-919900076415463-0002-0657/hobbies.nt +0 -259
- data/public/uploads/tmp/1611227389-36557097935032-0002-4613/hobbies.nt +0 -259
- data/public/uploads/tmp/1611585376-822293462114758-0001-9752/hobbies.nt +0 -259
- data/public/uploads/tmp/1611585431-703460698560673-0002-7522/hobbies.nt +0 -259
- data/public/uploads/tmp/1611586554-483369300394995-0002-0872/hobbies.nt +0 -259
- data/public/uploads/tmp/1619777137-609890333749067-0002-0264/hobbies.nt +0 -259
- data/public/uploads/tmp/1627291050-163284787457980-0001-2701/hobbies.nt +0 -259
- data/public/uploads/tmp/1627291589-952446089963663-0002-3171/hobbies.nt +0 -259
- data/public/uploads/tmp/1627291819-788250283200541-0002-2503/hobbies.nt +0 -259
- data/public/uploads/tmp/1627292534-103362378955855-0001-7089/hobbies.nt +0 -259
- data/public/uploads/tmp/1627293799-506613299368066-0002-1247/hobbies.nt +0 -259
- data/public/uploads/tmp/1627293863-868842521367397-0001-4656/hobbies.nt +0 -259
- data/public/uploads/tmp/1636993960-338364327912413-0002-8049/hobbies.nt +0 -259
- data/public/uploads/tmp/1641550181-434480636271400-0002-7928/hobbies.nt +0 -259
- data/public/uploads/tmp/1641550416-6444469569098-0002-2156/hobbies.nt +0 -259
- data/public/uploads/tmp/1641550691-848542458162760-0002-6815/hobbies.nt +0 -259
- data/public/uploads/tmp/1641550716-647719127292471-0002-9954/hobbies.nt +0 -259
- data/public/uploads/tmp/1641551058-78248622355227-0002-3663/hobbies.nt +0 -259
- data/public/uploads/tmp/1641551220-744894908610606-0001-3879/hobbies.nt +0 -259
@@ -0,0 +1,45 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
# Copyright 2011-2022 innoQ Deutschland GmbH
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
|
17
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), '../integration_test_helper')
|
18
|
+
|
19
|
+
class CollectionBrowsingTest < ActionDispatch::IntegrationTest
|
20
|
+
setup do
|
21
|
+
login('administrator')
|
22
|
+
|
23
|
+
@indoor = Iqvoc::Collection.base_class.new.publish.tap do |c|
|
24
|
+
RDFAPI.devour c, 'skos:prefLabel', '"Indoors"@en'
|
25
|
+
c.save
|
26
|
+
end
|
27
|
+
|
28
|
+
@outdoor = Iqvoc::Collection.base_class.new.publish.tap do |c|
|
29
|
+
RDFAPI.devour c, 'skos:prefLabel', '"Outdoors"@en'
|
30
|
+
c.save
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
test 'collection listing' do
|
35
|
+
visit collections_path(lang: 'en')
|
36
|
+
assert page.has_content?("#{@indoor.pref_label}")
|
37
|
+
assert page.has_content?("#{@outdoor.pref_label}")
|
38
|
+
end
|
39
|
+
|
40
|
+
test 'showing published collection' do
|
41
|
+
visit collection_path(@indoor, lang: 'en')
|
42
|
+
assert page.has_content?('Collections')
|
43
|
+
assert page.has_content?("#{@indoor.pref_label}")
|
44
|
+
end
|
45
|
+
end
|
@@ -20,11 +20,11 @@ class CollectionCircularityTest < ActionDispatch::IntegrationTest
|
|
20
20
|
setup do
|
21
21
|
login('administrator')
|
22
22
|
|
23
|
-
@coll1 = Iqvoc::Collection.base_class.new.
|
23
|
+
@coll1 = Iqvoc::Collection.base_class.new.tap { |c| c.save }
|
24
24
|
RDFAPI.devour @coll1, 'skos:prefLabel', '"coll1"@en'
|
25
|
-
@coll2 = Iqvoc::Collection.base_class.new.
|
25
|
+
@coll2 = Iqvoc::Collection.base_class.new.tap { |c| c.save }
|
26
26
|
RDFAPI.devour @coll2, 'skos:prefLabel', '"coll2"@en'
|
27
|
-
@coll3 = Iqvoc::Collection.base_class.new.
|
27
|
+
@coll3 = Iqvoc::Collection.base_class.new.tap { |c| c.save }
|
28
28
|
RDFAPI.devour @coll3, 'skos:prefLabel', '"coll3"@en'
|
29
29
|
|
30
30
|
@concept1 = Concept::SKOS::Base.new.publish.tap { |c| c.save }
|
@@ -43,7 +43,7 @@ class ConceptCollectionAssignmentTest < ActionDispatch::IntegrationTest
|
|
43
43
|
visit concept_path(concept, lang: 'en', format: 'html')
|
44
44
|
|
45
45
|
click_link_or_button 'Create new version'
|
46
|
-
assert page.has_content? 'Instance copy has been created
|
46
|
+
assert page.has_content? 'Instance copy has been created.'
|
47
47
|
collection_origins = [@sports_coll, @hobbies_coll].map(&:origin).join(', ')
|
48
48
|
fill_in 'concept_assigned_collection_origins', with: collection_origins
|
49
49
|
|
@@ -51,9 +51,9 @@ class ConceptCollectionAssignmentTest < ActionDispatch::IntegrationTest
|
|
51
51
|
click_link_or_button 'Save'
|
52
52
|
|
53
53
|
# there should be two collections
|
54
|
-
assert_equal 2, page.all('#
|
54
|
+
assert_equal 2, page.all('#collection_member_bases ul li a').size
|
55
55
|
|
56
|
-
within('#
|
56
|
+
within('#collection_member_bases') do
|
57
57
|
assert page.has_content? 'Sports'
|
58
58
|
assert page.has_content? 'Hobbies'
|
59
59
|
end
|
@@ -64,9 +64,9 @@ class ConceptCollectionAssignmentTest < ActionDispatch::IntegrationTest
|
|
64
64
|
click_link_or_button 'Save'
|
65
65
|
|
66
66
|
# there should be one collection left
|
67
|
-
assert_equal 1, page.all('#
|
67
|
+
assert_equal 1, page.all('#collection_member_bases ul li a').size
|
68
68
|
|
69
|
-
within('#
|
69
|
+
within('#collection_member_bases') do
|
70
70
|
assert page.has_content? 'Sports'
|
71
71
|
refute page.has_content? 'Hobbies'
|
72
72
|
end
|
@@ -77,9 +77,9 @@ class ConceptCollectionAssignmentTest < ActionDispatch::IntegrationTest
|
|
77
77
|
click_link_or_button 'Save'
|
78
78
|
|
79
79
|
# there should be no collections anymore
|
80
|
-
assert_equal 0, page.all('#
|
80
|
+
assert_equal 0, page.all('#collection_member_bases ul li a').size
|
81
81
|
|
82
|
-
within('#
|
82
|
+
within('#collection_member_bases') do
|
83
83
|
refute page.has_content?('Sports'), 'Sports should be removed'
|
84
84
|
refute page.has_content?('Hobbies'), 'Hobbies should be removed'
|
85
85
|
end
|
@@ -30,6 +30,21 @@ class CreateConceptTest < ActionDispatch::IntegrationTest
|
|
30
30
|
save_check_and_publish
|
31
31
|
end
|
32
32
|
|
33
|
+
test 'send to review with inconsistent concept' do
|
34
|
+
login('administrator')
|
35
|
+
visit dashboard_path(lang: 'en')
|
36
|
+
click_link_or_button 'New Concept'
|
37
|
+
|
38
|
+
# Create invalid preflabel
|
39
|
+
fill_in 'concept_labelings_by_text_labeling_skos_pref_labels_en', with: 'Foo,Foo'
|
40
|
+
click_link_or_button 'Save'
|
41
|
+
|
42
|
+
# Consistency check should run when sending the concept to review.
|
43
|
+
click_link_or_button 'Send to review'
|
44
|
+
assert page.has_content? 'Instance is inconsistent.'
|
45
|
+
assert page.has_content? 'There must be only one preferred Label per language.'
|
46
|
+
end
|
47
|
+
|
33
48
|
private
|
34
49
|
|
35
50
|
def save_check_and_publish
|
@@ -41,9 +41,13 @@ class ReverseMatchJobTest < ActiveSupport::TestCase
|
|
41
41
|
{ rel: 'remove_match', href: 'http://0.0.0.0:3000/airsoft/remove_match', method: 'patch' }
|
42
42
|
]}.to_json
|
43
43
|
|
44
|
-
stub_request(:get,
|
45
|
-
|
46
|
-
|
44
|
+
stub_request(:get, "http://try.iqvoc.com/").
|
45
|
+
with(
|
46
|
+
headers: {
|
47
|
+
'Accept'=>'application/json',
|
48
|
+
'User-Agent'=>"Faraday v#{Faraday::VERSION}"
|
49
|
+
}).
|
50
|
+
to_return(status: 200, body: body, headers: {})
|
47
51
|
|
48
52
|
@worker = Delayed::Worker.new
|
49
53
|
DatabaseCleaner.start
|
@@ -56,7 +60,12 @@ class ReverseMatchJobTest < ActiveSupport::TestCase
|
|
56
60
|
test 'successfull job' do
|
57
61
|
status, body = status_and_body(:mapping_added)
|
58
62
|
stub_request(:patch, 'http://0.0.0.0:3000/airsoft/add_match?match_class=match_skos_broadmatch&uri=http://try.iqvoc.com/airsoft')
|
59
|
-
.with(:
|
63
|
+
.with(headers: {
|
64
|
+
'Accept' => '*/*',
|
65
|
+
'Content-Type' => 'application/json',
|
66
|
+
'Referer' => 'http://try.iqvoc.com/',
|
67
|
+
'User-Agent'=>"Faraday v#{Faraday::VERSION}"
|
68
|
+
})
|
60
69
|
.to_return(status: status, body: body.to_json, headers: {})
|
61
70
|
|
62
71
|
job = @reverse_match_service.build_job(:add_match, @airsoft, 'http://try.iqvoc.com', 'Match::SKOS::BroadMatch')
|
@@ -70,7 +79,8 @@ class ReverseMatchJobTest < ActiveSupport::TestCase
|
|
70
79
|
|
71
80
|
test 'job timeout' do
|
72
81
|
status, body = status_and_body(:mapping_added)
|
73
|
-
stub_request(:patch, 'http://0.0.0.0:3000/airsoft/add_match?match_class=match_skos_broadmatch&uri=http://try.iqvoc.com/airsoft')
|
82
|
+
stub_request(:patch, 'http://0.0.0.0:3000/airsoft/add_match?match_class=match_skos_broadmatch&uri=http://try.iqvoc.com/airsoft')
|
83
|
+
.to_timeout
|
74
84
|
|
75
85
|
job = @reverse_match_service.build_job(:add_match, @airsoft, 'http://try.iqvoc.com', 'Match::SKOS::BroadMatch')
|
76
86
|
@reverse_match_service.add(job)
|
@@ -83,9 +93,26 @@ class ReverseMatchJobTest < ActiveSupport::TestCase
|
|
83
93
|
assert_equal 'timeout_error', job.error_message
|
84
94
|
end
|
85
95
|
|
96
|
+
test 'failed connection' do
|
97
|
+
status, body = status_and_body(:mapping_added)
|
98
|
+
stub_request(:patch, 'http://0.0.0.0:3000/airsoft/add_match?match_class=match_skos_broadmatch&uri=http://try.iqvoc.com/airsoft')
|
99
|
+
.to_raise(Errno::ECONNREFUSED)
|
100
|
+
|
101
|
+
job = @reverse_match_service.build_job(:add_match, @airsoft, 'http://try.iqvoc.com', 'Match::SKOS::BroadMatch')
|
102
|
+
@reverse_match_service.add(job)
|
103
|
+
|
104
|
+
job = Delayed::Job.last
|
105
|
+
@worker.run(job)
|
106
|
+
|
107
|
+
assert_equal 1, @airsoft.jobs.size
|
108
|
+
|
109
|
+
assert_equal 'connection_failed', job.error_message
|
110
|
+
end
|
111
|
+
|
86
112
|
test 'unknown resource' do
|
87
113
|
status, body = status_and_body(:mapping_added)
|
88
|
-
stub_request(:patch, 'http://0.0.0.0:3000/airsoft/add_match?match_class=match_skos_broadmatch&uri=http://try.iqvoc.com/airsoft')
|
114
|
+
stub_request(:patch, 'http://0.0.0.0:3000/airsoft/add_match?match_class=match_skos_broadmatch&uri=http://try.iqvoc.com/airsoft')
|
115
|
+
.to_return(status: 404)
|
89
116
|
|
90
117
|
job = @reverse_match_service.build_job(:add_match, @airsoft, 'http://try.iqvoc.com', 'Match::SKOS::BroadMatch')
|
91
118
|
@reverse_match_service.add(job)
|
@@ -101,7 +128,12 @@ class ReverseMatchJobTest < ActiveSupport::TestCase
|
|
101
128
|
test 'unknown match class' do
|
102
129
|
status, body = status_and_body(:unknown_match)
|
103
130
|
stub_request(:patch, 'http://0.0.0.0:3000/airsoft/add_match?match_class=match_skos_broadmatch&uri=http://try.iqvoc.com/airsoft')
|
104
|
-
.with(:
|
131
|
+
.with(headers: {
|
132
|
+
'Accept' => '*/*',
|
133
|
+
'Content-Type' => 'application/json',
|
134
|
+
'Referer' => 'http://try.iqvoc.com/',
|
135
|
+
'User-Agent'=>'Faraday v1.10.3'
|
136
|
+
})
|
105
137
|
.to_return(status: status, body: body.to_json, headers: {})
|
106
138
|
|
107
139
|
job = @reverse_match_service.build_job(:add_match, @airsoft, 'http://try.iqvoc.com', 'Match::SKOS::BroadMatch')
|
@@ -47,9 +47,9 @@ class SearchTest < ActionDispatch::IntegrationTest
|
|
47
47
|
visit search_path(lang: 'en', format: 'html')
|
48
48
|
|
49
49
|
[{
|
50
|
-
|
51
|
-
|
52
|
-
|
50
|
+
type: 'Labels', query: 'Forest', query_type: 'contain keyword',
|
51
|
+
amount: 1, result: 'Forest'
|
52
|
+
}].each { |q|
|
53
53
|
find('#t').select q[:type]
|
54
54
|
fill_in 'Search term(s)', with: q[:query]
|
55
55
|
find('#qt').select q[:query_type]
|
@@ -62,7 +62,7 @@ class SearchTest < ActionDispatch::IntegrationTest
|
|
62
62
|
click_button('Search')
|
63
63
|
|
64
64
|
assert page.has_css?('.search-result', count: q[:amount]),
|
65
|
-
|
65
|
+
"Page has #{page.all(:css, '.search-result').count} '.search-result' nodes. Should be #{q[:amount]}."
|
66
66
|
|
67
67
|
within('.search-result') do
|
68
68
|
assert page.has_content?(q[:result]), "Could not find '#{q[:result]}' within '.search-result'."
|
@@ -74,7 +74,7 @@ class SearchTest < ActionDispatch::IntegrationTest
|
|
74
74
|
visit search_path(lang: 'en', format: 'html')
|
75
75
|
|
76
76
|
find('#t').select 'Labels'
|
77
|
-
find('#qt').select '
|
77
|
+
find('#qt').select 'contain keyword'
|
78
78
|
fill_in 'Search term(s)', with: 'Alpha'
|
79
79
|
click_button('Search')
|
80
80
|
assert page.has_css?('.search-result', count: 1)
|
@@ -101,9 +101,9 @@ class SearchTest < ActionDispatch::IntegrationTest
|
|
101
101
|
with: 'Air'
|
102
102
|
click_button 'Save'
|
103
103
|
|
104
|
-
Iqvoc::Concept.base_class.third.
|
105
|
-
Iqvoc::Concept.base_class.fourth.
|
106
|
-
Note::Annotated::Base.where(predicate: "created").first.
|
104
|
+
Iqvoc::Concept.base_class.third.update(published_at: Date.today)
|
105
|
+
Iqvoc::Concept.base_class.fourth.update(published_at: Date.today)
|
106
|
+
Note::Annotated::Base.where(predicate: "created").first.update(value: (Date.today - 10.days).to_s)
|
107
107
|
|
108
108
|
visit search_path(lang: 'en', format: 'html')
|
109
109
|
find('#t').select 'Labels'
|
@@ -119,7 +119,7 @@ class SearchTest < ActionDispatch::IntegrationTest
|
|
119
119
|
visit search_path(lang: 'en', format: 'html')
|
120
120
|
|
121
121
|
find('#t').select 'Labels'
|
122
|
-
find('#qt').select '
|
122
|
+
find('#qt').select 'contain keyword'
|
123
123
|
fill_in 'Search term(s)', with: 'res'
|
124
124
|
find('#c').select @collection.to_s
|
125
125
|
|
@@ -160,7 +160,7 @@ class SearchTest < ActionDispatch::IntegrationTest
|
|
160
160
|
visit search_path(lang: 'en', format: 'html')
|
161
161
|
|
162
162
|
find('#t').select 'Notes'
|
163
|
-
find('#qt').select '
|
163
|
+
find('#qt').select 'contain keyword'
|
164
164
|
fill_in 'Search term(s)', with: 'ipsum'
|
165
165
|
find('#c').select @collection.to_s
|
166
166
|
|
@@ -179,7 +179,7 @@ class SearchTest < ActionDispatch::IntegrationTest
|
|
179
179
|
visit search_path(lang: 'en', format: 'html')
|
180
180
|
|
181
181
|
find('#t').select 'Labels'
|
182
|
-
find('#qt').select '
|
182
|
+
find('#qt').select 'exactly match'
|
183
183
|
fill_in 'Search term(s)', with: ''
|
184
184
|
find('#c').select @collection.to_s
|
185
185
|
|
@@ -208,7 +208,7 @@ class SearchTest < ActionDispatch::IntegrationTest
|
|
208
208
|
visit search_path(lang: 'en', format: 'html')
|
209
209
|
|
210
210
|
find('#t').select 'Labels'
|
211
|
-
find('#qt').select '
|
211
|
+
find('#qt').select 'contain keyword'
|
212
212
|
fill_in 'Search term(s)', with: 'sample_'
|
213
213
|
|
214
214
|
click_button('Search')
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# Copyright 2011-2023 innoQ Deutschland GmbH
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), '../integration_test_helper')
|
16
|
+
|
17
|
+
class VersionPageTest < ActionDispatch::IntegrationTest
|
18
|
+
|
19
|
+
test 'visit version page' do
|
20
|
+
visit version_path(lang: 'de')
|
21
|
+
|
22
|
+
assert page.body.include? 'iQvoc core version:'
|
23
|
+
assert page.body.include? Iqvoc::VERSION
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -16,12 +16,12 @@
|
|
16
16
|
require File.expand_path('test_helper', File.dirname(__FILE__))
|
17
17
|
require 'capybara/rails'
|
18
18
|
require 'capybara/dsl'
|
19
|
-
require 'capybara/
|
19
|
+
require 'capybara/cuprite'
|
20
20
|
require 'webmock'
|
21
21
|
require File.expand_path('authentication', File.dirname(__FILE__))
|
22
22
|
|
23
23
|
Capybara.server = :webrick
|
24
|
-
Capybara.javascript_driver = :
|
24
|
+
Capybara.javascript_driver = :cuprite
|
25
25
|
|
26
26
|
WebMock.allow_net_connect! # required for integration tests
|
27
27
|
|
data/test/models/concept_test.rb
CHANGED
@@ -249,4 +249,41 @@ class ConceptTest < ActiveSupport::TestCase
|
|
249
249
|
refute wolf_concept.publishable?
|
250
250
|
assert wolf_concept.errors.full_messages_for(:base).include? I18n.t('txt.models.concept.no_self_reference')
|
251
251
|
end
|
252
|
+
|
253
|
+
test 'expired concepts scopes' do
|
254
|
+
assert_equal 0, Iqvoc::Concept.base_class.not_expired.count
|
255
|
+
assert_equal 0, Iqvoc::Concept.base_class.expired.count
|
256
|
+
|
257
|
+
wolf_concept = Iqvoc::Concept.base_class.new(origin: 'wolf').publish.tap do |c|
|
258
|
+
RDFAPI.devour c, 'skos:prefLabel', '"Wolf"@en'
|
259
|
+
c.save
|
260
|
+
end
|
261
|
+
refute wolf_concept.expired?
|
262
|
+
|
263
|
+
assert_equal 1, Iqvoc::Concept.base_class.not_expired.count
|
264
|
+
assert_equal 0, Iqvoc::Concept.base_class.expired.count
|
265
|
+
|
266
|
+
# expired until tomorrow
|
267
|
+
wolf_concept.expired_at = Date.tomorrow
|
268
|
+
wolf_concept.save
|
269
|
+
refute wolf_concept.expired?
|
270
|
+
|
271
|
+
assert_equal 1, Iqvoc::Concept.base_class.not_expired.count
|
272
|
+
assert_equal 0, Iqvoc::Concept.base_class.expired.count
|
273
|
+
|
274
|
+
# expired from today
|
275
|
+
wolf_concept.expired_at = Date.today
|
276
|
+
wolf_concept.save
|
277
|
+
assert wolf_concept.expired?
|
278
|
+
|
279
|
+
assert_equal 0, Iqvoc::Concept.base_class.not_expired.count
|
280
|
+
assert_equal 1, Iqvoc::Concept.base_class.expired.count
|
281
|
+
|
282
|
+
wolf_concept.expired_at = Date.yesterday
|
283
|
+
wolf_concept.save
|
284
|
+
assert wolf_concept.expired?
|
285
|
+
|
286
|
+
assert_equal 0, Iqvoc::Concept.base_class.not_expired.count
|
287
|
+
assert_equal 1, Iqvoc::Concept.base_class.expired.count
|
288
|
+
end
|
252
289
|
end
|
@@ -60,14 +60,14 @@ class DeepCloningTest < ActiveSupport::TestCase
|
|
60
60
|
|
61
61
|
@root_collection = Iqvoc::Collection.base_class.new(origin: 'root_collection1').tap do |c|
|
62
62
|
RDFAPI.devour c, 'skos:prefLabel', '"Root Collection"@en'
|
63
|
-
RDFAPI.devour c, 'skos:member', @root_concept1
|
64
|
-
RDFAPI.devour c, 'skos:member', @root_concept2
|
65
|
-
RDFAPI.devour c, 'skos:member', @child_concept
|
66
|
-
RDFAPI.devour c, 'skos:member', @sub_collection
|
67
63
|
c.publish
|
68
64
|
c.save
|
69
65
|
end
|
70
66
|
|
67
|
+
@root_collection.concepts << @root_concept1
|
68
|
+
@root_collection.concepts << @root_concept2
|
69
|
+
@root_collection.concepts << @child_concept
|
70
|
+
@root_collection.subcollections << @sub_collection
|
71
71
|
end
|
72
72
|
|
73
73
|
def after_setup
|
@@ -78,14 +78,16 @@ class DeepCloningTest < ActiveSupport::TestCase
|
|
78
78
|
assert_equal @root_concept1, @child_concept.broader_relations.first.target
|
79
79
|
|
80
80
|
assert_equal 3, @root_collection.concepts.size
|
81
|
-
|
81
|
+
[@root_concept1, @root_concept2, @child_concept].each do |concept|
|
82
|
+
@root_collection.concepts.include? concept
|
83
|
+
end
|
82
84
|
|
83
85
|
assert_equal 1, @root_collection.subcollections.size
|
84
86
|
assert_equal @sub_collection, @root_collection.subcollections.first
|
85
87
|
end
|
86
88
|
|
87
89
|
test 'should deep clone concept' do
|
88
|
-
root_concept_dup = @root_concept1.branch
|
90
|
+
root_concept_dup = @root_concept1.branch
|
89
91
|
root_concept_dup.save
|
90
92
|
|
91
93
|
# test narrower
|
@@ -103,7 +105,7 @@ class DeepCloningTest < ActiveSupport::TestCase
|
|
103
105
|
end
|
104
106
|
|
105
107
|
test 'should deep clone collection' do
|
106
|
-
root_collection_dup = @root_collection.branch
|
108
|
+
root_collection_dup = @root_collection.branch
|
107
109
|
root_collection_dup.save
|
108
110
|
|
109
111
|
# test subcollections
|
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
require File.join(File.expand_path(File.dirname(__FILE__)), '../test_helper')
|
18
18
|
|
19
|
-
class
|
19
|
+
class RdfSyncTest < ActiveSupport::TestCase
|
20
20
|
setup do
|
21
21
|
@rdf = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'
|
22
22
|
@skos = 'http://www.w3.org/2004/02/skos/core#'
|
@@ -32,7 +32,7 @@ class RDFSyncTest < ActiveSupport::TestCase
|
|
32
32
|
end
|
33
33
|
@view_context = FakeViewContext.new
|
34
34
|
|
35
|
-
@sync =
|
35
|
+
@sync = RdfSyncService.new(@base_url, @target_host, username: @username,
|
36
36
|
view_context: @view_context)
|
37
37
|
|
38
38
|
@concepts = 1.upto(15).map do |i|
|
@@ -104,7 +104,7 @@ class RDFSyncTest < ActiveSupport::TestCase
|
|
104
104
|
concept_count = concepts.count
|
105
105
|
batch_count = 3
|
106
106
|
|
107
|
-
sync =
|
107
|
+
sync = RdfSyncService.new(@base_url, @target_host, username: @username,
|
108
108
|
batch_size: (concept_count / batch_count).ceil,
|
109
109
|
view_context: @view_context)
|
110
110
|
|