From 39d28497a3abd981da76ffb7535b825473afbcad Mon Sep 17 00:00:00 2001 From: Jeff McCune Date: Wed, 11 Jan 2012 18:55:21 -0800 Subject: (maint) Memoize scope in domain_name spec This is an opportunity improvement since I'm in the code. Get rid of instance variables in the spec test and replace them with a memo let method block. --- .../puppet/parser/functions/is_domain_name_spec.rb | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) (limited to 'spec/unit/puppet') diff --git a/spec/unit/puppet/parser/functions/is_domain_name_spec.rb b/spec/unit/puppet/parser/functions/is_domain_name_spec.rb index ec7c7f5..b419231 100644 --- a/spec/unit/puppet/parser/functions/is_domain_name_spec.rb +++ b/spec/unit/puppet/parser/functions/is_domain_name_spec.rb @@ -6,51 +6,48 @@ describe "the is_domain_name function" do Puppet::Parser::Functions.autoloader.loadall end - before :each do - @scope = Puppet::Parser::Scope.new - end + let(:scope) { Puppet::Parser::Scope.new } it "should exist" do Puppet::Parser::Functions.function("is_domain_name").should == "function_is_domain_name" end it "should raise a ParseError if there is less than 1 arguments" do - lambda { @scope.function_is_domain_name([]) }.should( raise_error(Puppet::ParseError)) + lambda { scope.function_is_domain_name([]) }.should( raise_error(Puppet::ParseError)) end it "should return true if a valid domain name" do - result = @scope.function_is_domain_name(["foo.bar.com"]) + result = scope.function_is_domain_name(["foo.bar.com"]) result.should(be_true) end it "should allow domain parts to start with numbers" do - result = @scope.function_is_domain_name(["3foo.2bar.com"]) + result = scope.function_is_domain_name(["3foo.2bar.com"]) result.should(be_true) end it "should allow domain to end with a dot" do - result = @scope.function_is_domain_name(["3foo.2bar.com."]) + result = scope.function_is_domain_name(["3foo.2bar.com."]) result.should(be_true) end it "should allow a single part domain" do - result = @scope.function_is_domain_name(["orange"]) + result = scope.function_is_domain_name(["orange"]) result.should(be_true) end it "should return false if domain parts start with hyphens" do - result = @scope.function_is_domain_name(["-3foo.2bar.com"]) + result = scope.function_is_domain_name(["-3foo.2bar.com"]) result.should(be_false) end it "should return true if domain contains hyphens" do - result = @scope.function_is_domain_name(["3foo-bar.2bar-fuzz.com"]) + result = scope.function_is_domain_name(["3foo-bar.2bar-fuzz.com"]) result.should(be_true) end it "should return false if domain name contains spaces" do - result = @scope.function_is_domain_name(["not valid"]) + result = scope.function_is_domain_name(["not valid"]) result.should(be_false) end - end -- cgit v1.2.3 From 501bcba719d636e851668ac208d1c623dfaaf931 Mon Sep 17 00:00:00 2001 From: Jeff McCune Date: Wed, 11 Jan 2012 19:15:04 -0800 Subject: Add additional domain name tests Without this patch some valid domain names are not covered in the spec tests as Stig Sandbeck Mathisen points out. This patch adds spec tests for the domains "." and "x.com" which are both valid. --- spec/unit/puppet/parser/functions/is_domain_name_spec.rb | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'spec/unit/puppet') diff --git a/spec/unit/puppet/parser/functions/is_domain_name_spec.rb b/spec/unit/puppet/parser/functions/is_domain_name_spec.rb index b419231..ccd3276 100644 --- a/spec/unit/puppet/parser/functions/is_domain_name_spec.rb +++ b/spec/unit/puppet/parser/functions/is_domain_name_spec.rb @@ -16,6 +16,21 @@ describe "the is_domain_name function" do lambda { scope.function_is_domain_name([]) }.should( raise_error(Puppet::ParseError)) end + it "should return true if a valid short domain name" do + result = scope.function_is_domain_name(["x.com"]) + result.should(be_true) + end + + it "should return true if the domain is ." do + result = scope.function_is_domain_name(["."]) + result.should(be_true) + end + + it "should return true if the domain is x.com." do + result = scope.function_is_domain_name(["x.com."]) + result.should(be_true) + end + it "should return true if a valid domain name" do result = scope.function_is_domain_name(["foo.bar.com"]) result.should(be_true) -- cgit v1.2.3