blob: 5d9c86c045b767a67a9ce5aa7df18ee5cec6b0d4 [file] [log] [blame]
// 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:ContentSuggestionsSectionBookmarks];
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]);
}