Sha256: 6e45c45c1cb99be09293a86fe3f1fe316285446d8d4cf7807460b895cb960d07

Contents?: true

Size: 1.97 KB

Versions: 3

Compression:

Stored size: 1.97 KB

Contents

require 'minitest/autorun'
require 'leap_motion'
require 'monitor'

class TestLeapMotion < MiniTest::Test
  attr_reader :controller

  def setup
    super
    @controller = LeapMotion::Controller.new
  end

  def test_listener
    assert LeapMotion::Listener.new
  end

  class Latch
    def initialize
      @locked = true
      @lock = Monitor.new
      @cv = @lock.new_cond
    end

    def release
      @lock.synchronize do
        @locked = false
        @cv.broadcast
      end
    end
    def await; @lock.synchronize { @cv.wait_while { @locked } }; end
  end

  def test_listener_gets_info
    events = []
    latch = Latch.new
    listener = Class.new {
      LeapMotion::Controller::EVENTS.each do |event|
        define_method("on_#{event}") { |c| events << c; latch.release }
      end
    }.new
    controller.add_listener listener
    latch.await
    controller.remove_listener listener
    refute_predicate events, :empty?
    assert_includes events, controller
  end

  def test_add_listener
    listener = LeapMotion::Listener.new
    assert controller.add_listener listener
    refute controller.add_listener listener
  end

  def test_remove_listener
    listener = LeapMotion::Listener.new
    assert controller.add_listener listener
    assert controller.remove_listener listener
    refute controller.remove_listener listener
  end

  def test_connected?
    refute controller.connected?
  end

  def test_has_focus?
    refute controller.has_focus?
  end

  def test_policy_flags
    assert_equal 0, controller.policy_flags
  end

  def test_frame
    frame = controller.frame
    refute frame.valid?
  end

  def test_frame_id
    frame = controller.frame
    assert frame.id
  end

  def test_timestamp
    frame = controller.frame
    assert frame.timestamp
  end

  def test_frame_invalid
    frame = controller.frame
    refute frame.valid?
    refute frame.invalid.valid?
  end

  def test_frame_equality
    frame = controller.frame
    assert_match 'Invalid', frame.to_s
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
leap_motion-1.0.2-x86_64-darwin-13 test/test_leap_motion.rb
leap_motion-1.0.1-x86_64-darwin-12 test/test_leap_motion.rb
leap_motion-1.0.0-x86_64-darwin-12 test/test_leap_motion.rb