1shared_examples 'special characters' do 2 describe 'a special character in the buffer should be treated like any other character' do 3 it 'asterisk' do 4 with_history('echo "hello*"', 'echo "hello."') do 5 session.send_string('echo "hello*') 6 wait_for { session.content }.to eq('echo "hello*"') 7 end 8 end 9 10 it 'question mark' do 11 with_history('echo "hello?"', 'echo "hello."') do 12 session.send_string('echo "hello?') 13 wait_for { session.content }.to eq('echo "hello?"') 14 end 15 end 16 17 it 'backslash' do 18 with_history('echo "hello\nworld"') do 19 session.send_string('echo "hello\\') 20 wait_for { session.content }.to eq('echo "hello\nworld"') 21 end 22 end 23 24 it 'double backslash' do 25 with_history('echo "\\\\"') do 26 session.send_string('echo "\\\\') 27 wait_for { session.content }.to eq('echo "\\\\"') 28 end 29 end 30 31 it 'tilde' do 32 with_history('echo ~/foo') do 33 session.send_string('echo ~') 34 wait_for { session.content }.to eq('echo ~/foo') 35 end 36 end 37 38 it 'parentheses' do 39 with_history('echo "$(ls foo)"') do 40 session.send_string('echo "$(') 41 wait_for { session.content }.to eq('echo "$(ls foo)"') 42 end 43 end 44 45 it 'square bracket' do 46 with_history('echo "$history[123]"') do 47 session.send_string('echo "$history[') 48 wait_for { session.content }.to eq('echo "$history[123]"') 49 session.send_string('123]') 50 wait_for { session.content }.to eq('echo "$history[123]"') 51 end 52 end 53 54 it 'octothorpe' do 55 with_history('echo "#yolo"') do 56 session.send_string('echo "#') 57 wait_for { session.content }.to eq('echo "#yolo"') 58 end 59 end 60 61 it 'caret' do 62 with_history('echo "^A"', 'echo "^B"') do 63 session.send_string('echo "^A') 64 wait_for { session.content }.to eq('echo "^A"') 65 end 66 end 67 68 it 'dash' do 69 with_history('-foo() {}') do 70 session.send_string('-') 71 wait_for { session.content }.to eq('-foo() {}') 72 end 73 end 74 end 75end 76