From 67dd216cf8bc2a444c55892f3c7f3cf190e9414f Mon Sep 17 00:00:00 2001 From: Lukas Audzevicius Date: Wed, 31 Aug 2022 12:01:09 +0100 Subject: [PATCH] Add tests for valid/invalid resource names Prior to this commit, ppa_spec.rb did not test the recently implemented validation for resource names. This commit aims to implement some test cases to make sure that valid resource names are allowed while invalid or malicious resource names do not work. --- spec/defines/ppa_spec.rb | 63 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/spec/defines/ppa_spec.rb b/spec/defines/ppa_spec.rb index c056b5b..8d0c4f9 100644 --- a/spec/defines/ppa_spec.rb +++ b/spec/defines/ppa_spec.rb @@ -43,6 +43,69 @@ describe 'apt::ppa' do } end + [ + 'ppa:foo/bar', + 'ppa:foo/bar1.0', + 'ppa:foo10/bar10', + 'ppa:foo-/bar_', + ].each do |value| + describe 'valid resource names' do + let :facts do + { + os: { + family: 'Debian', + name: 'Ubuntu', + release: { + major: '18', + full: '18.04', + }, + distro: { + codename: 'trusty', + id: 'Ubuntu', + }, + }, + } + end + + let(:title) { value } + + it { is_expected.not_to raise_error } + it { is_expected.to contain_exec("add-apt-repository-#{value}") } + end + end + + [ + 'ppa:foo!/bar', + 'ppa:foo/bar!', + 'ppa:foo1.0/bar', + 'ppa:foo/bar/foobar', + '|| ls -la ||', + '|| touch /tmp/foo.txt ||', + ].each do |value| + describe 'invalid resource names' do + let :facts do + { + os: { + family: 'Debian', + name: 'Ubuntu', + release: { + major: '18', + full: '18.04', + }, + distro: { + codename: 'trusty', + id: 'Ubuntu', + }, + }, + } + end + + let(:title) { value } + + it { is_expected.to raise_error(Puppet::PreformattedError, %r{Invalid PPA name: #{value}}) } + end + end + describe 'Ubuntu 15.10 sources.list filename' do let :facts do { -- 2.45.2