Sha256: 6ab3b0e12a0b53e1ea9ab550a1d1062fab7673f306707945e91fb64c2f16980f

Contents?: true

Size: 1.45 KB

Versions: 12

Compression:

Stored size: 1.45 KB

Contents

require 'test_helper'
require 'vedeu/support/input'

module Vedeu
  describe Input do
    describe '.capture' do
      keypresses = {
        "\r"      => :enter,
        "\t"      => :tab,
        # "\e"      => :escape, # handled below in separate test
        "\e[A"    => :up,
        "\e[B"    => :down,
        "\e[C"    => :right,
        "\e[D"    => :left,
        "\e[5~"   => :page_up,
        "\e[6~"   => :page_down,
        "\e[H"    => :home,
        "\e[3~"   => :delete,
        "\e[F"    => :end,
        "\eOP"    => :f1,
        "\eOQ"    => :f2,
        "\eOR"    => :f3,
        "\eOS"    => :f4,
        "\e[15~"  => :f5,
        "\e[17~"  => :f6,
        "\e[18~"  => :f7,
        "\e[19~"  => :f8,
        "\e[20~"  => :f9,
        "\e[21~"  => :f10,
        "\e[23~"  => :f11,
        "\e[24~"  => :f12,
        "\e[1;2P" => :print_screen,
        "\e[1;2Q" => :scroll_lock,
        "\e[1;2R" => :pause_break,
        "\u007F"  => :backspace,
        "k"       => "k"
      }

      keypresses.each do |keypress, value|
        it 'triggers a :key event with the key pressed' do
          Terminal.stub :input, keypress do
            Vedeu.stub :trigger, value do
              Input.capture.must_equal(value)
            end
          end
        end
      end

      it 'switches the terminal mode when escape is pressed' do
        Terminal.stub :input, "\e" do
          proc { Input.capture }.must_raise(ModeSwitch)
        end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
vedeu-0.1.8 test/lib/vedeu/support/input_test.rb
vedeu-0.1.7 test/lib/vedeu/support/input_test.rb
vedeu-0.1.6 test/lib/vedeu/support/input_test.rb
vedeu-0.1.5 test/lib/vedeu/support/input_test.rb
vedeu-0.1.4 test/lib/vedeu/support/input_test.rb
vedeu-0.1.3 test/lib/vedeu/support/input_test.rb
vedeu-0.1.2 test/lib/vedeu/support/input_test.rb
vedeu-0.1.1 test/lib/vedeu/support/input_test.rb
vedeu-0.1.0 test/lib/vedeu/support/input_test.rb
vedeu-0.0.42 test/lib/vedeu/support/input_test.rb
vedeu-0.0.41 test/lib/vedeu/support/input_test.rb
vedeu-0.0.40 test/lib/vedeu/support/input_test.rb