Sha256: 9edc52dddba6e778224f600fa21492d80e8b71b48d52b17f942d5d019d45fc30

Contents?: true

Size: 959 Bytes

Versions: 4

Compression:

Stored size: 959 Bytes

Contents

module Nuklear
  module TestCase
    def nuklear
      @nuklear || raise("Nuklear::TestCase requires you to assign a Nuklear::Context to @nuklear during your test setup.")
    end

    def tick
      raise "Nuklear::TestCase requires you to override #tick to process window events and to call your Nuklear::Context#tick method."
    end

    def click_button(text)
      els = nuklear.find do |item|
        item.kind_of?(Nuklear::UI::Button) && item.respond_to?(:text) && item.text[text]
      end
      if els.count > 1
        raise "Ambiguous text: #{text} (found #{els.inspect})"
      elsif els.empty?
        raise "Cannot find an element with text: #{text.inspect}"
      else
        els.first.trigger(:clicked)
      end
      tick
    end

    def assert_text(txt)
      refute_empty nuklear.find { |el| el.respond_to?(:text) && el.text[txt] },
                   "Expected to find at least one element with text: #{txt.inspect}"
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
nuklear-0.1.3 lib/nuklear/test_case.rb
nuklear-0.1.2 lib/nuklear/test_case.rb
nuklear-0.1.1 lib/nuklear/test_case.rb
nuklear-0.1.0 lib/nuklear/test_case.rb