From cf37a128a0939a6ba842d735a664b957905cbd87 Mon Sep 17 00:00:00 2001 From: Will Farrington Date: Wed, 22 May 2013 17:10:45 -0700 Subject: Add functions to validate ipv4 and ipv6 addresses --- .../parser/functions/validate_ipv6_address_spec.rb | 62 ++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 spec/unit/puppet/parser/functions/validate_ipv6_address_spec.rb (limited to 'spec/unit/puppet/parser/functions/validate_ipv6_address_spec.rb') diff --git a/spec/unit/puppet/parser/functions/validate_ipv6_address_spec.rb b/spec/unit/puppet/parser/functions/validate_ipv6_address_spec.rb new file mode 100644 index 0000000..bf3c966 --- /dev/null +++ b/spec/unit/puppet/parser/functions/validate_ipv6_address_spec.rb @@ -0,0 +1,62 @@ +#! /usr/bin/env/ruby -S rspec + +require "spec_helper" + +describe Puppet::Parser::Functions.function(:validate_ipv6_address) do + let(:scope) { PuppetlabsSpec::PuppetInternals.scope } + + describe "when calling validate_ipv6_address from puppet" do + describe "when given IPv6 address strings" do + it "should compile with one argument" do + Puppet[:code] = "validate_ipv6_address('3ffe:505:2')" + scope.compiler.compile + end + + it "should compile with multiple arguments" do + Puppet[:code] = "validate_ipv6_address('3ffe:505:2', '3ffe:505:1')" + scope.compiler.compile + end + end + + describe "when given an ipv4 address" do + it "should not compile" do + Puppet[:code] = "validate_ipv6_address('1.2.3.4')" + expect { + scope.compiler.compile + }.to raise_error(Puppet::ParseError, /not a valid IPv6 address/) + end + end + + describe "when given other strings" do + it "should not compile" do + Puppet[:code] = "validate_ipv6_address('hello', 'world')" + expect { + scope.compiler.compile + }.to raise_error(Puppet::ParseError, /not a valid IPv6 address/) + end + end + + describe "when given numbers" do + it "should compile" do + Puppet[:code] = "validate_ipv6_address(1, 2)" + scope.compiler.compile + end + end + + describe "when given booleans" do + it "should not compile" do + Puppet[:code] = "validate_ipv6_address(true, false)" + expect { + scope.compiler.compile + }.to raise_error(Puppet::ParseError, /is not a string/) + end + end + + it "should not compile when no arguments are passed" do + Puppet[:code] = "validate_ipv6_address()" + expect { + scope.compiler.compile + }.to raise_error(Puppet::ParseError, /wrong number of arguments/) + end + end +end -- cgit v1.2.3 From 5d5796a7d5da68b74b4325adb47a907b8579bb26 Mon Sep 17 00:00:00 2001 From: Will Farrington Date: Wed, 22 May 2013 17:37:08 -0700 Subject: Update ipv6 examples --- .../unit/puppet/parser/functions/validate_ipv6_address_spec.rb | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'spec/unit/puppet/parser/functions/validate_ipv6_address_spec.rb') diff --git a/spec/unit/puppet/parser/functions/validate_ipv6_address_spec.rb b/spec/unit/puppet/parser/functions/validate_ipv6_address_spec.rb index bf3c966..c74e8cd 100644 --- a/spec/unit/puppet/parser/functions/validate_ipv6_address_spec.rb +++ b/spec/unit/puppet/parser/functions/validate_ipv6_address_spec.rb @@ -8,12 +8,12 @@ describe Puppet::Parser::Functions.function(:validate_ipv6_address) do describe "when calling validate_ipv6_address from puppet" do describe "when given IPv6 address strings" do it "should compile with one argument" do - Puppet[:code] = "validate_ipv6_address('3ffe:505:2')" + Puppet[:code] = "validate_ipv6_address('3ffe:0505:0002::')" scope.compiler.compile end it "should compile with multiple arguments" do - Puppet[:code] = "validate_ipv6_address('3ffe:505:2', '3ffe:505:1')" + Puppet[:code] = "validate_ipv6_address('3ffe:0505:0002::', '3ffe:0505:0001::')" scope.compiler.compile end end @@ -37,9 +37,11 @@ describe Puppet::Parser::Functions.function(:validate_ipv6_address) do end describe "when given numbers" do - it "should compile" do + it "should not compile" do Puppet[:code] = "validate_ipv6_address(1, 2)" - scope.compiler.compile + expect { + scope.compiler.compile + }.to raise_error(Puppet::ParseError, /not a valid IPv6 address/) end end -- cgit v1.2.3 From e0fd7299f60690e67bf5488ed2a04102a550aec0 Mon Sep 17 00:00:00 2001 From: Will Farrington Date: Wed, 22 May 2013 17:43:37 -0700 Subject: Don't run certain tests under 1.8.7 --- .../puppet/parser/functions/validate_ipv6_address_spec.rb | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'spec/unit/puppet/parser/functions/validate_ipv6_address_spec.rb') diff --git a/spec/unit/puppet/parser/functions/validate_ipv6_address_spec.rb b/spec/unit/puppet/parser/functions/validate_ipv6_address_spec.rb index c74e8cd..1fe5304 100644 --- a/spec/unit/puppet/parser/functions/validate_ipv6_address_spec.rb +++ b/spec/unit/puppet/parser/functions/validate_ipv6_address_spec.rb @@ -36,12 +36,15 @@ describe Puppet::Parser::Functions.function(:validate_ipv6_address) do end end - describe "when given numbers" do - it "should not compile" do - Puppet[:code] = "validate_ipv6_address(1, 2)" - expect { - scope.compiler.compile - }.to raise_error(Puppet::ParseError, /not a valid IPv6 address/) + # 1.8.7 is EOL'd and also absolutely insane about ipv6 + unless RUBY_VERSION == '1.8.7' + describe "when given numbers" do + it "should not compile" do + Puppet[:code] = "validate_ipv6_address(1, 2)" + expect { + scope.compiler.compile + }.to raise_error(Puppet::ParseError, /not a valid IPv6 address/) + end end end -- cgit v1.2.3