Index: LayoutTests/fast/ime/inputmethodcontext-composition.html |
diff --git a/LayoutTests/fast/ime/inputmethodcontext-composition.html b/LayoutTests/fast/ime/inputmethodcontext-composition.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..df2e35839846aa15f7882a1665e4c2add78d0967 |
--- /dev/null |
+++ b/LayoutTests/fast/ime/inputmethodcontext-composition.html |
@@ -0,0 +1,69 @@ |
+<html> |
+<head> |
+<script src="../js/resources/js-test-pre.js"></script> |
+</head> |
+<body> |
+<input id="input"><input id="input2"><input id="input3"> |
+<script> |
+description('This tests composition attribute of InputMethodContext.'); |
+ |
+var input = document.getElementById('input'); |
+var input2 = document.getElementById('input2'); |
+ |
+var context = input.inputMethodContext; |
+var composition = context.composition; |
+shouldBeEqualToString('composition.text', ''); |
+ |
+var context2 = input2.inputMethodContext; |
+var composition2 = context2.composition; |
+shouldBeEqualToString('composition2.text', ''); |
+ |
+debug('Testing IME on an input element.'); |
+input.focus(); |
+textInputController.setMarkedText('abcde', 1, 3); |
+shouldBeEqualToString('composition.text', 'abcde'); |
+shouldBeEqualToString('composition2.text', ''); |
+shouldEvaluateTo('composition.selectionStart', 1); |
+shouldEvaluateTo('composition.selectionEnd', 4); |
+shouldEvaluateTo('composition.getSegments().length', 3); |
+textInputController.setMarkedText('abcde', 0, 3); |
+shouldEvaluateTo('composition.getSegments().length', 2); |
+textInputController.setMarkedText('abcde', 2, 3); |
+shouldEvaluateTo('composition.getSegments().length', 2); |
+context.confirmComposition(); |
+shouldBeEqualToString('composition.text', ''); |
+shouldEvaluateTo('composition.getSegments().length', 0); |
+shouldBeEqualToString('input.value', 'abcde'); |
+shouldBeEqualToString('input2.value', ''); |
+ |
+debug('Testing IME on another input element.'); |
+input2.focus(); |
+shouldBeEqualToString('input.value', 'abcde'); |
+shouldBeEqualToString('input2.value', ''); |
+textInputController.setComposition('fghij'); |
+shouldEvaluateTo('composition.getSegments().length', 0); |
+shouldEvaluateTo('composition2.getSegments().length', 1); |
+shouldBeEqualToString('input.value', 'abcde'); |
+shouldBeEqualToString('input2.value', 'fghij'); |
+shouldBeEqualToString('composition.text', ''); |
+shouldBeEqualToString('composition2.text', 'fghij'); |
+context2.confirmComposition(); |
+shouldBeEqualToString('composition2.text', ''); |
+shouldBeEqualToString('input.value', 'abcde'); |
+shouldBeEqualToString('input2.value', 'fghij'); |
+ |
+debug('Testing when context is obtained after some IME input.'); |
+var input3 = document.getElementById('input3'); |
+input3.focus(); |
+shouldBeEqualToString('input3.value', ''); |
+textInputController.setComposition('klmno'); |
+shouldBeEqualToString('input3.value', 'klmno'); |
+var context3 = input3.inputMethodContext; |
+var composition3 = context3.composition; |
+shouldBeEqualToString('composition3.text', 'klmno'); |
+context3.confirmComposition(); |
+shouldBeEqualToString('composition3.text', ''); |
+</script> |
+<script src="../js/resources/js-test-post.js"></script> |
+</body> |
+</html> |