Sha256: cbc0206c94a14abfa79a2717245538906596f644e3293c92537b4bd7ae9bf2ce

Contents?: true

Size: 1.68 KB

Versions: 5

Compression:

Stored size: 1.68 KB

Contents

require 'test_helper'

describe Gtk::Builder do
  let(:builder) { Gtk::Builder.new }
  let(:spec) do
    <<-EOS
      <interface>
      <object class="GtkButton" id="foo">
      <signal handler="on_button_clicked" name="clicked"/>
      </object>
      </interface>
    EOS
  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
        <<-EOS
          <interface>
          <object class="GtkButton" id="foo">
          <signal handler="handler_after" name="clicked" after="true"/>
          <signal handler="handler_before" name="clicked"/>
          </object>
          </interface>
        EOS
      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

5 entries across 5 versions & 1 rubygems

Version Path
gir_ffi-gtk-0.12.1 test/gir_ffi-gtk/builder_test.rb
gir_ffi-gtk-0.12.0 test/gir_ffi-gtk/builder_test.rb
gir_ffi-gtk-0.11.0 test/gir_ffi-gtk/builder_test.rb
gir_ffi-gtk-0.10.0 test/gir_ffi-gtk/builder_test.rb
gir_ffi-gtk-0.9.0 test/gir_ffi-gtk/builder_test.rb