Sha256: e7f70a93ff7cefa7b7adc20b51f5c7738157ef5aae3e937fdf8de25d9aa04cb8
Contents?: true
Size: 1.61 KB
Versions: 3
Compression:
Stored size: 1.61 KB
Contents
# frozen_string_literal: true require "introspection_test_helper" describe GObjectIntrospection::IBaseInfo do let(:described_class) { GObjectIntrospection::IBaseInfo } describe "#initialize" do it "raises an error if a null pointer is passed" do expect(ptr = Object.new).to receive(:null?).and_return true _(proc { described_class.new ptr }).must_raise ArgumentError end it "raises no error if a non-null pointer is passed" do expect(ptr = Object.new).to receive(:null?).and_return false described_class.new ptr pass end end describe "#deprecated?" do let(:deprecated_info) { get_introspection_data "Regress", "test_versioning" } let(:other_info) { get_introspection_data "Regress", "test_value_return" } it "returns true for a deprecated item" do _(deprecated_info).must_be :deprecated? end it "returns false for a non-deprecated item" do _(other_info).wont_be :deprecated? end end describe "upon garbage collection" do it "calls g_base_info_unref" do skip "cannot be reliably tested on JRuby and Rubinius" if jruby? || rubinius? expect(ptr = Object.new).to receive(:null?).and_return false expect(lib = Object.new).to receive(:g_base_info_unref).with(ptr).and_return nil described_class.new ptr, lib GC.start # Yes, the next three lines are needed. https://gist.github.com/4277829 allow(ptr2 = Object.new).to receive(:null?).and_return false allow(lib).to receive(:g_base_info_unref).with(ptr2).and_return nil described_class.new ptr2, lib GC.start GC.start end end end
Version data entries
3 entries across 3 versions & 1 rubygems