module view fn test_arrow_keys_are_decoded() { assert decode([u8(0x1b), u8(`[`), u8(`A`)]).kind == .up assert decode([u8(0x1b), u8(`[`), u8(`B`)]).kind == .down assert decode([u8(0x1b), u8(`[`), u8(`C`)]).kind == .right assert decode([u8(0x1b), u8(`[`), u8(`D`)]).kind == .left assert decode([u8(0x1b), u8(`[`), u8(`5`), u8(`~`)]).kind == .page_up assert decode([u8(0x1b), u8(`[`), u8(`6`), u8(`~`)]).kind == .page_down } fn test_single_keys_are_decoded() { assert decode([u8(0x0d)]).kind == .enter assert decode([u8(0x7f)]).kind == .backspace assert decode([u8(0x09)]).kind == .tab assert decode([u8(0x03)]).kind == .interrupt assert decode([u8(0x04)]).kind == .eof assert decode([u8(0x1b)]).kind == .escape assert decode([u8(`q`)]).kind == .rune assert decode([u8(`q`)]).text == 'q' assert decode([u8(`/`)]).text == '/' } fn test_typed_text_keeps_its_bytes() { // A pasted run arrives in one read and must stay together, and a multi-byte // character must not be split into mojibake. assert decode('search'.bytes()).text == 'search' assert decode('✦'.bytes()).text == '✦' }