1/* 2 * Copyright (C) 2013 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package com.android.inputmethod.latin.utils; 18 19import android.test.AndroidTestCase; 20import android.test.suitebuilder.annotation.SmallTest; 21 22import com.android.inputmethod.latin.common.Constants; 23 24import java.util.Locale; 25 26@SmallTest 27public class RecapitalizeStatusTests extends AndroidTestCase { 28 private static final int[] SPACE = { Constants.CODE_SPACE }; 29 30 public void testTrim() { 31 final RecapitalizeStatus status = new RecapitalizeStatus(); 32 status.start(30, 40, "abcdefghij", Locale.ENGLISH, SPACE); 33 status.trim(); 34 assertEquals("abcdefghij", status.getRecapitalizedString()); 35 assertEquals(30, status.getNewCursorStart()); 36 assertEquals(40, status.getNewCursorEnd()); 37 38 status.start(30, 44, " abcdefghij", Locale.ENGLISH, SPACE); 39 status.trim(); 40 assertEquals("abcdefghij", status.getRecapitalizedString()); 41 assertEquals(34, status.getNewCursorStart()); 42 assertEquals(44, status.getNewCursorEnd()); 43 44 status.start(30, 40, "abcdefgh ", Locale.ENGLISH, SPACE); 45 status.trim(); 46 assertEquals("abcdefgh", status.getRecapitalizedString()); 47 assertEquals(30, status.getNewCursorStart()); 48 assertEquals(38, status.getNewCursorEnd()); 49 50 status.start(30, 45, " abcdefghij ", Locale.ENGLISH, SPACE); 51 status.trim(); 52 assertEquals("abcdefghij", status.getRecapitalizedString()); 53 assertEquals(33, status.getNewCursorStart()); 54 assertEquals(43, status.getNewCursorEnd()); 55 } 56 57 public void testRotate() { 58 final RecapitalizeStatus status = new RecapitalizeStatus(); 59 status.start(29, 40, "abcd efghij", Locale.ENGLISH, SPACE); 60 status.rotate(); 61 assertEquals("Abcd Efghij", status.getRecapitalizedString()); 62 assertEquals(29, status.getNewCursorStart()); 63 assertEquals(40, status.getNewCursorEnd()); 64 status.rotate(); 65 assertEquals("ABCD EFGHIJ", status.getRecapitalizedString()); 66 status.rotate(); 67 assertEquals("abcd efghij", status.getRecapitalizedString()); 68 status.rotate(); 69 assertEquals("Abcd Efghij", status.getRecapitalizedString()); 70 71 status.start(29, 40, "Abcd Efghij", Locale.ENGLISH, SPACE); 72 status.rotate(); 73 assertEquals("ABCD EFGHIJ", status.getRecapitalizedString()); 74 assertEquals(29, status.getNewCursorStart()); 75 assertEquals(40, status.getNewCursorEnd()); 76 status.rotate(); 77 assertEquals("abcd efghij", status.getRecapitalizedString()); 78 status.rotate(); 79 assertEquals("Abcd Efghij", status.getRecapitalizedString()); 80 status.rotate(); 81 assertEquals("ABCD EFGHIJ", status.getRecapitalizedString()); 82 83 status.start(29, 40, "ABCD EFGHIJ", Locale.ENGLISH, SPACE); 84 status.rotate(); 85 assertEquals("abcd efghij", status.getRecapitalizedString()); 86 assertEquals(29, status.getNewCursorStart()); 87 assertEquals(40, status.getNewCursorEnd()); 88 status.rotate(); 89 assertEquals("Abcd Efghij", status.getRecapitalizedString()); 90 status.rotate(); 91 assertEquals("ABCD EFGHIJ", status.getRecapitalizedString()); 92 status.rotate(); 93 assertEquals("abcd efghij", status.getRecapitalizedString()); 94 95 status.start(29, 39, "AbCDefghij", Locale.ENGLISH, SPACE); 96 status.rotate(); 97 assertEquals("abcdefghij", status.getRecapitalizedString()); 98 assertEquals(29, status.getNewCursorStart()); 99 assertEquals(39, status.getNewCursorEnd()); 100 status.rotate(); 101 assertEquals("Abcdefghij", status.getRecapitalizedString()); 102 status.rotate(); 103 assertEquals("ABCDEFGHIJ", status.getRecapitalizedString()); 104 status.rotate(); 105 assertEquals("AbCDefghij", status.getRecapitalizedString()); 106 status.rotate(); 107 assertEquals("abcdefghij", status.getRecapitalizedString()); 108 109 status.start(29, 40, "Abcd efghij", Locale.ENGLISH, SPACE); 110 status.rotate(); 111 assertEquals("abcd efghij", status.getRecapitalizedString()); 112 assertEquals(29, status.getNewCursorStart()); 113 assertEquals(40, status.getNewCursorEnd()); 114 status.rotate(); 115 assertEquals("Abcd Efghij", status.getRecapitalizedString()); 116 status.rotate(); 117 assertEquals("ABCD EFGHIJ", status.getRecapitalizedString()); 118 status.rotate(); 119 assertEquals("Abcd efghij", status.getRecapitalizedString()); 120 status.rotate(); 121 assertEquals("abcd efghij", status.getRecapitalizedString()); 122 123 status.start(30, 34, "grüß", Locale.GERMAN, SPACE); 124 status.rotate(); 125 assertEquals("Grüß", status.getRecapitalizedString()); 126 assertEquals(30, status.getNewCursorStart()); 127 assertEquals(34, status.getNewCursorEnd()); 128 status.rotate(); 129 assertEquals("GRÜSS", status.getRecapitalizedString()); 130 assertEquals(30, status.getNewCursorStart()); 131 assertEquals(35, status.getNewCursorEnd()); 132 status.rotate(); 133 assertEquals("grüß", status.getRecapitalizedString()); 134 assertEquals(30, status.getNewCursorStart()); 135 assertEquals(34, status.getNewCursorEnd()); 136 status.rotate(); 137 assertEquals("Grüß", status.getRecapitalizedString()); 138 assertEquals(30, status.getNewCursorStart()); 139 assertEquals(34, status.getNewCursorEnd()); 140 141 status.start(30, 33, "œuf", Locale.FRENCH, SPACE); 142 status.rotate(); 143 assertEquals("Œuf", status.getRecapitalizedString()); 144 assertEquals(30, status.getNewCursorStart()); 145 assertEquals(33, status.getNewCursorEnd()); 146 status.rotate(); 147 assertEquals("ŒUF", status.getRecapitalizedString()); 148 assertEquals(30, status.getNewCursorStart()); 149 assertEquals(33, status.getNewCursorEnd()); 150 status.rotate(); 151 assertEquals("œuf", status.getRecapitalizedString()); 152 assertEquals(30, status.getNewCursorStart()); 153 assertEquals(33, status.getNewCursorEnd()); 154 status.rotate(); 155 assertEquals("Œuf", status.getRecapitalizedString()); 156 assertEquals(30, status.getNewCursorStart()); 157 assertEquals(33, status.getNewCursorEnd()); 158 159 status.start(30, 33, "œUf", Locale.FRENCH, SPACE); 160 status.rotate(); 161 assertEquals("œuf", status.getRecapitalizedString()); 162 assertEquals(30, status.getNewCursorStart()); 163 assertEquals(33, status.getNewCursorEnd()); 164 status.rotate(); 165 assertEquals("Œuf", status.getRecapitalizedString()); 166 assertEquals(30, status.getNewCursorStart()); 167 assertEquals(33, status.getNewCursorEnd()); 168 status.rotate(); 169 assertEquals("ŒUF", status.getRecapitalizedString()); 170 assertEquals(30, status.getNewCursorStart()); 171 assertEquals(33, status.getNewCursorEnd()); 172 status.rotate(); 173 assertEquals("œUf", status.getRecapitalizedString()); 174 assertEquals(30, status.getNewCursorStart()); 175 assertEquals(33, status.getNewCursorEnd()); 176 status.rotate(); 177 assertEquals("œuf", status.getRecapitalizedString()); 178 assertEquals(30, status.getNewCursorStart()); 179 assertEquals(33, status.getNewCursorEnd()); 180 181 status.start(30, 35, "école", Locale.FRENCH, SPACE); 182 status.rotate(); 183 assertEquals("École", status.getRecapitalizedString()); 184 assertEquals(30, status.getNewCursorStart()); 185 assertEquals(35, status.getNewCursorEnd()); 186 status.rotate(); 187 assertEquals("ÉCOLE", status.getRecapitalizedString()); 188 assertEquals(30, status.getNewCursorStart()); 189 assertEquals(35, status.getNewCursorEnd()); 190 status.rotate(); 191 assertEquals("école", status.getRecapitalizedString()); 192 assertEquals(30, status.getNewCursorStart()); 193 assertEquals(35, status.getNewCursorEnd()); 194 status.rotate(); 195 assertEquals("École", status.getRecapitalizedString()); 196 assertEquals(30, status.getNewCursorStart()); 197 assertEquals(35, status.getNewCursorEnd()); 198 } 199} 200