Project

General

Profile

Download (6.11 KB) Statistics
| Branch: | Tag: | Revision:
require "katello_test_helper"

module Katello
class Api::V2::PuppetModulesControllerTest < ActionController::TestCase
def models
@library = katello_environments(:library)
@repo = Repository.find(katello_repositories(:p_forge).id)
@puppet_module = katello_puppet_modules(:dhcp)
end

def permissions
@read_permission = :view_products
@create_permission = :create_products
@update_permission = :edit_products
@destroy_permission = :destroy_products
@sync_permission = :sync_products

@auth_permissions = [@read_permission, :view_content_views]
@unauth_permissions = [@create_permission, @update_permission, @destroy_permission, @sync_permission]
end

def setup
setup_controller_defaults_api
@request.env['HTTP_ACCEPT'] = 'application/json'
@request.env['CONTENT_TYPE'] = 'application/json'
models
permissions
end

def test_index_by_env
get :index, params: { :environment_id => @library.id }

assert_response :success
assert_template "katello/api/v2/puppet_modules/index"
end

test_attributes :pid => 'eafc7a71-d550-4983-9941-b87aa57b83e9'
def test_index_by_repo_empty_results
repo = katello_repositories(:dev_p_forge)
get :index, params: { :repository_id => repo.id }
assert_response :success
assert_template "katello/api/v2/puppet_modules/index"
results = JSON.parse(response.body)
assert_empty results['results']
end

test_attributes :pid => '5337b2be-e207-4580-8407-19b88cb40403'
def test_index_by_repo_single_result
repo = katello_repositories(:dev_p_forge)
repo_puppet_module = RepositoryPuppetModule.new(:repository => repo, :puppet_module => @puppet_module)
repo_puppet_module.save!
get :index, params: { :repository_id => repo.id }
results = JSON.parse(response.body)
puppet_modules = results['results']
assert_equal 1, puppet_modules.length
assert_equal @puppet_module.id, puppet_modules[0]['id']
assert_equal @puppet_module.name, puppet_modules[0]['name']
end

def test_index_by_repo
get :index, params: { :repository_id => @repo.id }

assert_response :success
assert_template "katello/api/v2/puppet_modules/index"
results = JSON.parse(response.body)
puppet_modules = results['results']
refute_empty puppet_modules
assert_equal %w[abrt dhcp foreman], puppet_modules.map { |pm| pm['name'] }.sort
end

def test_index_with_environment_id
environment = KTEnvironment.first

get :index, params: { :environment_id => environment.id }

assert_response :success
assert_template "katello/api/v2/puppet_modules/index"
end

test_attributes :pid => '3a59e2fc-5c95-405e-bf4a-f1fe78e73300'
def test_index_with_content_view_version_empty_results
get :index, params: { :content_view_version_id => katello_content_view_versions(:library_view_version_2) }

assert_response :success
results = JSON.parse(@response.body)
assert_empty results['results']
end

test_attributes :pid => 'cc358a91-8640-48e3-851d-383e55ba42c3'
def test_index_with_content_view_version_single_result
puppet_env = katello_content_view_puppet_environments(:dev_view_puppet_environment)
ContentViewPuppetEnvironment.stubs(:archived).returns([puppet_env])

get :index, params: { :content_view_version_id => puppet_env.content_view_version.id }

assert_response :success
results = JSON.parse(response.body)
assert_equal 1, results['results'].length
puppet_module = results['results'][0]
assert_equal puppet_module['id'], @puppet_module.id
assert_equal puppet_module['name'], @puppet_module.name
end

def test_index_with_content_view_version
dev_puppet_env = katello_content_view_puppet_environments(:dev_view_puppet_environment)
ContentViewPuppetEnvironment.stubs(:archived).returns([dev_puppet_env])

get :index, params: { :environment_id => dev_puppet_env.environment_id, :content_view_version_id => dev_puppet_env.content_view_version.id }

assert_response :success
results_puppet_module = JSON.parse(response.body)['results'].first

# the content view version in the dev puppet environment only has the 'dhcp' puppet module,
# which is the same as @puppet_module
assert_equal results_puppet_module['name'], @puppet_module.name
assert_equal results_puppet_module['author'], @puppet_module.author
assert_equal results_puppet_module['version'], @puppet_module.version
end

def test_index_protected
assert_protected_action(:index, @read_permission, @unauth_permissions) do
get :index, params: { :repository_id => @repo.id }
end
end

def test_show
Katello::Pulp::PuppetModule.any_instance.stubs(:backend_data).returns({})
get :show, params: { :repository_id => @repo.id, :id => @puppet_module.id }

assert_response :success
assert_template "katello/api/v2/puppet_modules/show"
end

def test_show_protected
assert_protected_action(:show, @read_permission, @unauth_permissions) do
get :show, params: { :repository_id => @repo.id, :id => @puppet_module.id }
end
end

def test_show_module_not_in_repo
get :show, params: { :repository_id => @repo.id, :id => "abc-123" }
assert_response 404
end

def test_show_module_not_found
get :show, params: { :repository_id => @repo.id, :id => "abc-123" }
assert_response 404
end

def test_compare
@lib_repo = katello_repositories(:rhel_6_x86_64)
@view_repo = katello_repositories(:rhel_6_x86_64_library_view_1)

get :compare, params: { :content_view_version_ids => [@lib_repo.content_view_version_id, @view_repo.content_view_version_id] }
assert_response :success
assert_template "katello/api/v2/puppet_modules/compare"

get :compare, params: { :content_view_version_ids => [@lib_repo.content_view_version_id, @view_repo.content_view_version_id], :repository_id => @lib_repo.id }
assert_response :success
assert_template "katello/api/v2/puppet_modules/compare"
end
end
end
(35-35/44)