Commit 23426161 authored by John Z Wu's avatar John Z Wu Committed by Commit Bot

Implement equality methods for CWVTranslationLanguage

This will make them easier to work with when used in collections

Change-Id: I8225afc3076929c9d8c162ca2a4af30c390e7fd6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2425400
Commit-Queue: John Wu <jzw@chromium.org>
Reviewed-by: default avatarHiroshi Ichikawa <ichikawa@chromium.org>
Cr-Commit-Position: refs/heads/master@{#810253}
parent fb765f65
......@@ -29,6 +29,22 @@
return self;
}
- (BOOL)isEqual:(id)object {
if (self == object) {
return YES;
}
if (![object isKindOfClass:[CWVTranslationLanguage class]]) {
return NO;
}
CWVTranslationLanguage* otherLanguage = (CWVTranslationLanguage*)object;
return [_languageCode isEqualToString:otherLanguage.languageCode];
}
- (NSUInteger)hash {
return [_languageCode hash];
}
- (NSString*)description {
return
[NSString stringWithFormat:@"%@ name:%@(%@) code:%@", [super description],
......
......@@ -34,4 +34,21 @@ TEST_F(CWVTranslationLanguageTest, Initialization) {
EXPECT_NSEQ(native_name, language.nativeName);
}
TEST_F(CWVTranslationLanguageTest, Equality) {
// Two languages with the same langauge code but different localized/native
// names.
CWVTranslationLanguage* language_a = [[CWVTranslationLanguage alloc]
initWithLanguageCode:"ja"
localizedName:base::SysNSStringToUTF16(@"JapaneseA")
nativeName:base::SysNSStringToUTF16(@"日本語A")];
CWVTranslationLanguage* language_b = [[CWVTranslationLanguage alloc]
initWithLanguageCode:"ja"
localizedName:base::SysNSStringToUTF16(@"JapaneseB")
nativeName:base::SysNSStringToUTF16(@"日本語B")];
// Equality should only be based on the language code.
EXPECT_NSEQ(language_a, language_b);
EXPECT_EQ(language_a.hash, language_b.hash);
}
} // namespace ios_web_view
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment