From 80590a9bfe2a8c0d288125d17cfb9f01c8563a7a Mon Sep 17 00:00:00 2001 From: Hunter Haugen Date: Mon, 28 Apr 2014 17:28:22 -0700 Subject: Add more specs --- spec/acceptance/pick_default_spec.rb | 53 +++++++++++++++++ spec/acceptance/range_spec.rb | 35 ++++++++++++ spec/acceptance/reject_spec.rb | 2 +- spec/acceptance/reverse_spec.rb | 22 ++++++++ spec/acceptance/rstrip_spec.rb | 33 +++++++++++ spec/acceptance/shuffle_spec.rb | 33 +++++++++++ spec/acceptance/size_spec.rb | 8 +-- spec/acceptance/sort_spec.rb | 4 +- spec/acceptance/squeeze_spec.rb | 46 +++++++++++++++ spec/acceptance/str2bool_spec.rb | 30 ++++++++++ spec/acceptance/str2saltedsha512_spec.rb | 21 +++++++ spec/acceptance/strftime_spec.rb | 21 +++++++ spec/acceptance/strip_spec.rb | 33 +++++++++++ spec/acceptance/suffix_spec.rb | 41 ++++++++++++++ spec/acceptance/swapcase_spec.rb | 21 +++++++ spec/acceptance/time_spec.rb | 35 ++++++++++++ spec/acceptance/to_bytes_spec.rb | 26 +++++++++ spec/acceptance/type_spec.rb | 36 ++++++++++++ spec/acceptance/union_spec.rb | 23 ++++++++ spec/acceptance/unique_spec.rb | 32 +++++++++++ spec/acceptance/upcase_spec.rb | 32 +++++++++++ spec/acceptance/uriescape_spec.rb | 22 ++++++++ spec/acceptance/validate_absolute_path_spec.rb | 30 ++++++++++ spec/acceptance/validate_augeas_spec.rb | 78 +++++++++++++------------- spec/acceptance/validate_ipv4_address_spec.rb | 30 ++++++++++ spec/acceptance/validate_ipv6_address_spec.rb | 30 ++++++++++ spec/acceptance/values_at_spec.rb | 3 +- 27 files changed, 733 insertions(+), 47 deletions(-) create mode 100644 spec/acceptance/pick_default_spec.rb create mode 100644 spec/acceptance/range_spec.rb create mode 100644 spec/acceptance/reverse_spec.rb create mode 100644 spec/acceptance/rstrip_spec.rb create mode 100644 spec/acceptance/shuffle_spec.rb create mode 100644 spec/acceptance/squeeze_spec.rb create mode 100644 spec/acceptance/str2bool_spec.rb create mode 100644 spec/acceptance/str2saltedsha512_spec.rb create mode 100644 spec/acceptance/strftime_spec.rb create mode 100644 spec/acceptance/strip_spec.rb create mode 100644 spec/acceptance/suffix_spec.rb create mode 100644 spec/acceptance/swapcase_spec.rb create mode 100644 spec/acceptance/time_spec.rb create mode 100644 spec/acceptance/to_bytes_spec.rb create mode 100644 spec/acceptance/type_spec.rb create mode 100644 spec/acceptance/union_spec.rb create mode 100644 spec/acceptance/unique_spec.rb create mode 100644 spec/acceptance/upcase_spec.rb create mode 100644 spec/acceptance/uriescape_spec.rb create mode 100644 spec/acceptance/validate_absolute_path_spec.rb create mode 100644 spec/acceptance/validate_ipv4_address_spec.rb create mode 100644 spec/acceptance/validate_ipv6_address_spec.rb (limited to 'spec/acceptance') diff --git a/spec/acceptance/pick_default_spec.rb b/spec/acceptance/pick_default_spec.rb new file mode 100644 index 0000000..e94a999 --- /dev/null +++ b/spec/acceptance/pick_default_spec.rb @@ -0,0 +1,53 @@ +require 'spec_helper_acceptance' + +describe 'pick_default function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do + describe 'success' do + it 'pick_defaults a default value' do + pp = <<-EOS + $a = undef + $o = pick_default($a, 'default') + notice(inline_template('picked is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + expect(r.stdout).to match(/picked is "default"/) + end + end + it 'pick_defaults with no value' do + pp = <<-EOS + $a = undef + $b = undef + $o = pick_default($a,$b) + notice(inline_template('picked is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + expect(r.stdout).to match(/picked is ""/) + end + end + it 'pick_defaults the first set value' do + pp = <<-EOS + $a = "something" + $b = "long" + $o = pick_default($a, $b, 'default') + notice(inline_template('picked is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + expect(r.stdout).to match(/picked is "something"/) + end + end + end + describe 'failure' do + it 'raises error with no values' do + pp = <<-EOS + $o = pick_default() + notice(inline_template('picked is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :expect_failures => true) do |r| + expect(r.stderr).to match(/Must receive at least one argument/) + end + end + end +end diff --git a/spec/acceptance/range_spec.rb b/spec/acceptance/range_spec.rb new file mode 100644 index 0000000..0387e4e --- /dev/null +++ b/spec/acceptance/range_spec.rb @@ -0,0 +1,35 @@ +require 'spec_helper_acceptance' + +describe 'range function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do + describe 'success' do + it 'ranges letters' do + pp = <<-EOS + $o = range('a','d') + notice(inline_template('range is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + expect(r.stdout).to match(/range is \["a", "b", "c", "d"\]/) + end + end + it 'ranges letters with a step' do + pp = <<-EOS + $o = range('a','d', '2') + notice(inline_template('range is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + expect(r.stdout).to match(/range is \["a", "c"\]/) + end + end + it 'ranges letters with a negative step' + it 'ranges numbers' + it 'ranges numbers with a step' + it 'ranges numbers with a negative step' + it 'ranges numeric strings' + it 'ranges zero padded numbers' + end + describe 'failure' do + it 'fails with no arguments' + end +end diff --git a/spec/acceptance/reject_spec.rb b/spec/acceptance/reject_spec.rb index 5333f36..52b8755 100644 --- a/spec/acceptance/reject_spec.rb +++ b/spec/acceptance/reject_spec.rb @@ -29,7 +29,7 @@ describe 'reject function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('oper EOS apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/reject is \["aaa", "bbb", "ccc", "aaaddd"\]/) + expect(r.stdout).to match(/reject is \[\]/) end end end diff --git a/spec/acceptance/reverse_spec.rb b/spec/acceptance/reverse_spec.rb new file mode 100644 index 0000000..29bdc25 --- /dev/null +++ b/spec/acceptance/reverse_spec.rb @@ -0,0 +1,22 @@ +require 'spec_helper_acceptance' + +describe 'reverse function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do + describe 'success' do + it 'reverses strings' do + pp = <<-EOS + $a = "the public art galleries" + # Anagram: Large picture halls, I bet + $o = reverse($a) + notice(inline_template('reverse is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + expect(r.stdout).to match(/reverse is "seirellag tra cilbup eht"/) + end + end + end + describe 'failure' do + it 'handles no arguments' + it 'handles non strings or arrays' + end +end diff --git a/spec/acceptance/rstrip_spec.rb b/spec/acceptance/rstrip_spec.rb new file mode 100644 index 0000000..11ed60a --- /dev/null +++ b/spec/acceptance/rstrip_spec.rb @@ -0,0 +1,33 @@ +require 'spec_helper_acceptance' + +describe 'rstrip function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do + describe 'success' do + it 'rstrips arrays' do + pp = <<-EOS + $a = [" the "," public "," art","galleries "] + # Anagram: Large picture halls, I bet + $o = rstrip($a) + notice(inline_template('rstrip is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + expect(r.stdout).to match(/rstrip is \[" the", " public", " art", "galleries"\]/) + end + end + it 'rstrips strings' do + pp = <<-EOS + $a = " blowzy night-frumps vex'd jack q " + $o = rstrip($a) + notice(inline_template('rstrip is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + expect(r.stdout).to match(/rstrip is " blowzy night-frumps vex'd jack q"/) + end + end + end + describe 'failure' do + it 'handles no arguments' + it 'handles non strings or arrays' + end +end diff --git a/spec/acceptance/shuffle_spec.rb b/spec/acceptance/shuffle_spec.rb new file mode 100644 index 0000000..e22171f --- /dev/null +++ b/spec/acceptance/shuffle_spec.rb @@ -0,0 +1,33 @@ +require 'spec_helper_acceptance' + +describe 'shuffle function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do + describe 'success' do + it 'shuffles arrays' do + pp = <<-EOS + $a = ["the","public","art","galleries"] + # Anagram: Large picture halls, I bet + $o = shuffle($a) + notice(inline_template('shuffle is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + expect(r.stdout).to_not match(/shuffle is \["the", "public", "art", "galleries"\]/) + end + end + it 'shuffles strings' do + pp = <<-EOS + $a = "blowzy night-frumps vex'd jack q" + $o = shuffle($a) + notice(inline_template('shuffle is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + expect(r.stdout).to_not match(/shuffle is "blowzy night-frumps vex'd jack q"/) + end + end + end + describe 'failure' do + it 'handles no arguments' + it 'handles non strings or arrays' + end +end diff --git a/spec/acceptance/size_spec.rb b/spec/acceptance/size_spec.rb index 2aacf0b..d79140e 100644 --- a/spec/acceptance/size_spec.rb +++ b/spec/acceptance/size_spec.rb @@ -5,7 +5,7 @@ describe 'size function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operat it 'single string size' do pp = <<-EOS $a = 'discombobulate' - $o =size($a) + $o = size($a) notice(inline_template('size is <%= @o.inspect %>')) EOS @@ -16,7 +16,7 @@ describe 'size function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operat it 'with empty string' do pp = <<-EOS $a = '' - $o =size($a) + $o = size($a) notice(inline_template('size is <%= @o.inspect %>')) EOS @@ -27,7 +27,7 @@ describe 'size function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operat it 'with undef' do pp = <<-EOS $a = undef - $o =size($a) + $o = size($a) notice(inline_template('size is <%= @o.inspect %>')) EOS @@ -38,7 +38,7 @@ describe 'size function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operat it 'strings in array' do pp = <<-EOS $a = ['discombobulate', 'moo'] - $o =size($a) + $o = size($a) notice(inline_template('size is <%= @o.inspect %>')) EOS diff --git a/spec/acceptance/sort_spec.rb b/spec/acceptance/sort_spec.rb index 1868a03..ae7c9db 100644 --- a/spec/acceptance/sort_spec.rb +++ b/spec/acceptance/sort_spec.rb @@ -6,7 +6,7 @@ describe 'sort function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operat pp = <<-EOS $a = ["the","public","art","galleries"] # Anagram: Large picture halls, I bet - $o =sort($a) + $o = sort($a) notice(inline_template('sort is <%= @o.inspect %>')) EOS @@ -17,7 +17,7 @@ describe 'sort function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operat it 'sorts strings' do pp = <<-EOS $a = "blowzy night-frumps vex'd jack q" - $o =sort($a) + $o = sort($a) notice(inline_template('sort is <%= @o.inspect %>')) EOS diff --git a/spec/acceptance/squeeze_spec.rb b/spec/acceptance/squeeze_spec.rb new file mode 100644 index 0000000..82e3233 --- /dev/null +++ b/spec/acceptance/squeeze_spec.rb @@ -0,0 +1,46 @@ +require 'spec_helper_acceptance' + +describe 'squeeze function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do + describe 'success' do + it 'squeezes arrays' do + pp = <<-EOS + # Real words! + $a = ["wallless", "laparohysterosalpingooophorectomy", "brrr", "goddessship"] + $o = squeeze($a) + notice(inline_template('squeeze is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + expect(r.stdout).to match(/squeeze is \["wales", "laparohysterosalpingophorectomy", "br", "godeship"\]/) + end + end + it 'squeezez arrays with an argument' + it 'squeezes strings' do + pp = <<-EOS + $a = "wallless laparohysterosalpingooophorectomy brrr goddessship" + $o = squeeze($a) + notice(inline_template('squeeze is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + expect(r.stdout).to match(/squeeze is "wales laparohysterosalpingophorectomy br godeship"/) + end + end + + it 'squeezes strings with an argument' do + pp = <<-EOS + $a = "countessship duchessship governessship hostessship" + $o = squeeze($a, 's') + notice(inline_template('squeeze is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + expect(r.stdout).to match(/squeeze is "counteship ducheship governeship hosteship"/) + end + end + end + describe 'failure' do + it 'handles no arguments' + it 'handles non strings or arrays' + end +end diff --git a/spec/acceptance/str2bool_spec.rb b/spec/acceptance/str2bool_spec.rb new file mode 100644 index 0000000..a3ba5fe --- /dev/null +++ b/spec/acceptance/str2bool_spec.rb @@ -0,0 +1,30 @@ +require 'spec_helper_acceptance' + +describe 'str2bool function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do + describe 'success' do + it 'works with "y"' do + pp = <<-EOS + $o = str2bool('y') + notice(inline_template('str2bool is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + expect(r.stdout).to match(/str2bool is true/) + end + end + it 'works with "Y"' + it 'works with "yes"' + it 'works with "1"' + it 'works with "true"' + it 'works with "n"' + it 'works with "N"' + it 'works with "no"' + it 'works with "0"' + it 'works with "false"' + it 'works with undef' + end + describe 'failure' do + it 'handles no arguments' + it 'handles non arrays or strings' + end +end diff --git a/spec/acceptance/str2saltedsha512_spec.rb b/spec/acceptance/str2saltedsha512_spec.rb new file mode 100644 index 0000000..d353e22 --- /dev/null +++ b/spec/acceptance/str2saltedsha512_spec.rb @@ -0,0 +1,21 @@ +require 'spec_helper_acceptance' + +describe 'str2saltedsha512 function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do + describe 'success' do + it 'works with "y"' do + pp = <<-EOS + $o = str2saltedsha512('password') + notice(inline_template('str2saltedsha512 is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + expect(r.stdout).to match(/str2saltedsha512 is "[a-f0-9]{136}"/) + end + end + end + describe 'failure' do + it 'handles no arguments' + it 'handles more than one argument' + it 'handles non strings' + end +end diff --git a/spec/acceptance/strftime_spec.rb b/spec/acceptance/strftime_spec.rb new file mode 100644 index 0000000..73a01c0 --- /dev/null +++ b/spec/acceptance/strftime_spec.rb @@ -0,0 +1,21 @@ +require 'spec_helper_acceptance' + +describe 'strftime function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do + describe 'success' do + it 'gives the Century' do + pp = <<-EOS + $o = strftime('%C') + notice(inline_template('strftime is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + expect(r.stdout).to match(/strftime is "20"/) + end + end + it 'takes a timezone argument' + end + describe 'failure' do + it 'handles no arguments' + it 'handles invalid format strings' + end +end diff --git a/spec/acceptance/strip_spec.rb b/spec/acceptance/strip_spec.rb new file mode 100644 index 0000000..fe0c7e9 --- /dev/null +++ b/spec/acceptance/strip_spec.rb @@ -0,0 +1,33 @@ +require 'spec_helper_acceptance' + +describe 'strip function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do + describe 'success' do + it 'strips arrays' do + pp = <<-EOS + $a = [" the "," public "," art","galleries "] + # Anagram: Large picture halls, I bet + $o = strip($a) + notice(inline_template('strip is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + expect(r.stdout).to match(/strip is \["the", "public", "art", "galleries"\]/) + end + end + it 'strips strings' do + pp = <<-EOS + $a = " blowzy night-frumps vex'd jack q " + $o = strip($a) + notice(inline_template('strip is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + expect(r.stdout).to match(/strip is "blowzy night-frumps vex'd jack q"/) + end + end + end + describe 'failure' do + it 'handles no arguments' + it 'handles non strings or arrays' + end +end diff --git a/spec/acceptance/suffix_spec.rb b/spec/acceptance/suffix_spec.rb new file mode 100644 index 0000000..493bc2b --- /dev/null +++ b/spec/acceptance/suffix_spec.rb @@ -0,0 +1,41 @@ +require 'spec_helper_acceptance' + +describe 'suffix function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do + describe 'success' do + it 'suffixes array of values' do + pp = <<-EOS + $o = suffix(['a','b','c'],'p') + notice(inline_template('suffix is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + expect(r.stdout).to match(/suffix is \["ap", "bp", "cp"\]/) + end + end + it 'suffixs with empty array' do + pp = <<-EOS + $o = suffix([],'p') + notice(inline_template('suffix is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + expect(r.stdout).to match(/suffix is \[\]/) + end + end + it 'suffixs array of values with undef' do + pp = <<-EOS + $o = suffix(['a','b','c'], undef) + notice(inline_template('suffix is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + expect(r.stdout).to match(/suffix is \["a", "b", "c"\]/) + end + end + end + describe 'failure' do + it 'fails with no arguments' + it 'fails when first argument is not array' + it 'fails when second argument is not string' + end +end diff --git a/spec/acceptance/swapcase_spec.rb b/spec/acceptance/swapcase_spec.rb new file mode 100644 index 0000000..d4ae0dd --- /dev/null +++ b/spec/acceptance/swapcase_spec.rb @@ -0,0 +1,21 @@ +require 'spec_helper_acceptance' + +describe 'swapcase function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do + describe 'success' do + it 'works with strings' do + pp = <<-EOS + $o = swapcase('aBcD') + notice(inline_template('swapcase is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + expect(r.stdout).to match(/swapcase is "AbCd"/) + end + end + it 'works with arrays' + end + describe 'failure' do + it 'handles no arguments' + it 'handles non arrays or strings' + end +end diff --git a/spec/acceptance/time_spec.rb b/spec/acceptance/time_spec.rb new file mode 100644 index 0000000..2a5e52a --- /dev/null +++ b/spec/acceptance/time_spec.rb @@ -0,0 +1,35 @@ +require 'spec_helper_acceptance' + +describe 'time function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do + describe 'success' do + it 'gives the time' do + pp = <<-EOS + $o = time() + notice(inline_template('time is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + m = r.stdout.match(/time is (\d+)\D/) + + # When I wrote this test + expect(Integer(m[1])).to be > 1398894170 + end + end + it 'takes a timezone argument' do + pp = <<-EOS + $o = time('UTC') + notice(inline_template('time is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + m = r.stdout.match(/time is (\d+)\D/) + + expect(Integer(m[1])).to be > 1398894170 + end + end + end + describe 'failure' do + it 'handles more arguments' + it 'handles invalid timezones' + end +end diff --git a/spec/acceptance/to_bytes_spec.rb b/spec/acceptance/to_bytes_spec.rb new file mode 100644 index 0000000..34f3647 --- /dev/null +++ b/spec/acceptance/to_bytes_spec.rb @@ -0,0 +1,26 @@ +require 'spec_helper_acceptance' + +describe 'to_bytes function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do + describe 'success' do + it 'converts kB to B' do + pp = <<-EOS + $o = to_bytes('4 kB') + notice(inline_template('to_bytes is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + m = r.stdout.match(/to_bytes is (\d+)\D/) + expect(m[1]).to eq("4096") + end + end + it 'works without the B in unit' + it 'works without a space before unit' + it 'works without a unit' + it 'converts fractions' + end + describe 'failure' do + it 'handles no arguments' + it 'handles non integer arguments' + it 'handles unknown units like uB' + end +end diff --git a/spec/acceptance/type_spec.rb b/spec/acceptance/type_spec.rb new file mode 100644 index 0000000..dc72f74 --- /dev/null +++ b/spec/acceptance/type_spec.rb @@ -0,0 +1,36 @@ +require 'spec_helper_acceptance' + +describe 'type function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do + describe 'success' do + it 'types arrays' do + pp = <<-EOS + $a = ["the","public","art","galleries"] + # Anagram: Large picture halls, I bet + $o = type($a) + notice(inline_template('type is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + expect(r.stdout).to match(/type is "array"/) + end + end + it 'types strings' do + pp = <<-EOS + $a = "blowzy night-frumps vex'd jack q" + $o = type($a) + notice(inline_template('type is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + expect(r.stdout).to match(/type is "string"/) + end + end + it 'types hashes' + it 'types integers' + it 'types floats' + it 'types booleans' + end + describe 'failure' do + it 'handles no arguments' + end +end diff --git a/spec/acceptance/union_spec.rb b/spec/acceptance/union_spec.rb new file mode 100644 index 0000000..f413d9a --- /dev/null +++ b/spec/acceptance/union_spec.rb @@ -0,0 +1,23 @@ +require 'spec_helper_acceptance' + +describe 'union function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do + describe 'success' do + it 'unions arrays' do + pp = <<-EOS + $a = ["the","public"] + $b = ["art","galleries"] + # Anagram: Large picture halls, I bet + $o = union($a,$b) + notice(inline_template('union is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + expect(r.stdout).to match(/union is \["the", "public", "art", "galleries"\]/) + end + end + end + describe 'failure' do + it 'handles no arguments' + it 'handles non arrays' + end +end diff --git a/spec/acceptance/unique_spec.rb b/spec/acceptance/unique_spec.rb new file mode 100644 index 0000000..ea63cb4 --- /dev/null +++ b/spec/acceptance/unique_spec.rb @@ -0,0 +1,32 @@ +require 'spec_helper_acceptance' + +describe 'unique function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do + describe 'success' do + it 'uniques arrays' do + pp = <<-EOS + $a = ["wallless", "wallless", "brrr", "goddessship"] + $o = unique($a) + notice(inline_template('unique is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + expect(r.stdout).to match(/unique is \["wallless", "brrr", "goddessship"\]/) + end + end + it 'uniques strings' do + pp = <<-EOS + $a = "wallless laparohysterosalpingooophorectomy brrr goddessship" + $o = unique($a) + notice(inline_template('unique is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + expect(r.stdout).to match(/unique is "wales prohytingcmbd"/) + end + end + end + describe 'failure' do + it 'handles no arguments' + it 'handles non strings or arrays' + end +end diff --git a/spec/acceptance/upcase_spec.rb b/spec/acceptance/upcase_spec.rb new file mode 100644 index 0000000..50e6302 --- /dev/null +++ b/spec/acceptance/upcase_spec.rb @@ -0,0 +1,32 @@ +require 'spec_helper_acceptance' + +describe 'upcase function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do + describe 'success' do + it 'upcases arrays' do + pp = <<-EOS + $a = ["wallless", "laparohysterosalpingooophorectomy", "brrr", "goddessship"] + $o = upcase($a) + notice(inline_template('upcase is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + expect(r.stdout).to match(/upcase is \["WALLLESS", "LAPAROHYSTEROSALPINGOOOPHORECTOMY", "BRRR", "GODDESSSHIP"\]/) + end + end + it 'upcases strings' do + pp = <<-EOS + $a = "wallless laparohysterosalpingooophorectomy brrr goddessship" + $o = upcase($a) + notice(inline_template('upcase is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + expect(r.stdout).to match(/upcase is "WALLLESS LAPAROHYSTEROSALPINGOOOPHORECTOMY BRRR GODDESSSHIP"/) + end + end + end + describe 'failure' do + it 'handles no arguments' + it 'handles non strings or arrays' + end +end diff --git a/spec/acceptance/uriescape_spec.rb b/spec/acceptance/uriescape_spec.rb new file mode 100644 index 0000000..0b8a549 --- /dev/null +++ b/spec/acceptance/uriescape_spec.rb @@ -0,0 +1,22 @@ +require 'spec_helper_acceptance' + +describe 'uriescape function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do + describe 'success' do + it 'uriescape strings' do + pp = <<-EOS + $a = ":/?#[]@!$&'()*+,;= \\\"{}" + $o = uriescape($a) + notice(inline_template('uriescape is <%= @o.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + expect(r.stdout).to match(/uriescape is ":\/\?%23\[\]@!\$&'\(\)\*\+,;=%20%22%7B%7D"/) + end + end + it 'does nothing if a string is already safe' + end + describe 'failure' do + it 'handles no arguments' + it 'handles non strings or arrays' + end +end diff --git a/spec/acceptance/validate_absolute_path_spec.rb b/spec/acceptance/validate_absolute_path_spec.rb new file mode 100644 index 0000000..35ee974 --- /dev/null +++ b/spec/acceptance/validate_absolute_path_spec.rb @@ -0,0 +1,30 @@ +require 'spec_helper_acceptance' + +describe 'validate_absolute_path function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do + describe 'success' do + %w{ + C:/ + C:\\\\ + C:\\\\WINDOWS\\\\System32 + C:/windows/system32 + X:/foo/bar + X:\\\\foo\\\\bar + /var/tmp + /var/lib/puppet + /var/opt/../lib/puppet + }.each do |path| + it "validates a single argument #{path}" do + pp = <<-EOS + $one = '#{path}' + validate_absolute_path($one) + EOS + + apply_manifest(pp, :catch_failures => true) + end + end + end + describe 'failure' do + it 'handles improper number of arguments' + it 'handles relative paths' + end +end diff --git a/spec/acceptance/validate_augeas_spec.rb b/spec/acceptance/validate_augeas_spec.rb index 8b904f5..2175ada 100644 --- a/spec/acceptance/validate_augeas_spec.rb +++ b/spec/acceptance/validate_augeas_spec.rb @@ -1,39 +1,39 @@ -require 'spec_helper_acceptance' - -describe 'validate_augeas function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'prep' do - it 'installs augeas for tests' - end - describe 'success' do - it 'validates a single argument' do - pp = <<-EOS - $one = { 'a' => 1 } - validate_hash($one) - EOS - - apply_manifest(pp, :catch_failures => true) - end - it 'validates an multiple arguments' do - pp = <<-EOS - $one = { 'a' => 1 } - $two = { 'b' => 2 } - validate_hash($one,$two) - EOS - - apply_manifest(pp, :catch_failures => true) - end - it 'validates a non-hash' do - { - %{validate_hash('{ "not" => "hash" }')} => "String", - %{validate_hash('string')} => "String", - %{validate_hash(["array"])} => "Array", - %{validate_hash(undef)} => "String", - }.each do |pp,type| - expect(apply_manifest(pp, :expect_failures => true).stderr).to match(/a #{type}/) - end - end - end - describe 'failure' do - it 'handles improper number of arguments' - end -end +#require 'spec_helper_acceptance' +# +#describe 'validate_augeas function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do +# describe 'prep' do +# it 'installs augeas for tests' +# end +# describe 'success' do +# it 'validates a single argument' do +# pp = <<-EOS +# $one = { 'a' => 1 } +# validate_hash($one) +# EOS +# +# apply_manifest(pp, :catch_failures => true) +# end +# it 'validates an multiple arguments' do +# pp = <<-EOS +# $one = { 'a' => 1 } +# $two = { 'b' => 2 } +# validate_hash($one,$two) +# EOS +# +# apply_manifest(pp, :catch_failures => true) +# end +# it 'validates a non-hash' do +# { +# %{validate_hash('{ "not" => "hash" }')} => "String", +# %{validate_hash('string')} => "String", +# %{validate_hash(["array"])} => "Array", +# %{validate_hash(undef)} => "String", +# }.each do |pp,type| +# expect(apply_manifest(pp, :expect_failures => true).stderr).to match(/a #{type}/) +# end +# end +# end +# describe 'failure' do +# it 'handles improper number of arguments' +# end +#end diff --git a/spec/acceptance/validate_ipv4_address_spec.rb b/spec/acceptance/validate_ipv4_address_spec.rb new file mode 100644 index 0000000..b98b81c --- /dev/null +++ b/spec/acceptance/validate_ipv4_address_spec.rb @@ -0,0 +1,30 @@ +require 'spec_helper_acceptance' + +describe 'validate_ipv4_address function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do + describe 'success' do + it 'validates a single argument' do + pp = <<-EOS + $one = '1.2.3.4' + validate_ipv4_address($one) + EOS + + apply_manifest(pp, :catch_failures => true) + end + it 'validates an multiple arguments' do + pp = <<-EOS + $one = '1.2.3.4' + $two = '5.6.7.8' + validate_ipv4_address($one,$two) + EOS + + apply_manifest(pp, :catch_failures => true) + end + end + describe 'failure' do + it 'handles improper number of arguments' + it 'handles ipv6 addresses' + it 'handles non-ipv4 strings' + it 'handles numbers' + it 'handles no arguments' + end +end diff --git a/spec/acceptance/validate_ipv6_address_spec.rb b/spec/acceptance/validate_ipv6_address_spec.rb new file mode 100644 index 0000000..3e73a82 --- /dev/null +++ b/spec/acceptance/validate_ipv6_address_spec.rb @@ -0,0 +1,30 @@ +require 'spec_helper_acceptance' + +describe 'validate_ipv6_address function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do + describe 'success' do + it 'validates a single argument' do + pp = <<-EOS + $one = '3ffe:0505:0002::' + validate_ipv6_address($one) + EOS + + apply_manifest(pp, :catch_failures => true) + end + it 'validates an multiple arguments' do + pp = <<-EOS + $one = '3ffe:0505:0002::' + $two = '3ffe:0505:0001::' + validate_ipv6_address($one,$two) + EOS + + apply_manifest(pp, :catch_failures => true) + end + end + describe 'failure' do + it 'handles improper number of arguments' + it 'handles ipv6 addresses' + it 'handles non-ipv6 strings' + it 'handles numbers' + it 'handles no arguments' + end +end diff --git a/spec/acceptance/values_at_spec.rb b/spec/acceptance/values_at_spec.rb index fb661dd..f341e3d 100644 --- a/spec/acceptance/values_at_spec.rb +++ b/spec/acceptance/values_at_spec.rb @@ -13,9 +13,10 @@ describe 'values_at function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('o expect(apply_manifest(pp, :catch_failures => true).stdout).to match(/\["b"\]/) end it 'returns a specific negative index value' do + pending("negative numbers don't work") pp = <<-EOS $one = ['a','b','c','d','e'] - $two = "-1" + $two = -1 $output = values_at($one,$two) notice(inline_template('<%= @output.inspect %>')) EOS -- cgit v1.2.3