Sha256: ad96508840a314b2c3582835923867a5bc85a9f7aeaa8b8a61c1ac89fa95a1e2

Contents?: true

Size: 1.88 KB

Versions: 52

Compression:

Stored size: 1.88 KB

Contents

# -*- encoding: ascii-8bit -*-
require File.expand_path('../../../../spec_helper', __FILE__)
require File.expand_path('../../fixtures/classes', __FILE__)
require File.expand_path('../shared/basic', __FILE__)
require File.expand_path('../shared/string', __FILE__)

describe "String#unpack with format 'A'" do
  it_behaves_like :string_unpack_basic, 'A'
  it_behaves_like :string_unpack_no_platform, 'A'
  it_behaves_like :string_unpack_string, 'A'
  it_behaves_like :string_unpack_Aa, 'A'

  it "removes trailing space and NULL bytes from the decoded string" do
    [ ["a\x00 b \x00",  ["a\x00 b", ""]],
      ["a\x00 b \x00 ", ["a\x00 b", ""]],
      ["a\x00 b\x00 ",  ["a\x00 b", ""]],
      ["a\x00 b\x00",   ["a\x00 b", ""]],
      ["a\x00 b ",      ["a\x00 b", ""]]
    ].should be_computed_by(:unpack, "A*A")
  end

  it "does not remove whitespace other than space" do
    [ ["a\x00 b\x00\f", ["a\x00 b\x00\f"]],
      ["a\x00 b\x00\n", ["a\x00 b\x00\n"]],
      ["a\x00 b\x00\r", ["a\x00 b\x00\r"]],
      ["a\x00 b\x00\t", ["a\x00 b\x00\t"]],
      ["a\x00 b\x00\v", ["a\x00 b\x00\v"]],
    ].should be_computed_by(:unpack, "A*")
  end
end

describe "String#unpack with format 'a'" do
  it_behaves_like :string_unpack_basic, 'a'
  it_behaves_like :string_unpack_no_platform, 'a'
  it_behaves_like :string_unpack_string, 'a'
  it_behaves_like :string_unpack_Aa, 'a'

  it "does not remove trailing whitespace or NULL bytes from the decoded string" do
    [ ["a\x00 b \x00",  ["a\x00 b \x00"]],
      ["a\x00 b \x00 ", ["a\x00 b \x00 "]],
      ["a\x00 b\x00 ",  ["a\x00 b\x00 "]],
      ["a\x00 b\x00",   ["a\x00 b\x00"]],
      ["a\x00 b ",      ["a\x00 b "]],
      ["a\x00 b\f",     ["a\x00 b\f"]],
      ["a\x00 b\n",     ["a\x00 b\n"]],
      ["a\x00 b\r",     ["a\x00 b\r"]],
      ["a\x00 b\t",     ["a\x00 b\t"]],
      ["a\x00 b\v",     ["a\x00 b\v"]]
    ].should be_computed_by(:unpack, "a*")
  end
end

Version data entries

52 entries across 52 versions & 2 rubygems

Version Path
rhodes-7.6.0 spec/framework_spec/app/spec/core/string/unpack/a_spec.rb
rhodes-7.5.1 spec/framework_spec/app/spec/core/string/unpack/a_spec.rb
rhodes-7.4.1 spec/framework_spec/app/spec/core/string/unpack/a_spec.rb
rhodes-7.1.17 spec/framework_spec/app/spec/core/string/unpack/a_spec.rb
rhodes-6.2.0 spec/framework_spec/app/spec/core/string/unpack/a_spec.rb
rhodes-6.0.11 spec/framework_spec/app/spec/core/string/unpack/a_spec.rb
rhodes-5.5.18 spec/framework_spec/app/spec/core/string/unpack/a_spec.rb
rhodes-5.5.17 spec/framework_spec/app/spec/core/string/unpack/a_spec.rb
rhodes-5.5.15 spec/framework_spec/app/spec/core/string/unpack/a_spec.rb
rhodes-5.5.0.22 spec/framework_spec/app/spec/core/string/unpack/a_spec.rb
rhodes-5.5.2 spec/framework_spec/app/spec/core/string/unpack/a_spec.rb
rhodes-5.5.0.7 spec/framework_spec/app/spec/core/string/unpack/a_spec.rb
rhodes-5.5.0.3 spec/framework_spec/app/spec/core/string/unpack/a_spec.rb
rhodes-5.5.0 spec/framework_spec/app/spec/core/string/unpack/a_spec.rb
tauplatform-1.0.3 spec/framework_spec/app/spec/core/string/unpack/a_spec.rb
tauplatform-1.0.2 spec/framework_spec/app/spec/core/string/unpack/a_spec.rb
tauplatform-1.0.1 spec/framework_spec/app/spec/core/string/unpack/a_spec.rb
rhodes-3.5.1.12 spec/framework_spec/app/spec/core/string/unpack/a_spec.rb
rhodes-3.3.5 spec/framework_spec/app/spec/core/string/unpack/a_spec.rb
rhodes-3.4.2 spec/framework_spec/app/spec/core/string/unpack/a_spec.rb