summaryrefslogtreecommitdiffstats
path: root/spec/unit
diff options
context:
space:
mode:
authorMarkus Roberts <Markus@reality.com>2011-02-01 17:56:09 -0800
committerMarkus Roberts <Markus@reality.com>2011-02-01 17:56:09 -0800
commit07edcf716b2f90fb830053b207fe5dc7efcff1f3 (patch)
tree7d45623846b449104429c49c675bf00a45610520 /spec/unit
parentadb8c7994ea7d2d30aaea698fbe08727ed553fef (diff)
parentf9e2e2b7d76ec88d7ad2ed0ce663b4219b72bc96 (diff)
downloadpuppet-07edcf716b2f90fb830053b207fe5dc7efcff1f3.tar.gz
puppet-07edcf716b2f90fb830053b207fe5dc7efcff1f3.tar.xz
puppet-07edcf716b2f90fb830053b207fe5dc7efcff1f3.zip
Merge branch 'bug/2.6.next/5755-yaml-backrefs' into 2.6.next
Diffstat (limited to 'spec/unit')
-rwxr-xr-xspec/unit/util/zaml_spec.rb34
1 files changed, 32 insertions, 2 deletions
diff --git a/spec/unit/util/zaml_spec.rb b/spec/unit/util/zaml_spec.rb
index 59590c571..fd506ea93 100755
--- a/spec/unit/util/zaml_spec.rb
+++ b/spec/unit/util/zaml_spec.rb
@@ -36,6 +36,10 @@ describe "Pure ruby yaml implementation" do
end
}
+ def set_of_lines(l)
+ l.split("\n").sort
+ end
+
it "should handle references to Array in Hash values correctly" do
list = [1]
data = { "one" => list, "two" => list }
@@ -46,15 +50,41 @@ describe "Pure ruby yaml implementation" do
it "should handle references to Hash in Hash values correctly" do
hash = { 1 => 1 }
data = { "one" => hash, "two" => hash }
- data.to_yaml.should == "--- \n two: &id001 \n 1: 1\n one: *id001"
+ # This could still someday fail because the order change would also change which one got the back ref
+ set_of_lines(data.to_yaml).should == set_of_lines("--- \n two: &id001 \n 1: 1\n one: *id001")
expect { YAML.load(data.to_yaml).should == data }.should_not raise_error
end
it "should handle references to Scalar in Hash" do
str = "hello"
data = { "one" => str, "two" => str }
- data.to_yaml.should == "--- \n two: &id001 hello\n one: *id001"
+ set_of_lines(data.to_yaml).should == set_of_lines("--- \n two: hello\n one: hello")
+ expect { YAML.load(data.to_yaml).should == data }.should_not raise_error
+ end
+
+ class Zaml_test_class_A
+ attr_reader :false,:true
+ def initialize
+ @false = @true = 7
+ end
+ end
+ it "should not blow up when magic strings are used as field names" do
+ data = Zaml_test_class_A.new
+ data.to_yaml.should == %Q{--- !ruby/object:Zaml_test_class_A\n \"false\": 7\n \"true\": 7}
+ expect {
+ r = YAML.load(data.to_yaml)
+ r.class.should == data.class
+ r.true.should == data.true
+ r.false.should == data.false
+ }.should_not raise_error
+ end
+
+ it "should not blow up on back references inside arrays" do
+ s = [1,2]
+ data = [s,s]
+ data.to_yaml.should == %Q{--- \n - &id001 \n - 1\n - 2\n - *id001}
expect { YAML.load(data.to_yaml).should == data }.should_not raise_error
end
+
end