diff --git a/app/validators/concerns/foreman_openscap/bookmark_controller_validator_extensions.rb b/app/validators/concerns/foreman_openscap/bookmark_controller_validator_extensions.rb index 47c8863e9..1ea3e0514 100644 --- a/app/validators/concerns/foreman_openscap/bookmark_controller_validator_extensions.rb +++ b/app/validators/concerns/foreman_openscap/bookmark_controller_validator_extensions.rb @@ -2,11 +2,10 @@ module ForemanOpenscap module BookmarkControllerValidatorExtensions module ClassMethods def valid_controllers_list - super + ActiveRecord::Base.connection - .tables - .map(&:to_s) - .select { |table| table.start_with? 'foreman_openscap_' } - .map { |table| table.sub('foreman_openscap_', '') } + controllers = super + controllers + controllers + .select { |controller| controller.start_with?('foreman_openscap_', 'foreman_openscap/') } + .map { |controller| controller.sub(%r{^foreman_openscap[/_]}, '') } end end diff --git a/test/unit/concerns/bookmark_controller_validator_extensions_test.rb b/test/unit/concerns/bookmark_controller_validator_extensions_test.rb new file mode 100644 index 000000000..c905bf926 --- /dev/null +++ b/test/unit/concerns/bookmark_controller_validator_extensions_test.rb @@ -0,0 +1,16 @@ +require 'test_plugin_helper' + +class BookmarkControllerValidatorExtensionsTest < ActiveSupport::TestCase + # All controllers including AutoCompleteSearch, except ComplianceDashboardController which is broken anyway + [ArfReportsController, ScapContentsController, + PoliciesController, TailoringFilesController].each do |controller_class| + test "#{controller_class.controller_name} should be a valid bookmark controller" do + controller = controller_class.controller_name + bookmark = FactoryBot.build_stubbed(:bookmark, :name => "#{controller} bookmark", + :controller => controller, + :query => 'search query', + :public => true) + assert bookmark.valid?, "#{controller} should be a valid bookmark controller, errors: #{bookmark.errors.full_messages}" + end + end +end