Class: TTYtest::Terminal

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/ttytest/terminal.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(driver_terminal) ⇒ Terminal

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of Terminal.



16
17
18
19
# File 'lib/ttytest/terminal.rb', line 16

def initialize(driver_terminal)
  @driver_terminal = driver_terminal
  @max_wait_time = TTYtest.default_max_wait_time
end

Instance Attribute Details

#max_wait_timeInteger

the maximum amount of time (in seconds) to retry assertions before failing.

Returns:

  • (Integer)

    the current value of max_wait_time



9
10
11
# File 'lib/ttytest/terminal.rb', line 9

def max_wait_time
  @max_wait_time
end

Instance Method Details

#captureCapture

Capture the current state of the terminal

Returns:

  • (Capture)

    instantaneous state of the terminal when called



134
135
136
137
138
139
140
141
142
143
144
145
# File 'lib/ttytest/terminal.rb', line 134

def_delegators :@driver_terminal,
:send_keys, :send_keys_one_at_a_time,
:send_line, :send_line_then_sleep,
:send_lines, :send_lines_then_sleep, :send_line_then_sleep_and_repeat,
:send_newline, :send_newlines,
:send_enter, :send_enters,
:send_delete, :send_deletes,
:send_backspace, :send_backspaces,
:send_left_arrow, :send_left_arrows, :send_right_arrow, :send_right_arrows,
:send_down_arrow, :send_down_arrows, :send_up_arrow, :send_up_arrows,
:send_keys_exact, :send_home, :send_end, :send_clear, :send_escape, :send_escapes,
:capture

#cursor_hidden?true, false

Returns:

  • (true, false)

See Also:



175
176
177
178
179
# File 'lib/ttytest/terminal.rb', line 175

def_delegators :capture, :print, :print_rows,
:rows, :row,
:width, :height,
:cursor_x, :cursor_y,
:cursor_visible?, :cursor_hidden?

#cursor_visible?true, false

Returns:

  • (true, false)

See Also:



175
176
177
178
179
# File 'lib/ttytest/terminal.rb', line 175

def_delegators :capture, :print, :print_rows,
:rows, :row,
:width, :height,
:cursor_x, :cursor_y,
:cursor_visible?, :cursor_hidden?

#cursor_xInteger

Returns:

  • (Integer)

See Also:



175
176
177
178
179
# File 'lib/ttytest/terminal.rb', line 175

def_delegators :capture, :print, :print_rows,
:rows, :row,
:width, :height,
:cursor_x, :cursor_y,
:cursor_visible?, :cursor_hidden?

#cursor_yInteger

Returns:

  • (Integer)

See Also:



175
176
177
178
179
# File 'lib/ttytest/terminal.rb', line 175

def_delegators :capture, :print, :print_rows,
:rows, :row,
:width, :height,
:cursor_x, :cursor_y,
:cursor_visible?, :cursor_hidden?

#heightInteger

Returns:

  • (Integer)

See Also:



175
176
177
178
179
# File 'lib/ttytest/terminal.rb', line 175

def_delegators :capture, :print, :print_rows,
:rows, :row,
:width, :height,
:cursor_x, :cursor_y,
:cursor_visible?, :cursor_hidden?

Prints the current state of the terminal to stdout. See capture to get the raw string.



175
176
177
178
179
# File 'lib/ttytest/terminal.rb', line 175

def_delegators :capture, :print, :print_rows,
:rows, :row,
:width, :height,
:cursor_x, :cursor_y,
:cursor_visible?, :cursor_hidden?

Prints the current state of the terminal as an array to stdout. See rows to get the raw array.



175
176
177
178
179
# File 'lib/ttytest/terminal.rb', line 175

def_delegators :capture, :print, :print_rows,
:rows, :row,
:width, :height,
:cursor_x, :cursor_y,
:cursor_visible?, :cursor_hidden?

#row(row) ⇒ String

Returns:

  • (String)

See Also:



175
176
177
178
179
# File 'lib/ttytest/terminal.rb', line 175

def_delegators :capture, :print, :print_rows,
:rows, :row,
:width, :height,
:cursor_x, :cursor_y,
:cursor_visible?, :cursor_hidden?

#rowsArray<String>

Returns:

  • (Array<String>)

See Also:



175
176
177
178
179
# File 'lib/ttytest/terminal.rb', line 175

def_delegators :capture, :print, :print_rows,
:rows, :row,
:width, :height,
:cursor_x, :cursor_y,
:cursor_visible?, :cursor_hidden?

#send_backspaceObject

Simulate typing the backspace key in the terminal.



# File 'lib/ttytest/terminal.rb', line 76


#send_backspaces(number_of_times) ⇒ Object

Simulates typing backspace the specified number of times.

Parameters:

  • number (Integer)

    of times to send backspace



# File 'lib/ttytest/terminal.rb', line 79


#send_clearObject

Clears the screen in the terminal using ascii clear command.



# File 'lib/ttytest/terminal.rb', line 121


#send_deleteObject

Simulate typing the delete key in the terminal.



# File 'lib/ttytest/terminal.rb', line 69


#send_deletes(number_of_times) ⇒ Object

Simulates typing delete the specified number of times.

Parameters:

  • number (Integer)

    of times to send delete



# File 'lib/ttytest/terminal.rb', line 72


#send_down_arrowObject

Simulate typing the down arrow key in the terminal.



