# Test scenario for session/session_handler_scenario_test

# Tests for Commit

SET_CONFIG	preedit_method	ROMAN
SWITCH_INPUT_MODE	HIRAGANA
SET_CONFIG	session_keymap	MSIME
SEND_KEY	ON

# Commit

RESET_CONTEXT
SEND_KEYS	a
EXPECT_PREEDIT	あ
EXPECT_RESULT
SEND_KEY	ENTER
EXPECT_RESULT	あ

RESET_CONTEXT
SEND_KEYS	watashinonamaehanakanodesu
EXPECT_PREEDIT	わたしのなまえはなかのです
EXPECT_RESULT
SEND_KEY	SPACE
EXPECT_SEGMENTS_SIZE	3
EXPECT_PREEDIT	私の名前は中ノです
SEND_KEY	ENTER
EXPECT_RESULT	私の名前は中ノです

# Commit first suggestion

RESET_CONTEXT
SEND_KEYS	sajesuto
SEND_KEY	TAB
EXPECT_PREEDIT	サジェストしろ
SEND_KEY	ENTER
EXPECT_RESULT	サジェストしろ

RESET_CONTEXT
SEND_KEYS	sajesuto
EXPECT_PREEDIT	さじぇすと
SEND_KEY	SHIFT ENTER
EXPECT_RESULT	サジェストしろ

# Commit segment
RESET_CONTEXT
SEND_KEYS	watashinonamaehanakanodesu
EXPECT_PREEDIT	わたしのなまえはなかのです
EXPECT_RESULT
SEND_KEY	SPACE
EXPECT_SEGMENTS_SIZE	3
EXPECT_PREEDIT	私の名前は中ノです
SEND_KEY	CTRL DOWN
EXPECT_RESULT	私の
EXPECT_PREEDIT	名前は中ノです
SEND_KEY	CTRL n
EXPECT_RESULT	名前は
EXPECT_PREEDIT	中ノです


