summaryrefslogtreecommitdiff
path: root/spec/ruby/core/encoding/invalid_byte_sequence_error/incomplete_input_spec.rb
blob: 94201a9b1534704a4bcf68ca06eca71f56e6ab51 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# -*- encoding: binary -*-
require_relative '../../../spec_helper'

describe "Encoding::InvalidByteSequenceError#incomplete_input?" do
  it "returns nil by default" do
    Encoding::InvalidByteSequenceError.new.incomplete_input?.should be_nil
  end

  it "returns true if #primitive_convert returned :incomplete_input for the same data" do
    ec = Encoding::Converter.new("EUC-JP", "ISO-8859-1")
    ec.primitive_convert("\xA1",'').should == :incomplete_input
    begin
      ec.convert("\xA1")
    rescue Encoding::InvalidByteSequenceError => e
      e.incomplete_input?.should be_true
    end
  end

  it "returns false if #primitive_convert returned :invalid_byte_sequence for the same data" do
    ec = Encoding::Converter.new("ascii", "utf-8")
    ec.primitive_convert("\xfffffffff",'').should == :invalid_byte_sequence
    begin
      ec.convert("\xfffffffff")
    rescue Encoding::InvalidByteSequenceError => e
      e.incomplete_input?.should be_false
    end
  end
end