OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #import <UIKit/UIKit.h> | 5 #import <UIKit/UIKit.h> |
6 | 6 |
7 #include "base/mac/scoped_nsobject.h" | |
8 #include "ios/chrome/browser/ui/first_run/first_run_util.h" | 7 #include "ios/chrome/browser/ui/first_run/first_run_util.h" |
9 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
10 | 9 |
| 10 #if !defined(__has_feature) || !__has_feature(objc_arc) |
| 11 #error "This file requires ARC support." |
| 12 #endif |
| 13 |
11 namespace { | 14 namespace { |
12 | 15 |
13 TEST(UICommonTest, TestFixOrphanWord) { | 16 TEST(UICommonTest, TestFixOrphanWord) { |
14 NSString* englishString = | 17 NSString* englishString = |
15 @"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec tempus" | 18 @"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec tempus" |
16 " dignissim congue. Morbi pulvinar vitae purus at mollis. Sed laoreet " | 19 " dignissim congue. Morbi pulvinar vitae purus at mollis. Sed laoreet " |
17 "euismod neque, eget laoreet nisi porttitor sed."; | 20 "euismod neque, eget laoreet nisi porttitor sed."; |
18 NSString* englishStringWithOrphan = | 21 NSString* englishStringWithOrphan = |
19 @"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec tempus" | 22 @"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec tempus" |
20 " dignissim congue. Morbi pulvinar vitae purus at mollis. Sed laoreet " | 23 " dignissim congue. Morbi pulvinar vitae purus at mollis. Sed laoreet " |
21 "euismod neque, eget laoreet nisi."; | 24 "euismod neque, eget laoreet nisi."; |
22 // TODO(crbug.com/675342): clang_format does a poor job here. Remove when | 25 // TODO(crbug.com/675342): clang_format does a poor job here. Remove when |
23 // fixed in clang_format. | 26 // fixed in clang_format. |
24 // clang-format off | 27 // clang-format off |
25 NSString* chineseString = | 28 NSString* chineseString = |
26 @"那只敏捷的棕色狐狸跃过那只懒狗。那只敏捷的棕色狐狸跃过那只懒狗。" | 29 @"那只敏捷的棕色狐狸跃过那只懒狗。那只敏捷的棕色狐狸跃过那只懒狗。" |
27 "那只敏捷的棕色狐狸跃过那只懒狗。那只敏捷的棕色狐狸跃过那只懒狗。" | 30 "那只敏捷的棕色狐狸跃过那只懒狗。那只敏捷的棕色狐狸跃过那只懒狗。" |
28 "那只敏捷的棕色狐狸跃过那只懒狗。那只敏捷的棕色狐狸跃过那只懒狗。"; | 31 "那只敏捷的棕色狐狸跃过那只懒狗。那只敏捷的棕色狐狸跃过那只懒狗。"; |
29 NSString* chineseStringWithOrphan = | 32 NSString* chineseStringWithOrphan = |
30 @"那只敏捷的棕色狐狸跃过那只懒狗。那只敏捷的棕色狐狸跃过那只懒狗。" | 33 @"那只敏捷的棕色狐狸跃过那只懒狗。那只敏捷的棕色狐狸跃过那只懒狗。" |
31 "那只敏捷的棕色狐狸跃过那只懒狗。快速狐狸"; | 34 "那只敏捷的棕色狐狸跃过那只懒狗。快速狐狸"; |
32 // clang-format on | 35 // clang-format on |
33 | 36 |
34 base::scoped_nsobject<UILabel> label( | 37 UILabel* label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 300, 500)]; |
35 [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 300, 500)]); | |
36 [label setText:englishString]; | 38 [label setText:englishString]; |
37 ios_internal::FixOrphanWord(label); | 39 ios_internal::FixOrphanWord(label); |
38 NSRange range = [[label text] rangeOfString:@"\n"]; | 40 NSRange range = [[label text] rangeOfString:@"\n"]; |
39 // Check that the label's text does not contain a newline. | 41 // Check that the label's text does not contain a newline. |
40 EXPECT_EQ(NSNotFound, static_cast<NSInteger>(range.location)); | 42 EXPECT_EQ(NSNotFound, static_cast<NSInteger>(range.location)); |
41 | 43 |
42 [label setText:englishStringWithOrphan]; | 44 [label setText:englishStringWithOrphan]; |
43 ios_internal::FixOrphanWord(label); | 45 ios_internal::FixOrphanWord(label); |
44 range = [[label text] rangeOfString:@"\n"]; | 46 range = [[label text] rangeOfString:@"\n"]; |
45 // Check that the label's text contains a newline. | 47 // Check that the label's text contains a newline. |
(...skipping 15 matching lines...) Expand all Loading... |
61 range = [[label text] rangeOfString:@"\n"]; | 63 range = [[label text] rangeOfString:@"\n"]; |
62 // Check that the label's text contains a newline. | 64 // Check that the label's text contains a newline. |
63 ASSERT_NE(NSNotFound, static_cast<NSInteger>(range.location)); | 65 ASSERT_NE(NSNotFound, static_cast<NSInteger>(range.location)); |
64 | 66 |
65 // Check the words after the newline. | 67 // Check the words after the newline. |
66 wordsAfterNewline = | 68 wordsAfterNewline = |
67 [[label text] substringFromIndex:(range.location + range.length)]; | 69 [[label text] substringFromIndex:(range.location + range.length)]; |
68 EXPECT_TRUE([@"快速狐狸" isEqualToString:wordsAfterNewline]); | 70 EXPECT_TRUE([@"快速狐狸" isEqualToString:wordsAfterNewline]); |
69 } | 71 } |
70 } | 72 } |
OLD | NEW |