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 17 package com.android.inputmethod.latin.utils; 18 19 import android.test.AndroidTestCase; 20 import android.test.suitebuilder.annotation.SmallTest; 21 22 import java.util.Locale; 23 24 @SmallTest 25 public class RecapitalizeStatusTests extends AndroidTestCase { 26 public void testTrim() { 27 final RecapitalizeStatus status = new RecapitalizeStatus(); 28 status.initialize(30, 40, "abcdefghij", Locale.ENGLISH, " "); 29 status.trim(); 30 assertEquals("abcdefghij", status.getRecapitalizedString()); 31 assertEquals(30, status.getNewCursorStart()); 32 assertEquals(40, status.getNewCursorEnd()); 33 34 status.initialize(30, 44, " abcdefghij", Locale.ENGLISH, " "); 35 status.trim(); 36 assertEquals("abcdefghij", status.getRecapitalizedString()); 37 assertEquals(34, status.getNewCursorStart()); 38 assertEquals(44, status.getNewCursorEnd()); 39 40 status.initialize(30, 40, "abcdefgh ", Locale.ENGLISH, " "); 41 status.trim(); 42 assertEquals("abcdefgh", status.getRecapitalizedString()); 43 assertEquals(30, status.getNewCursorStart()); 44 assertEquals(38, status.getNewCursorEnd()); 45 46 status.initialize(30, 45, " abcdefghij ", Locale.ENGLISH, " "); 47 status.trim(); 48 assertEquals("abcdefghij", status.getRecapitalizedString()); 49 assertEquals(33, status.getNewCursorStart()); 50 assertEquals(43, status.getNewCursorEnd()); 51 } 52 53 public void testRotate() { 54 final RecapitalizeStatus status = new RecapitalizeStatus(); 55 status.initialize(29, 40, "abcd efghij", Locale.ENGLISH, " "); 56 status.rotate(); 57 assertEquals("Abcd Efghij", status.getRecapitalizedString()); 58 assertEquals(29, status.getNewCursorStart()); 59 assertEquals(40, status.getNewCursorEnd()); 60 status.rotate(); 61 assertEquals("ABCD EFGHIJ", status.getRecapitalizedString()); 62 status.rotate(); 63 assertEquals("abcd efghij", status.getRecapitalizedString()); 64 status.rotate(); 65 assertEquals("Abcd Efghij", status.getRecapitalizedString()); 66 67 status.initialize(29, 40, "Abcd Efghij", Locale.ENGLISH, " "); 68 status.rotate(); 69 assertEquals("ABCD EFGHIJ", status.getRecapitalizedString()); 70 assertEquals(29, status.getNewCursorStart()); 71 assertEquals(40, status.getNewCursorEnd()); 72 status.rotate(); 73 assertEquals("abcd efghij", status.getRecapitalizedString()); 74 status.rotate(); 75 assertEquals("Abcd Efghij", status.getRecapitalizedString()); 76 status.rotate(); 77 assertEquals("ABCD EFGHIJ", status.getRecapitalizedString()); 78 79 status.initialize(29, 40, "ABCD EFGHIJ", Locale.ENGLISH, " "); 80 status.rotate(); 81 assertEquals("abcd efghij", status.getRecapitalizedString()); 82 assertEquals(29, status.getNewCursorStart()); 83 assertEquals(40, status.getNewCursorEnd()); 84 status.rotate(); 85 assertEquals("Abcd Efghij", status.getRecapitalizedString()); 86 status.rotate(); 87 assertEquals("ABCD EFGHIJ", status.getRecapitalizedString()); 88 status.rotate(); 89 assertEquals("abcd efghij", status.getRecapitalizedString()); 90 91 status.initialize(29, 39, "AbCDefghij", Locale.ENGLISH, " "); 92 status.rotate(); 93 assertEquals("abcdefghij", status.getRecapitalizedString()); 94 assertEquals(29, status.getNewCursorStart()); 95 assertEquals(39, status.getNewCursorEnd()); 96 status.rotate(); 97 assertEquals("Abcdefghij", status.getRecapitalizedString()); 98 status.rotate(); 99 assertEquals("ABCDEFGHIJ", status.getRecapitalizedString()); 100 status.rotate(); 101 assertEquals("AbCDefghij", status.getRecapitalizedString()); 102 status.rotate(); 103 assertEquals("abcdefghij", status.getRecapitalizedString()); 104 105 status.initialize(29, 40, "Abcd efghij", Locale.ENGLISH, " "); 106 status.rotate(); 107 assertEquals("abcd efghij", status.getRecapitalizedString()); 108 assertEquals(29, status.getNewCursorStart()); 109 assertEquals(40, status.getNewCursorEnd()); 110 status.rotate(); 111 assertEquals("Abcd Efghij", status.getRecapitalizedString()); 112 status.rotate(); 113 assertEquals("ABCD EFGHIJ", status.getRecapitalizedString()); 114 status.rotate(); 115 assertEquals("Abcd efghij", status.getRecapitalizedString()); 116 status.rotate(); 117 assertEquals("abcd efghij", status.getRecapitalizedString()); 118 119 status.initialize(30, 34, "gr", Locale.GERMAN, " "); status.rotate(); 120 assertEquals("Gr", status.getRecapitalizedString()); 121 assertEquals(30, status.getNewCursorStart()); 122 assertEquals(34, status.getNewCursorEnd()); 123 status.rotate(); 124 assertEquals("GRSS", status.getRecapitalizedString()); 125 assertEquals(30, status.getNewCursorStart()); 126 assertEquals(35, status.getNewCursorEnd()); 127 status.rotate(); 128 assertEquals("gr", status.getRecapitalizedString()); 129 assertEquals(30, status.getNewCursorStart()); 130 assertEquals(34, status.getNewCursorEnd()); 131 status.rotate(); 132 assertEquals("Gr", status.getRecapitalizedString()); 133 assertEquals(30, status.getNewCursorStart()); 134 assertEquals(34, status.getNewCursorEnd()); 135 136 status.initialize(30, 33, "uf", Locale.FRENCH, " "); status.rotate(); 137 assertEquals("uf", status.getRecapitalizedString()); 138 assertEquals(30, status.getNewCursorStart()); 139 assertEquals(33, status.getNewCursorEnd()); 140 status.rotate(); 141 assertEquals("UF", status.getRecapitalizedString()); 142 assertEquals(30, status.getNewCursorStart()); 143 assertEquals(33, status.getNewCursorEnd()); 144 status.rotate(); 145 assertEquals("uf", status.getRecapitalizedString()); 146 assertEquals(30, status.getNewCursorStart()); 147 assertEquals(33, status.getNewCursorEnd()); 148 status.rotate(); 149 assertEquals("uf", status.getRecapitalizedString()); 150 assertEquals(30, status.getNewCursorStart()); 151 assertEquals(33, status.getNewCursorEnd()); 152 153 status.initialize(30, 33, "Uf", Locale.FRENCH, " "); status.rotate(); 154 assertEquals("uf", status.getRecapitalizedString()); 155 assertEquals(30, status.getNewCursorStart()); 156 assertEquals(33, status.getNewCursorEnd()); 157 status.rotate(); 158 assertEquals("uf", status.getRecapitalizedString()); 159 assertEquals(30, status.getNewCursorStart()); 160 assertEquals(33, status.getNewCursorEnd()); 161 status.rotate(); 162 assertEquals("UF", status.getRecapitalizedString()); 163 assertEquals(30, status.getNewCursorStart()); 164 assertEquals(33, status.getNewCursorEnd()); 165 status.rotate(); 166 assertEquals("Uf", status.getRecapitalizedString()); 167 assertEquals(30, status.getNewCursorStart()); 168 assertEquals(33, status.getNewCursorEnd()); 169 status.rotate(); 170 assertEquals("uf", status.getRecapitalizedString()); 171 assertEquals(30, status.getNewCursorStart()); 172 assertEquals(33, status.getNewCursorEnd()); 173 174 status.initialize(30, 35, "cole", Locale.FRENCH, " "); status.rotate(); 175 assertEquals("cole", status.getRecapitalizedString()); 176 assertEquals(30, status.getNewCursorStart()); 177 assertEquals(35, status.getNewCursorEnd()); 178 status.rotate(); 179 assertEquals("COLE", status.getRecapitalizedString()); 180 assertEquals(30, status.getNewCursorStart()); 181 assertEquals(35, status.getNewCursorEnd()); 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 } 191 } 192