| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/chromeos/input_method/candidate_window_view.h" | 5 #include "chrome/browser/chromeos/input_method/candidate_window_view.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/strings/stringprintf.h" | 9 #include "base/strings/stringprintf.h" |
| 10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| (...skipping 21 matching lines...) Expand all Loading... |
| 32 "Sample Description Title 2", | 32 "Sample Description Title 2", |
| 33 "Sample Description Title 3", | 33 "Sample Description Title 3", |
| 34 }; | 34 }; |
| 35 const char* kSampleDescriptionBody[] = { | 35 const char* kSampleDescriptionBody[] = { |
| 36 "Sample Description Body 1", | 36 "Sample Description Body 1", |
| 37 "Sample Description Body 2", | 37 "Sample Description Body 2", |
| 38 "Sample Description Body 3", | 38 "Sample Description Body 3", |
| 39 }; | 39 }; |
| 40 | 40 |
| 41 void InitCandidateWindow(size_t page_size, | 41 void InitCandidateWindow(size_t page_size, |
| 42 CandidateWindow* candidate_window) { | 42 ui::CandidateWindow* candidate_window) { |
| 43 candidate_window->set_cursor_position(0); | 43 candidate_window->set_cursor_position(0); |
| 44 candidate_window->set_page_size(page_size); | 44 candidate_window->set_page_size(page_size); |
| 45 candidate_window->mutable_candidates()->clear(); | 45 candidate_window->mutable_candidates()->clear(); |
| 46 candidate_window->set_orientation(CandidateWindow::VERTICAL); | 46 candidate_window->set_orientation(ui::CandidateWindow::VERTICAL); |
| 47 } | 47 } |
| 48 | 48 |
| 49 void InitCandidateWindowWithCandidatesFilled( | 49 void InitCandidateWindowWithCandidatesFilled( |
| 50 size_t page_size, | 50 size_t page_size, |
| 51 CandidateWindow* candidate_window) { | 51 ui::CandidateWindow* candidate_window) { |
| 52 InitCandidateWindow(page_size, candidate_window); | 52 InitCandidateWindow(page_size, candidate_window); |
| 53 for (size_t i = 0; i < page_size; ++i) { | 53 for (size_t i = 0; i < page_size; ++i) { |
| 54 CandidateWindow::Entry entry; | 54 ui::CandidateWindow::Entry entry; |
| 55 entry.value = base::StringPrintf("value %lld", | 55 entry.value = base::StringPrintf("value %lld", |
| 56 static_cast<unsigned long long>(i)); | 56 static_cast<unsigned long long>(i)); |
| 57 entry.label = base::StringPrintf("%lld", | 57 entry.label = base::StringPrintf("%lld", |
| 58 static_cast<unsigned long long>(i)); | 58 static_cast<unsigned long long>(i)); |
| 59 candidate_window->mutable_candidates()->push_back(entry); | 59 candidate_window->mutable_candidates()->push_back(entry); |
| 60 } | 60 } |
| 61 } | 61 } |
| 62 | 62 |
| 63 } // namespace | 63 } // namespace |
| 64 | 64 |
| (...skipping 22 matching lines...) Expand all Loading... |
| 87 } | 87 } |
| 88 | 88 |
| 89 CandidateView* GetCandidateAt(size_t i) { | 89 CandidateView* GetCandidateAt(size_t i) { |
| 90 return candidate_window_view_->candidate_views_[i]; | 90 return candidate_window_view_->candidate_views_[i]; |
| 91 } | 91 } |
| 92 | 92 |
| 93 void SelectCandidateAt(int index_in_page) { | 93 void SelectCandidateAt(int index_in_page) { |
| 94 candidate_window_view_->SelectCandidateAt(index_in_page); | 94 candidate_window_view_->SelectCandidateAt(index_in_page); |
| 95 } | 95 } |
| 96 | 96 |
| 97 void MaybeInitializeCandidateViews(const CandidateWindow& candidate_window) { | 97 void MaybeInitializeCandidateViews( |
| 98 const ui::CandidateWindow& candidate_window) { |
| 98 candidate_window_view_->MaybeInitializeCandidateViews(candidate_window); | 99 candidate_window_view_->MaybeInitializeCandidateViews(candidate_window); |
| 99 } | 100 } |
| 100 | 101 |
| 101 void ExpectLabels(const std::string& shortcut, | 102 void ExpectLabels(const std::string& shortcut, |
| 102 const std::string& candidate, | 103 const std::string& candidate, |
| 103 const std::string& annotation, | 104 const std::string& annotation, |
| 104 const CandidateView* row) { | 105 const CandidateView* row) { |
| 105 EXPECT_EQ(shortcut, base::UTF16ToUTF8(row->shortcut_label_->text())); | 106 EXPECT_EQ(shortcut, base::UTF16ToUTF8(row->shortcut_label_->text())); |
| 106 EXPECT_EQ(candidate, base::UTF16ToUTF8(row->candidate_label_->text())); | 107 EXPECT_EQ(candidate, base::UTF16ToUTF8(row->candidate_label_->text())); |
| 107 EXPECT_EQ(annotation, base::UTF16ToUTF8(row->annotation_label_->text())); | 108 EXPECT_EQ(annotation, base::UTF16ToUTF8(row->annotation_label_->text())); |
| 108 } | 109 } |
| 109 | 110 |
| 110 private: | 111 private: |
| 111 // owned by |parent_|. | 112 // owned by |parent_|. |
| 112 CandidateWindowView* candidate_window_view_; | 113 CandidateWindowView* candidate_window_view_; |
| 113 | 114 |
| 114 DISALLOW_COPY_AND_ASSIGN(CandidateWindowViewTest); | 115 DISALLOW_COPY_AND_ASSIGN(CandidateWindowViewTest); |
| 115 }; | 116 }; |
| 116 | 117 |
| 117 TEST_F(CandidateWindowViewTest, UpdateCandidatesTest_CursorVisibility) { | 118 TEST_F(CandidateWindowViewTest, UpdateCandidatesTest_CursorVisibility) { |
| 118 // Visible (by default) cursor. | 119 // Visible (by default) cursor. |
| 119 CandidateWindow candidate_window; | 120 ui::CandidateWindow candidate_window; |
| 120 const int candidate_window_size = 9; | 121 const int candidate_window_size = 9; |
| 121 InitCandidateWindowWithCandidatesFilled(candidate_window_size, | 122 InitCandidateWindowWithCandidatesFilled(candidate_window_size, |
| 122 &candidate_window); | 123 &candidate_window); |
| 123 candidate_window_view()->UpdateCandidates(candidate_window); | 124 candidate_window_view()->UpdateCandidates(candidate_window); |
| 124 EXPECT_EQ(0, selected_candidate_index_in_page()); | 125 EXPECT_EQ(0, selected_candidate_index_in_page()); |
| 125 | 126 |
| 126 // Invisible cursor. | 127 // Invisible cursor. |
| 127 candidate_window.set_is_cursor_visible(false); | 128 candidate_window.set_is_cursor_visible(false); |
| 128 candidate_window_view()->UpdateCandidates(candidate_window); | 129 candidate_window_view()->UpdateCandidates(candidate_window); |
| 129 EXPECT_EQ(-1, selected_candidate_index_in_page()); | 130 EXPECT_EQ(-1, selected_candidate_index_in_page()); |
| 130 | 131 |
| 131 // Move the cursor to the end. | 132 // Move the cursor to the end. |
| 132 candidate_window.set_cursor_position(candidate_window_size - 1); | 133 candidate_window.set_cursor_position(candidate_window_size - 1); |
| 133 candidate_window_view()->UpdateCandidates(candidate_window); | 134 candidate_window_view()->UpdateCandidates(candidate_window); |
| 134 EXPECT_EQ(-1, selected_candidate_index_in_page()); | 135 EXPECT_EQ(-1, selected_candidate_index_in_page()); |
| 135 | 136 |
| 136 // Change the cursor to visible. The cursor must be at the end. | 137 // Change the cursor to visible. The cursor must be at the end. |
| 137 candidate_window.set_is_cursor_visible(true); | 138 candidate_window.set_is_cursor_visible(true); |
| 138 candidate_window_view()->UpdateCandidates(candidate_window); | 139 candidate_window_view()->UpdateCandidates(candidate_window); |
| 139 EXPECT_EQ(candidate_window_size - 1, selected_candidate_index_in_page()); | 140 EXPECT_EQ(candidate_window_size - 1, selected_candidate_index_in_page()); |
| 140 } | 141 } |
| 141 | 142 |
| 142 TEST_F(CandidateWindowViewTest, SelectCandidateAtTest) { | 143 TEST_F(CandidateWindowViewTest, SelectCandidateAtTest) { |
| 143 // Set 9 candidates. | 144 // Set 9 candidates. |
| 144 CandidateWindow candidate_window_large; | 145 ui::CandidateWindow candidate_window_large; |
| 145 const int candidate_window_large_size = 9; | 146 const int candidate_window_large_size = 9; |
| 146 InitCandidateWindowWithCandidatesFilled(candidate_window_large_size, | 147 InitCandidateWindowWithCandidatesFilled(candidate_window_large_size, |
| 147 &candidate_window_large); | 148 &candidate_window_large); |
| 148 candidate_window_large.set_cursor_position(candidate_window_large_size - 1); | 149 candidate_window_large.set_cursor_position(candidate_window_large_size - 1); |
| 149 candidate_window_view()->UpdateCandidates(candidate_window_large); | 150 candidate_window_view()->UpdateCandidates(candidate_window_large); |
| 150 | 151 |
| 151 // Select the last candidate. | 152 // Select the last candidate. |
| 152 SelectCandidateAt(candidate_window_large_size - 1); | 153 SelectCandidateAt(candidate_window_large_size - 1); |
| 153 | 154 |
| 154 // Reduce the number of candidates to 3. | 155 // Reduce the number of candidates to 3. |
| 155 CandidateWindow candidate_window_small; | 156 ui::CandidateWindow candidate_window_small; |
| 156 const int candidate_window_small_size = 3; | 157 const int candidate_window_small_size = 3; |
| 157 InitCandidateWindowWithCandidatesFilled(candidate_window_small_size, | 158 InitCandidateWindowWithCandidatesFilled(candidate_window_small_size, |
| 158 &candidate_window_small); | 159 &candidate_window_small); |
| 159 candidate_window_small.set_cursor_position(candidate_window_small_size - 1); | 160 candidate_window_small.set_cursor_position(candidate_window_small_size - 1); |
| 160 // Make sure the test doesn't crash if the candidate window reduced | 161 // Make sure the test doesn't crash if the candidate window reduced |
| 161 // its size. (crbug.com/174163) | 162 // its size. (crbug.com/174163) |
| 162 candidate_window_view()->UpdateCandidates(candidate_window_small); | 163 candidate_window_view()->UpdateCandidates(candidate_window_small); |
| 163 SelectCandidateAt(candidate_window_small_size - 1); | 164 SelectCandidateAt(candidate_window_small_size - 1); |
| 164 } | 165 } |
| 165 | 166 |
| 166 TEST_F(CandidateWindowViewTest, ShortcutSettingTest) { | 167 TEST_F(CandidateWindowViewTest, ShortcutSettingTest) { |
| 167 const char* kEmptyLabel = ""; | 168 const char* kEmptyLabel = ""; |
| 168 const char* kCustomizedLabel[] = { "a", "s", "d" }; | 169 const char* kCustomizedLabel[] = { "a", "s", "d" }; |
| 169 const char* kExpectedHorizontalCustomizedLabel[] = { "a.", "s.", "d." }; | 170 const char* kExpectedHorizontalCustomizedLabel[] = { "a.", "s.", "d." }; |
| 170 | 171 |
| 171 { | 172 { |
| 172 SCOPED_TRACE("candidate_views allocation test"); | 173 SCOPED_TRACE("candidate_views allocation test"); |
| 173 const size_t kMaxPageSize = 16; | 174 const size_t kMaxPageSize = 16; |
| 174 for (size_t i = 1; i < kMaxPageSize; ++i) { | 175 for (size_t i = 1; i < kMaxPageSize; ++i) { |
| 175 CandidateWindow candidate_window; | 176 ui::CandidateWindow candidate_window; |
| 176 InitCandidateWindow(i, &candidate_window); | 177 InitCandidateWindow(i, &candidate_window); |
| 177 candidate_window_view()->UpdateCandidates(candidate_window); | 178 candidate_window_view()->UpdateCandidates(candidate_window); |
| 178 EXPECT_EQ(i, GetCandidatesSize()); | 179 EXPECT_EQ(i, GetCandidatesSize()); |
| 179 } | 180 } |
| 180 } | 181 } |
| 181 { | 182 { |
| 182 SCOPED_TRACE("Empty string for each labels expects empty labels(vertical)"); | 183 SCOPED_TRACE("Empty string for each labels expects empty labels(vertical)"); |
| 183 const size_t kPageSize = 3; | 184 const size_t kPageSize = 3; |
| 184 CandidateWindow candidate_window; | 185 ui::CandidateWindow candidate_window; |
| 185 InitCandidateWindow(kPageSize, &candidate_window); | 186 InitCandidateWindow(kPageSize, &candidate_window); |
| 186 | 187 |
| 187 candidate_window.set_orientation(CandidateWindow::VERTICAL); | 188 candidate_window.set_orientation(ui::CandidateWindow::VERTICAL); |
| 188 for (size_t i = 0; i < kPageSize; ++i) { | 189 for (size_t i = 0; i < kPageSize; ++i) { |
| 189 CandidateWindow::Entry entry; | 190 ui::CandidateWindow::Entry entry; |
| 190 entry.value = kSampleCandidate[i]; | 191 entry.value = kSampleCandidate[i]; |
| 191 entry.annotation = kSampleAnnotation[i]; | 192 entry.annotation = kSampleAnnotation[i]; |
| 192 entry.description_title = kSampleDescriptionTitle[i]; | 193 entry.description_title = kSampleDescriptionTitle[i]; |
| 193 entry.description_body = kSampleDescriptionBody[i]; | 194 entry.description_body = kSampleDescriptionBody[i]; |
| 194 entry.label = kEmptyLabel; | 195 entry.label = kEmptyLabel; |
| 195 candidate_window.mutable_candidates()->push_back(entry); | 196 candidate_window.mutable_candidates()->push_back(entry); |
| 196 } | 197 } |
| 197 | 198 |
| 198 candidate_window_view()->UpdateCandidates(candidate_window); | 199 candidate_window_view()->UpdateCandidates(candidate_window); |
| 199 | 200 |
| 200 ASSERT_EQ(kPageSize, GetCandidatesSize()); | 201 ASSERT_EQ(kPageSize, GetCandidatesSize()); |
| 201 for (size_t i = 0; i < kPageSize; ++i) { | 202 for (size_t i = 0; i < kPageSize; ++i) { |
| 202 ExpectLabels(kEmptyLabel, kSampleCandidate[i], kSampleAnnotation[i], | 203 ExpectLabels(kEmptyLabel, kSampleCandidate[i], kSampleAnnotation[i], |
| 203 GetCandidateAt(i)); | 204 GetCandidateAt(i)); |
| 204 } | 205 } |
| 205 } | 206 } |
| 206 { | 207 { |
| 207 SCOPED_TRACE( | 208 SCOPED_TRACE( |
| 208 "Empty string for each labels expect empty labels(horizontal)"); | 209 "Empty string for each labels expect empty labels(horizontal)"); |
| 209 const size_t kPageSize = 3; | 210 const size_t kPageSize = 3; |
| 210 CandidateWindow candidate_window; | 211 ui::CandidateWindow candidate_window; |
| 211 InitCandidateWindow(kPageSize, &candidate_window); | 212 InitCandidateWindow(kPageSize, &candidate_window); |
| 212 | 213 |
| 213 candidate_window.set_orientation(CandidateWindow::HORIZONTAL); | 214 candidate_window.set_orientation(ui::CandidateWindow::HORIZONTAL); |
| 214 for (size_t i = 0; i < kPageSize; ++i) { | 215 for (size_t i = 0; i < kPageSize; ++i) { |
| 215 CandidateWindow::Entry entry; | 216 ui::CandidateWindow::Entry entry; |
| 216 entry.value = kSampleCandidate[i]; | 217 entry.value = kSampleCandidate[i]; |
| 217 entry.annotation = kSampleAnnotation[i]; | 218 entry.annotation = kSampleAnnotation[i]; |
| 218 entry.description_title = kSampleDescriptionTitle[i]; | 219 entry.description_title = kSampleDescriptionTitle[i]; |
| 219 entry.description_body = kSampleDescriptionBody[i]; | 220 entry.description_body = kSampleDescriptionBody[i]; |
| 220 entry.label = kEmptyLabel; | 221 entry.label = kEmptyLabel; |
| 221 candidate_window.mutable_candidates()->push_back(entry); | 222 candidate_window.mutable_candidates()->push_back(entry); |
| 222 } | 223 } |
| 223 | 224 |
| 224 candidate_window_view()->UpdateCandidates(candidate_window); | 225 candidate_window_view()->UpdateCandidates(candidate_window); |
| 225 | 226 |
| 226 ASSERT_EQ(kPageSize, GetCandidatesSize()); | 227 ASSERT_EQ(kPageSize, GetCandidatesSize()); |
| 227 // Confirm actual labels not containing ".". | 228 // Confirm actual labels not containing ".". |
| 228 for (size_t i = 0; i < kPageSize; ++i) { | 229 for (size_t i = 0; i < kPageSize; ++i) { |
| 229 ExpectLabels(kEmptyLabel, kSampleCandidate[i], kSampleAnnotation[i], | 230 ExpectLabels(kEmptyLabel, kSampleCandidate[i], kSampleAnnotation[i], |
| 230 GetCandidateAt(i)); | 231 GetCandidateAt(i)); |
| 231 } | 232 } |
| 232 } | 233 } |
| 233 { | 234 { |
| 234 SCOPED_TRACE("Vertical customized label case"); | 235 SCOPED_TRACE("Vertical customized label case"); |
| 235 const size_t kPageSize = 3; | 236 const size_t kPageSize = 3; |
| 236 CandidateWindow candidate_window; | 237 ui::CandidateWindow candidate_window; |
| 237 InitCandidateWindow(kPageSize, &candidate_window); | 238 InitCandidateWindow(kPageSize, &candidate_window); |
| 238 | 239 |
| 239 candidate_window.set_orientation(CandidateWindow::VERTICAL); | 240 candidate_window.set_orientation(ui::CandidateWindow::VERTICAL); |
| 240 for (size_t i = 0; i < kPageSize; ++i) { | 241 for (size_t i = 0; i < kPageSize; ++i) { |
| 241 CandidateWindow::Entry entry; | 242 ui::CandidateWindow::Entry entry; |
| 242 entry.value = kSampleCandidate[i]; | 243 entry.value = kSampleCandidate[i]; |
| 243 entry.annotation = kSampleAnnotation[i]; | 244 entry.annotation = kSampleAnnotation[i]; |
| 244 entry.description_title = kSampleDescriptionTitle[i]; | 245 entry.description_title = kSampleDescriptionTitle[i]; |
| 245 entry.description_body = kSampleDescriptionBody[i]; | 246 entry.description_body = kSampleDescriptionBody[i]; |
| 246 entry.label = kCustomizedLabel[i]; | 247 entry.label = kCustomizedLabel[i]; |
| 247 candidate_window.mutable_candidates()->push_back(entry); | 248 candidate_window.mutable_candidates()->push_back(entry); |
| 248 } | 249 } |
| 249 | 250 |
| 250 candidate_window_view()->UpdateCandidates(candidate_window); | 251 candidate_window_view()->UpdateCandidates(candidate_window); |
| 251 | 252 |
| 252 ASSERT_EQ(kPageSize, GetCandidatesSize()); | 253 ASSERT_EQ(kPageSize, GetCandidatesSize()); |
| 253 // Confirm actual labels not containing ".". | 254 // Confirm actual labels not containing ".". |
| 254 for (size_t i = 0; i < kPageSize; ++i) { | 255 for (size_t i = 0; i < kPageSize; ++i) { |
| 255 ExpectLabels(kCustomizedLabel[i], | 256 ExpectLabels(kCustomizedLabel[i], |
| 256 kSampleCandidate[i], | 257 kSampleCandidate[i], |
| 257 kSampleAnnotation[i], | 258 kSampleAnnotation[i], |
| 258 GetCandidateAt(i)); | 259 GetCandidateAt(i)); |
| 259 } | 260 } |
| 260 } | 261 } |
| 261 { | 262 { |
| 262 SCOPED_TRACE("Horizontal customized label case"); | 263 SCOPED_TRACE("Horizontal customized label case"); |
| 263 const size_t kPageSize = 3; | 264 const size_t kPageSize = 3; |
| 264 CandidateWindow candidate_window; | 265 ui::CandidateWindow candidate_window; |
| 265 InitCandidateWindow(kPageSize, &candidate_window); | 266 InitCandidateWindow(kPageSize, &candidate_window); |
| 266 | 267 |
| 267 candidate_window.set_orientation(CandidateWindow::HORIZONTAL); | 268 candidate_window.set_orientation(ui::CandidateWindow::HORIZONTAL); |
| 268 for (size_t i = 0; i < kPageSize; ++i) { | 269 for (size_t i = 0; i < kPageSize; ++i) { |
| 269 CandidateWindow::Entry entry; | 270 ui::CandidateWindow::Entry entry; |
| 270 entry.value = kSampleCandidate[i]; | 271 entry.value = kSampleCandidate[i]; |
| 271 entry.annotation = kSampleAnnotation[i]; | 272 entry.annotation = kSampleAnnotation[i]; |
| 272 entry.description_title = kSampleDescriptionTitle[i]; | 273 entry.description_title = kSampleDescriptionTitle[i]; |
| 273 entry.description_body = kSampleDescriptionBody[i]; | 274 entry.description_body = kSampleDescriptionBody[i]; |
| 274 entry.label = kCustomizedLabel[i]; | 275 entry.label = kCustomizedLabel[i]; |
| 275 candidate_window.mutable_candidates()->push_back(entry); | 276 candidate_window.mutable_candidates()->push_back(entry); |
| 276 } | 277 } |
| 277 | 278 |
| 278 candidate_window_view()->UpdateCandidates(candidate_window); | 279 candidate_window_view()->UpdateCandidates(candidate_window); |
| 279 | 280 |
| 280 ASSERT_EQ(kPageSize, GetCandidatesSize()); | 281 ASSERT_EQ(kPageSize, GetCandidatesSize()); |
| 281 // Confirm actual labels not containing ".". | 282 // Confirm actual labels not containing ".". |
| 282 for (size_t i = 0; i < kPageSize; ++i) { | 283 for (size_t i = 0; i < kPageSize; ++i) { |
| 283 ExpectLabels(kExpectedHorizontalCustomizedLabel[i], | 284 ExpectLabels(kExpectedHorizontalCustomizedLabel[i], |
| 284 kSampleCandidate[i], | 285 kSampleCandidate[i], |
| 285 kSampleAnnotation[i], | 286 kSampleAnnotation[i], |
| 286 GetCandidateAt(i)); | 287 GetCandidateAt(i)); |
| 287 } | 288 } |
| 288 } | 289 } |
| 289 } | 290 } |
| 290 | 291 |
| 291 TEST_F(CandidateWindowViewTest, DoNotChangeRowHeightWithLabelSwitchTest) { | 292 TEST_F(CandidateWindowViewTest, DoNotChangeRowHeightWithLabelSwitchTest) { |
| 292 const size_t kPageSize = 10; | 293 const size_t kPageSize = 10; |
| 293 CandidateWindow candidate_window; | 294 ui::CandidateWindow candidate_window; |
| 294 CandidateWindow no_shortcut_candidate_window; | 295 ui::CandidateWindow no_shortcut_candidate_window; |
| 295 | 296 |
| 296 const char kSampleCandidate1[] = "Sample String 1"; | 297 const char kSampleCandidate1[] = "Sample String 1"; |
| 297 const char kSampleCandidate2[] = "\xE3\x81\x82"; // multi byte string. | 298 const char kSampleCandidate2[] = "\xE3\x81\x82"; // multi byte string. |
| 298 const char kSampleCandidate3[] = "....."; | 299 const char kSampleCandidate3[] = "....."; |
| 299 | 300 |
| 300 const char kSampleShortcut1[] = "1"; | 301 const char kSampleShortcut1[] = "1"; |
| 301 const char kSampleShortcut2[] = "b"; | 302 const char kSampleShortcut2[] = "b"; |
| 302 const char kSampleShortcut3[] = "C"; | 303 const char kSampleShortcut3[] = "C"; |
| 303 | 304 |
| 304 const char kSampleAnnotation1[] = "Sample Annotation 1"; | 305 const char kSampleAnnotation1[] = "Sample Annotation 1"; |
| 305 const char kSampleAnnotation2[] = "\xE3\x81\x82"; // multi byte string. | 306 const char kSampleAnnotation2[] = "\xE3\x81\x82"; // multi byte string. |
| 306 const char kSampleAnnotation3[] = "......"; | 307 const char kSampleAnnotation3[] = "......"; |
| 307 | 308 |
| 308 // Create CandidateWindow object. | 309 // Create CandidateWindow object. |
| 309 InitCandidateWindow(kPageSize, &candidate_window); | 310 InitCandidateWindow(kPageSize, &candidate_window); |
| 310 | 311 |
| 311 candidate_window.set_cursor_position(0); | 312 candidate_window.set_cursor_position(0); |
| 312 candidate_window.set_page_size(3); | 313 candidate_window.set_page_size(3); |
| 313 candidate_window.mutable_candidates()->clear(); | 314 candidate_window.mutable_candidates()->clear(); |
| 314 candidate_window.set_orientation(CandidateWindow::VERTICAL); | 315 candidate_window.set_orientation(ui::CandidateWindow::VERTICAL); |
| 315 no_shortcut_candidate_window.CopyFrom(candidate_window); | 316 no_shortcut_candidate_window.CopyFrom(candidate_window); |
| 316 | 317 |
| 317 CandidateWindow::Entry entry; | 318 ui::CandidateWindow::Entry entry; |
| 318 entry.value = kSampleCandidate1; | 319 entry.value = kSampleCandidate1; |
| 319 entry.annotation = kSampleAnnotation1; | 320 entry.annotation = kSampleAnnotation1; |
| 320 candidate_window.mutable_candidates()->push_back(entry); | 321 candidate_window.mutable_candidates()->push_back(entry); |
| 321 entry.label = kSampleShortcut1; | 322 entry.label = kSampleShortcut1; |
| 322 no_shortcut_candidate_window.mutable_candidates()->push_back(entry); | 323 no_shortcut_candidate_window.mutable_candidates()->push_back(entry); |
| 323 | 324 |
| 324 entry.value = kSampleCandidate2; | 325 entry.value = kSampleCandidate2; |
| 325 entry.annotation = kSampleAnnotation2; | 326 entry.annotation = kSampleAnnotation2; |
| 326 candidate_window.mutable_candidates()->push_back(entry); | 327 candidate_window.mutable_candidates()->push_back(entry); |
| 327 entry.label = kSampleShortcut2; | 328 entry.label = kSampleShortcut2; |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 373 ASSERT_EQ(3UL, GetCandidatesSize()); | 374 ASSERT_EQ(3UL, GetCandidatesSize()); |
| 374 // Check the selected index is invalidated. | 375 // Check the selected index is invalidated. |
| 375 EXPECT_EQ(-1, selected_candidate_index_in_page()); | 376 EXPECT_EQ(-1, selected_candidate_index_in_page()); |
| 376 EXPECT_EQ(before_height, GetCandidateAt(0)->GetContentsBounds().height()); | 377 EXPECT_EQ(before_height, GetCandidateAt(0)->GetContentsBounds().height()); |
| 377 // Checks all entry have same row height. | 378 // Checks all entry have same row height. |
| 378 for (size_t i = 1; i < GetCandidatesSize(); ++i) | 379 for (size_t i = 1; i < GetCandidatesSize(); ++i) |
| 379 EXPECT_EQ(before_height, GetCandidateAt(i)->GetContentsBounds().height()); | 380 EXPECT_EQ(before_height, GetCandidateAt(i)->GetContentsBounds().height()); |
| 380 } | 381 } |
| 381 } // namespace input_method | 382 } // namespace input_method |
| 382 } // namespace chromeos | 383 } // namespace chromeos |
| OLD | NEW |