spec/string_spec.rb in bindata-1.4.4 vs spec/string_spec.rb in bindata-1.4.5

- old
+ new

@@ -216,9 +216,51 @@ subject.should == "abcRRde" end end end +describe BinData::String, "with :pad_front" do + it "set false is the default" do + str1 = BinData::String.new(:length => 5) + str2 = BinData::String.new(:length => 5, :pad_front => false) + str1.assign("abc") + str2.assign("abc") + str1.should == "abc\0\0" + str2.should == "abc\0\0" + end + + it "pads to the front" do + str = BinData::String.new(:length => 5, :pad_byte => 'R', :pad_front => true) + str.assign("abc") + str.should == "RRabc" + end + + it "can alternatively be accesses by :pad_left" do + str = BinData::String.new(:length => 5, :pad_byte => 'R', :pad_left => true) + str.assign("abc") + str.should == "RRabc" + end + + context "and :trim_padding" do + subject { BinData::String.new(:length => 5, :pad_byte => 'R', :pad_front => true, :trim_padding => true) } + + it "assigns" do + subject.assign("abc") + subject.should == "abc" + end + + it "has to_binary_s" do + subject.assign("abc") + subject.to_binary_s.should == "RRabc" + end + + it "reads" do + subject.read "RRabc" + subject.should == "abc" + end + end +end + describe BinData::String, "with Ruby 1.9 encodings" do if RUBY_VERSION >= "1.9" class UTF8String < BinData::String def snapshot super.force_encoding('UTF-8')