Sha256: 0283aae153ae66de96f12f5cdbe8d67cf7e1599cd47d55cc374667cd1ec11674

Contents?: true

Size: 1.2 KB

Versions: 3

Compression:

Stored size: 1.2 KB

Contents

# frozen_string_literal: true

require "gir_ffi_test_helper"

GirFFI.setup :Regress

# Tests deriving Ruby classes from GObject classes.
describe "For derived classes" do
  describe "setting up methods when first called" do
    before do
      save_module :GIMarshallingTests
      GirFFI.setup :GIMarshallingTests
    end

    describe "when an interface is mixed in" do
      before do
        @klass = Class.new GIMarshallingTests::OverridesObject
        @klass.send :include, GIMarshallingTests::Interface
      end

      it "finds class methods in the superclass" do
        @klass.returnv
      end

      it "finds instance methods in the superclass" do
        obj = @klass.new
        result = obj.method
        _(result).must_equal 42
      end
    end

    after do
      restore_module :GIMarshallingTests
    end
  end

  describe "the initializer" do
    it "works if it calls super" do
      klass = Class.new Regress::TestSubObj do
        attr_reader :animal
        def initialize(animal)
          super()
          @animal = animal
        end
      end

      obj = klass.new "dog"
      _(obj).must_be_instance_of klass
      _(obj.to_ptr).wont_be_nil
      _(obj.animal).must_equal "dog"
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
gir_ffi-0.15.2 test/integration/derived_classes_test.rb
gir_ffi-0.15.1 test/integration/derived_classes_test.rb
gir_ffi-0.15.0 test/integration/derived_classes_test.rb