| // Copyright 2017 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #import "ios/chrome/browser/ui/content_suggestions/identifier/content_suggestion_identifier.h" |
| |
| #import "ios/chrome/browser/ui/content_suggestions/identifier/content_suggestions_section_information.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| |
| #if !defined(__has_feature) || !__has_feature(objc_arc) |
| #error "This file requires ARC support." |
| #endif |
| |
| @interface ContentSuggestionIdentifierSubclassTest : ContentSuggestionIdentifier |
| @end |
| |
| @implementation ContentSuggestionIdentifierSubclassTest |
| @end |
| |
| // Tests different equality scenario. |
| TEST(ContentSuggestionIdentifierTest, IsEquals) { |
| // Setup. |
| std::string id1("identifier"); |
| std::string id2("identifier"); |
| ContentSuggestionsSectionInformation* sectionInfo = |
| [[ContentSuggestionsSectionInformation alloc] |
| initWithSectionID:ContentSuggestionsSectionArticles]; |
| |
| ContentSuggestionIdentifier* suggestionIdentifier1 = |
| [[ContentSuggestionIdentifier alloc] init]; |
| suggestionIdentifier1.sectionInfo = sectionInfo; |
| suggestionIdentifier1.IDInSection = id1; |
| |
| ContentSuggestionIdentifier* suggestionIdentifier2 = |
| [[ContentSuggestionIdentifier alloc] init]; |
| suggestionIdentifier2.sectionInfo = sectionInfo; |
| suggestionIdentifier2.IDInSection = id2; |
| |
| ContentSuggestionIdentifierSubclassTest* subclass = |
| [[ContentSuggestionIdentifierSubclassTest alloc] init]; |
| subclass.sectionInfo = sectionInfo; |
| subclass.IDInSection = id2; |
| |
| // Action and Test. |
| EXPECT_TRUE([suggestionIdentifier1 isEqual:suggestionIdentifier2]); |
| EXPECT_TRUE([suggestionIdentifier1 isEqual:suggestionIdentifier1]); |
| EXPECT_TRUE([suggestionIdentifier1 isEqual:subclass]); |
| } |
| |
| // Test non-equality between different objects. |
| TEST(ContentSuggestionIdentifierTest, IsNotEqualsDifferentObjects) { |
| // Setup. |
| NSObject* object = [[NSObject alloc] init]; |
| ContentSuggestionIdentifier* suggestionIdentifier = |
| [[ContentSuggestionIdentifier alloc] init]; |
| |
| // Action and Test. |
| EXPECT_FALSE([suggestionIdentifier isEqual:object]); |
| } |
| |
| // Test non-equality. |
| TEST(ContentSuggestionIdentifierTest, IsNotEquals) { |
| // Setup. |
| std::string id1("identifier"); |
| std::string id2("identifier2"); |
| ContentSuggestionsSectionInformation* sectionInfo1 = |
| [[ContentSuggestionsSectionInformation alloc] |
| initWithSectionID:ContentSuggestionsSectionArticles]; |
| ContentSuggestionsSectionInformation* sectionInfo2 = |
| [[ContentSuggestionsSectionInformation alloc] |
| initWithSectionID:ContentSuggestionsSectionReadingList]; |
| |
| ContentSuggestionIdentifier* suggestionIdentifier1 = |
| [[ContentSuggestionIdentifier alloc] init]; |
| suggestionIdentifier1.sectionInfo = sectionInfo1; |
| suggestionIdentifier1.IDInSection = id1; |
| |
| ContentSuggestionIdentifier* suggestionIdentifier2 = |
| [[ContentSuggestionIdentifier alloc] init]; |
| suggestionIdentifier2.sectionInfo = sectionInfo1; |
| suggestionIdentifier2.IDInSection = id2; |
| |
| ContentSuggestionIdentifier* suggestionIdentifier3 = |
| [[ContentSuggestionIdentifier alloc] init]; |
| suggestionIdentifier3.sectionInfo = sectionInfo2; |
| suggestionIdentifier3.IDInSection = id1; |
| |
| // Action and Test. |
| EXPECT_FALSE([suggestionIdentifier1 isEqual:suggestionIdentifier2]); |
| EXPECT_FALSE([suggestionIdentifier2 isEqual:suggestionIdentifier3]); |
| EXPECT_FALSE([suggestionIdentifier1 isEqual:suggestionIdentifier3]); |
| } |