# This file contains a scenario for testing transliteration candidate.
# See also http://b/issue?id=7132535.

# Enable IME
SEND_KEY	ON
RESET_CONTEXT

# Set to Qwerty kana mode.
SET_MOBILE_REQUEST
SET_CONFIG	use_kana_modifier_insensitive_conversion	true
UPDATE_MOBILE_KEYBOARD	TWELVE_KEYS_TO_HIRAGANA	SPACE_OR_CONVERT_KEEPING_COMPOSITION
SWITCH_INPUT_MODE	HIRAGANA

# Type "てつとう"
SEND_KEYS	4444
SEND_KEY	RIGHT
SEND_KEYS	444
SEND_KEY	RIGHT
SEND_KEYS	44444111

# Enter to conversion mode. The result should be "鉄道" for now.
SEND_KEY	SPACE
EXPECT_PREEDIT	鉄道

# Move the caret to the beginnig, and back to the end.
SEND_KEY	LEFT
SEND_KEY	LEFT
SEND_KEY	LEFT
SEND_KEY	RIGHT
SEND_KEY	RIGHT
SEND_KEY	RIGHT

# The candidate is still "鉄道"
EXPECT_PREEDIT	鉄道
