X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=3rdparty%2Fmodules%2Fstdlib%2Fspec%2Ffunctions%2Fchop_spec.rb;h=be90981293ffd76d9541108c5ab10fdc70c5dca0;hb=30caaa85aed7015ca0d77216bff175eebd917eb7;hp=c8a19519a98d0c159f6ac6417b81d48abbb70b1a;hpb=ad88f67c13ae0f1a08936dad643f1e3509ab5f40;p=mirror%2Fdsa-puppet.git diff --git a/3rdparty/modules/stdlib/spec/functions/chop_spec.rb b/3rdparty/modules/stdlib/spec/functions/chop_spec.rb old mode 100755 new mode 100644 index c8a19519a..be9098129 --- a/3rdparty/modules/stdlib/spec/functions/chop_spec.rb +++ b/3rdparty/modules/stdlib/spec/functions/chop_spec.rb @@ -1,28 +1,27 @@ -#! /usr/bin/env ruby -S rspec require 'spec_helper' -describe "the chop function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } +describe 'chop', :if => Puppet::Util::Package.versioncmp(Puppet.version, '6.0.0') < 0 do + it { is_expected.not_to eq(nil) } + it { is_expected.to run.with_params.and_raise_error(Puppet::ParseError, %r{Wrong number of arguments}) } + it { is_expected.to run.with_params(1).and_raise_error(Puppet::ParseError, %r{Requires either an array or string}) } + it { + pending('Current implementation ignores parameters after the first.') + is_expected.to run.with_params('a', 'b').and_raise_error(Puppet::ParseError) + } + it { is_expected.to run.with_params('one').and_return('on') } + it { is_expected.to run.with_params("one\n").and_return('one') } + it { is_expected.to run.with_params("one\n\n").and_return("one\n") } + it { is_expected.to run.with_params(["one\n", 'two', "three\n"]).and_return(['one', 'tw', 'three']) } - it "should exist" do - expect(Puppet::Parser::Functions.function("chop")).to eq("function_chop") - end - - it "should raise a ParseError if there is less than 1 arguments" do - expect { scope.function_chop([]) }.to( raise_error(Puppet::ParseError)) - end - - it "should chop the end of a string" do - result = scope.function_chop(["asdf\n"]) - expect(result).to(eq("asdf")) - end + it { is_expected.to run.with_params(AlsoString.new('one')).and_return('on') } + it { is_expected.to run.with_params(AlsoString.new("one\n")).and_return('one') } + it { is_expected.to run.with_params(AlsoString.new("one\n\n")).and_return("one\n") } + it { is_expected.to run.with_params([AlsoString.new("one\n"), AlsoString.new('two'), "three\n"]).and_return(['one', 'tw', 'three']) } - it "should accept objects which extend String" do - class AlsoString < String - end + it { is_expected.to run.with_params([1, 2, 3]).and_return([1, 2, 3]) } - value = AlsoString.new("abc\n") - result = scope.function_chop([value]) - result.should(eq('abc')) + context 'with UTF8 and double byte characters' do + it { is_expected.to run.with_params("ůťƒ8\n\n").and_return("ůťƒ8\n") } + it { is_expected.to run.with_params("ネット\n\n").and_return("ネット\n") } end end