Sha256: ae6e0616fa320d978a78098b086e7958d22fffe24cbfde2e5d0ade90fd75e78d
Contents?: true
Size: 1.88 KB
Versions: 1
Compression:
Stored size: 1.88 KB
Contents
require 'secure_marshal.rb' describe "secure marshaling", :shared=>true do it "should encode/decode integers" do check(20) check(-30) check(123874) checkAdd(3874,"crap") end it "should en/dec nil/true/false" do check(nil) check(true) check(false) end it "should encode/decode floats" do checkAdd(347374.34,"lsdf") end it "should encode/decode strings" do checkAdd("HI","lsdf") checkAdd("HI:HI","lsdf") checkAdd("123:HIdff","lsdf:sdfjhd") end it "should decode's:i:3:muh'correctly" do Secure::Marshal::load('s:i:3:muh').should == "muh" end it "should encode/decode arrays" do check([1,2,3,"muh"]) check([]) check(nil) check([nil]) end it "should encode/decode hashes" do check({1=>2,"asd"=>5.6,[1]=>"kjsdf"}) end it "should encode symbols" do check(:symbol) end it "should encode simple structs" do S=Struct.new(:hupe,:bla) s=S.new("123",348) pp "S:",s check(s) end it "should support dissected strings" do s="abcdefghijkl" check(s) m=Secure::Marshal::dump(s) pp s,m split=m.length/2 a=m[0...split] b=m[split..-1] puts "---1" (a+b).should == m d=Secure::Data.new(a) lambda{Secure::Marshal::load(d)}.should raise_error(Secure::Marshal::OutOfData) Secure::Marshal::load(m).should == s Secure::Marshal::load(a+b).should == s end it "should support any character in strings" do (0..255).each{|i| s=i.to_s+" "+i.chr check(s) } s=(0..255).to_a.map{|i|i.chr}.join("") #s=s*2 s=s[(s.length/2)..(s.length*17/32)] check(s) end private def checkAdd(input,add) data=Secure::Marshal::dump(input)+add Secure::Marshal::load(data).should == input end def check(input) data=Secure::Marshal::dump(input) Secure::Marshal::load(data).should == input end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
appswarm-0.0.1 | lib/appswarm/spec/secure_marshal_spec.rb |