Sha256: 743f69e9a7c5f9587fe1716e661a52a76d6fb043e378530244ab531b93b11152

Contents?: true

Size: 1.06 KB

Versions: 13

Compression:

Stored size: 1.06 KB

Contents

require 'base_test_helper'

describe GLib::Strv do
  it 'wraps a pointer' do
    strv = GLib::Strv.new :some_pointer
    assert_equal :some_pointer, strv.to_ptr
  end

  describe '::wrap' do
    it 'takes a pointer and returns a GLib::Strv wrapping it' do
      strv = GLib::Strv.wrap :some_pointer
      assert_instance_of GLib::Strv, strv
      assert_equal :some_pointer, strv.to_ptr
    end
  end

  describe '#each' do
    it 'yields each string element' do
      ary = %w(one two three)
      ptrs = ary.map { |a| FFI::MemoryPointer.from_string(a) }
      ptrs << nil
      block = FFI::MemoryPointer.new(:pointer, ptrs.length)
      block.write_array_of_pointer ptrs

      strv = GLib::Strv.new block
      arr = []
      strv.each do |str|
        arr << str
      end
      assert_equal %w(one two three), arr
    end

    it 'yields zero times for a Strv wrapping a null pointer' do
      strv = GLib::Strv.new FFI::Pointer.new(0)
      strv.each do |_str|
        flunk
      end
    end
  end

  it 'includes Enumerable' do
    GLib::Strv.must_include Enumerable
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
gir_ffi-0.9.2 test/gir_ffi-base/glib/strv_test.rb
gir_ffi-0.9.1 test/gir_ffi-base/glib/strv_test.rb
gir_ffi-0.9.0 test/gir_ffi-base/glib/strv_test.rb
gir_ffi-0.8.6 test/gir_ffi-base/glib/strv_test.rb
gir_ffi-0.8.5 test/gir_ffi-base/glib/strv_test.rb
gir_ffi-0.8.4 test/gir_ffi-base/glib/strv_test.rb
gir_ffi-0.8.3 test/gir_ffi-base/glib/strv_test.rb
gir_ffi-0.8.2 test/gir_ffi-base/glib/strv_test.rb
gir_ffi-0.8.1 test/gir_ffi-base/glib/strv_test.rb
gir_ffi-0.8.0 test/gir_ffi-base/glib/strv_test.rb
gir_ffi-0.7.10 test/gir_ffi-base/glib/strv_test.rb
gir_ffi-0.7.9 test/gir_ffi-base/glib/strv_test.rb
gir_ffi-0.7.8 test/gir_ffi-base/glib/strv_test.rb