]> git.donarmstrong.com Git - dsa-puppet.git/blob - modules/stdlib/spec/unit/puppet/parser/functions/is_ip_address_spec.rb
upgrade to concat 2.0.0
[dsa-puppet.git] / modules / stdlib / spec / unit / puppet / parser / functions / is_ip_address_spec.rb
1 #!/usr/bin/env rspec
2 require 'spec_helper'
3
4 describe "the is_ip_address function" do
5   before :all do
6     Puppet::Parser::Functions.autoloader.loadall
7   end
8
9   before :each do
10     @scope = Puppet::Parser::Scope.new
11   end
12
13   it "should exist" do
14     Puppet::Parser::Functions.function("is_ip_address").should == "function_is_ip_address"
15   end
16
17   it "should raise a ParseError if there is less than 1 arguments" do
18     lambda { @scope.function_is_ip_address([]) }.should( raise_error(Puppet::ParseError))
19   end
20
21   it "should return true if an IPv4 address" do
22     result = @scope.function_is_ip_address(["1.2.3.4"])
23     result.should(eq(true))
24   end
25
26   it "should return true if a full IPv6 address" do
27     result = @scope.function_is_ip_address(["fe80:0000:cd12:d123:e2f8:47ff:fe09:dd74"])
28     result.should(eq(true))
29   end
30
31   it "should return true if a compressed IPv6 address" do
32     result = @scope.function_is_ip_address(["fe00::1"])
33     result.should(eq(true))
34   end
35
36   it "should return false if not valid" do
37     result = @scope.function_is_ip_address(["asdf"])
38     result.should(eq(false))
39   end
40
41   it "should return false if IP octets out of range" do
42     result = @scope.function_is_ip_address(["1.1.1.300"])
43     result.should(eq(false))
44   end
45 end