From 39d28497a3abd981da76ffb7535b825473afbcad Mon Sep 17 00:00:00 2001
From: Jeff McCune <jeff@puppetlabs.com>
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')

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 <jeff@puppetlabs.com>
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 <ssm@debian.org> 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')

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