Sha256: ce3482410d6ce2f05ffcf8fee2c65c735a84a1947afffb9aa89b351dc80f981a

Contents?: true

Size: 1.68 KB

Versions: 4

Compression:

Stored size: 1.68 KB

Contents

require 'test_helper'

describe Gtk::Builder do
  let(:builder) { Gtk::Builder.new }
  let(:spec) do
    <<-XML
      <interface>
      <object class="GtkButton" id="foo">
      <signal handler="on_button_clicked" name="clicked"/>
      </object>
      </interface>
    XML
  end

  describe '#add_from_string' do
    it 'takes one string as argument' do
      builder.add_from_string spec
      pass
    end
  end

  describe '#connect_signals' do
    before do
      builder.add_from_string spec
    end

    it 'passes the handler name to the block' do
      name = nil
      builder.connect_signals do |handler_name|
        name = handler_name
        nil
      end

      name.must_equal 'on_button_clicked'
    end

    it 'connects the signal to the proc returned by the block' do
      name = nil
      builder.connect_signals do |handler_name|
        proc { name = handler_name }
      end
      button = builder.get_object('foo')
      GObject.signal_emit button, 'clicked'
      name.must_equal 'on_button_clicked'
    end

    describe 'with a signal with after flag' do
      let(:spec) do
        <<-XML
          <interface>
          <object class="GtkButton" id="foo">
          <signal handler="handler_after" name="clicked" after="true"/>
          <signal handler="handler_before" name="clicked"/>
          </object>
          </interface>
        XML
      end

      it 'connects the handlers in the right order' do
        name = nil
        builder.connect_signals do |handler_name|
          proc { name = handler_name }
        end
        button = builder.get_object('foo')
        GObject.signal_emit button, 'clicked'
        name.must_equal 'handler_after'
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
gir_ffi-gtk-0.14.1 test/gir_ffi-gtk/builder_test.rb
gir_ffi-gtk-0.14.0 test/gir_ffi-gtk/builder_test.rb
gir_ffi-gtk-0.13.1 test/gir_ffi-gtk/builder_test.rb
gir_ffi-gtk-0.13.0 test/gir_ffi-gtk/builder_test.rb