# File 'lib/ttytest/terminal.rb', line 97


#send_down_arrows(number_of_times) ⇒ Object

Simulates typing the down arrow the specified number of times.

Parameters:

  • number (Integer)

    of times to send down arrow



# File 'lib/ttytest/terminal.rb', line 100


#send_endObject

Simulates typing in the End key in the terminal.



# File 'lib/ttytest/terminal.rb', line 118


#send_enterObject

Simulate typing enter by sending newline character to the terminal.



# File 'lib/ttytest/terminal.rb', line 62


#send_enters(number_of_times) ⇒ Object

Simulates sending newline the specified number of times.

Parameters:

  • number (Integer)

    of times to send newline



# File 'lib/ttytest/terminal.rb', line 65


#send_escapeObject

Simulates typing in the Escape (ESC) key in the terminal.



# File 'lib/ttytest/terminal.rb', line 124


#send_escapes(number_of_times) ⇒ Object

Simulates typing in the Escape (ESC) key in the terminal the specified number of times.

Parameters:

  • number (Integer)

    of times to send escape



# File 'lib/ttytest/terminal.rb', line 127


#send_homeObject

Simulates typing in the Home key in the terminal.



# File 'lib/ttytest/terminal.rb', line 115


#send_keys(*keys) ⇒ Object

Simulate typing keys into the terminal. For canonical cli’s/shells which read line by line.

Parameters:

  • keys (String)

    keys to send to the terminal



# File 'lib/ttytest/terminal.rb', line 21


#send_keys_exact(keys) ⇒ Object

Send tmux send-keys command to the terminal, such as DC or Enter, to simulate pressing that key in the terminal.

Parameters:

  • keys (String)

    the line to send to the terminal



# File 'lib/ttytest/terminal.rb', line 111


#send_keys_one_at_a_time(keys) ⇒ Object

Simulate typing keys into the terminal. For noncanonical cli’s/shells which read character by character.

Parameters:

  • keys (String)

    keys to send to the terminal



# File 'lib/ttytest/terminal.rb', line 25


#send_left_arrowObject

Simulate typing the left arrow key in the terminal.



# File 'lib/ttytest/terminal.rb', line 83


#send_left_arrows(number_of_times) ⇒ Object

Simulates typing left arrow the specified number of times.

Parameters:

  • number (Integer)

    of times to send left arrow



# File 'lib/ttytest/terminal.rb', line 86


#send_line(line) ⇒ Object

Simulate sending a line to the terminal and hitting enter. Can send multiline input, but if you want to send several commands at once, see send_lines(lines)

Parameters:

  • line (String)

    the line to send to the terminal



# File 'lib/ttytest/terminal.rb', line 29


#send_line_then_sleep(line, sleep_time) ⇒ Object

Simulate sending a line to the terminal and hitting enter, then sleeping for sleep_time.

Parameters:

  • line (String)

    the line to send to the terminal

  • sleep_time (Integer)

    the amount of time to sleep after sending the line



# File 'lib/ttytest/terminal.rb', line 34


#send_line_then_sleep_and_repeat(lines, sleep_time) ⇒ Object

Simulate sending a line to the terminal and hitting enter, then sleeping for sleep_time. before sending the next line.

Parameters:

  • line (String)

    the line to send to the terminal

  • sleep_time (Integer)

    the amount of time to sleep after sending the line



# File 'lib/ttytest/terminal.rb', line 49


#send_lines(lines) ⇒ Object

Simulate sending a multiple lines to the terminal and hitting enter after each line.

Parameters:

  • lines (String)

    array of lines to send to the terminal



# File 'lib/ttytest/terminal.rb', line 39


#send_lines_then_sleep(lines, sleep_time) ⇒ Object

Simulate sending multiples lines to the terminal and hitting enter after each line. After sending all lines, then wait for the sleep_time.

Parameters:

  • line (String)

    the line to send to the terminal

  • sleep_time (Integer)

    the amount of time to sleep after sending the line



# File 'lib/ttytest/terminal.rb', line 43


#send_newlineObject

Simulate typing enter by sending newline character to the terminal.



# File 'lib/ttytest/terminal.rb', line 55


#send_newlines(number_of_times) ⇒ Object

Simulates sending newline the specified number of times.

Parameters:

  • number_of_times (Integer)

    number of times to send newline



# File 'lib/ttytest/terminal.rb', line 58


#send_right_arrowObject

Simulate typing the right arrow key in the terminal.



# File 'lib/ttytest/terminal.rb', line 90


#send_right_arrows(number_of_times) ⇒ Object

Simulates typing right arrow the specified number of times.

Parameters:

  • number (Integer)

    of times to send right arrow



# File 'lib/ttytest/terminal.rb', line 93


#send_up_arrowObject

Simulate typing the up arrow key in the terminal.



# File 'lib/ttytest/terminal.rb', line 104


#send_up_arrows(number_of_times) ⇒ Object

Simulates typing the up arrow the specified number of times.

Parameters:

  • number (Integer)

    of times to send up arrow



# File 'lib/ttytest/terminal.rb', line 107


#widthInteger

Returns:

  • (Integer)

See Also:



175
176
177
178
179
# File 'lib/ttytest/terminal.rb', line 175

def_delegators :capture, :print, :print_rows,
:rows, :row,
:width, :height,
:cursor_x, :cursor_y,
:cursor_visible?, :cursor_hidden?