X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/2e104941dbf1e4bf92e0632cadeb946be0595d67..0561bd0c3c07257fd58ded6c7cfa5feeae97af57:/services/api/test/functional/arvados/v1/filters_test.rb diff --git a/services/api/test/functional/arvados/v1/filters_test.rb b/services/api/test/functional/arvados/v1/filters_test.rb index 2b1b675323..2c7427cba8 100644 --- a/services/api/test/functional/arvados/v1/filters_test.rb +++ b/services/api/test/functional/arvados/v1/filters_test.rb @@ -1,3 +1,7 @@ +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 + require 'test_helper' class Arvados::V1::FiltersTest < ActionController::TestCase @@ -95,4 +99,56 @@ class Arvados::V1::FiltersTest < ActionController::TestCase end end end + + test "full text search with count='none'" do + @controller = Arvados::V1::GroupsController.new + authorize_with :admin + + get :contents, { + format: :json, + count: 'none', + limit: 1000, + filters: [['any', '@@', Rails.configuration.uuid_prefix]], + } + + assert_response :success + + all_objects = Hash.new(0) + json_response['items'].map{|o| o['kind']}.each{|t| all_objects[t] += 1} + + assert_equal true, all_objects['arvados#group']>0 + assert_equal true, all_objects['arvados#job']>0 + assert_equal true, all_objects['arvados#pipelineInstance']>0 + assert_equal true, all_objects['arvados#pipelineTemplate']>0 + + # Perform test again mimicking a second page request with: + # last_object_class = PipelineInstance + # and hence groups and jobs should not be included in the response + # offset = 5, which means first 5 pipeline instances were already received in page 1 + # and hence the remaining pipeline instances and all other object types should be included in the response + + @test_counter = 0 # Reset executed action counter + + @controller = Arvados::V1::GroupsController.new + + get :contents, { + format: :json, + count: 'none', + limit: 1000, + offset: '5', + last_object_class: 'PipelineInstance', + filters: [['any', '@@', Rails.configuration.uuid_prefix]], + } + + assert_response :success + + second_page = Hash.new(0) + json_response['items'].map{|o| o['kind']}.each{|t| second_page[t] += 1} + + assert_equal false, second_page.include?('arvados#group') + assert_equal false, second_page.include?('arvados#job') + assert_equal true, second_page['arvados#pipelineInstance']>0 + assert_equal all_objects['arvados#pipelineInstance'], second_page['arvados#pipelineInstance']+5 + assert_equal true, second_page['arvados#pipelineTemplate']>0 + end end