| Index: ios/chrome/browser/ui/activity_services/activity_type_util_unittest.mm
|
| diff --git a/ios/chrome/browser/ui/activity_services/activity_type_util_unittest.mm b/ios/chrome/browser/ui/activity_services/activity_type_util_unittest.mm
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..ba897617bde0d7ab235511c11e475a76a3588edf
|
| --- /dev/null
|
| +++ b/ios/chrome/browser/ui/activity_services/activity_type_util_unittest.mm
|
| @@ -0,0 +1,107 @@
|
| +// Copyright 2014 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/activity_services/activity_type_util.h"
|
| +
|
| +#include "ios/chrome/browser/ui/activity_services/appex_constants.h"
|
| +#include "ios/chrome/browser/ui/activity_services/print_activity.h"
|
| +#include "ios/chrome/grit/ios_strings.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +#include "testing/gtest_mac.h"
|
| +#include "ui/base/l10n/l10n_util_mac.h"
|
| +
|
| +namespace {
|
| +
|
| +void StringToTypeTestHelper(NSString* activityString,
|
| + activity_type_util::ActivityType expectedType) {
|
| + EXPECT_EQ(activity_type_util::TypeFromString(activityString), expectedType);
|
| +}
|
| +
|
| +TEST(ActivityTypeUtilTest, StringToTypeTest) {
|
| + StringToTypeTestHelper(@"", activity_type_util::UNKNOWN);
|
| + StringToTypeTestHelper(@"foo", activity_type_util::UNKNOWN);
|
| + StringToTypeTestHelper(@"com.google", activity_type_util::UNKNOWN);
|
| + StringToTypeTestHelper(@"com.google.", activity_type_util::GOOGLE_UNKNOWN);
|
| + StringToTypeTestHelper(@"com.google.Gmail",
|
| + activity_type_util::GOOGLE_UNKNOWN);
|
| + StringToTypeTestHelper(@"com.google.Gmail.Bar",
|
| + activity_type_util::GOOGLE_GMAIL);
|
| + StringToTypeTestHelper(@"com.apple.UIKit.activity.Mail",
|
| + activity_type_util::NATIVE_MAIL);
|
| + StringToTypeTestHelper(@"com.apple.UIKit.activity.Mail.Qux",
|
| + activity_type_util::UNKNOWN);
|
| + StringToTypeTestHelper([PrintActivity activityIdentifier],
|
| + activity_type_util::PRINT);
|
| +}
|
| +
|
| +void TypeToMessageTestHelper(activity_type_util::ActivityType type,
|
| + NSString* expectedMessage) {
|
| + EXPECT_NSEQ(activity_type_util::SuccessMessageForActivity(type),
|
| + expectedMessage);
|
| +}
|
| +
|
| +TEST(ActivityTypeUtilTest, TypeToMessageTest) {
|
| + TypeToMessageTestHelper(activity_type_util::UNKNOWN, nil);
|
| + TypeToMessageTestHelper(activity_type_util::PRINT, nil);
|
| + TypeToMessageTestHelper(
|
| + activity_type_util::NATIVE_TWITTER,
|
| + l10n_util::GetNSString(IDS_IOS_SHARE_TWITTER_COMPLETE));
|
| + TypeToMessageTestHelper(
|
| + activity_type_util::APPEX_PASSWORD_MANAGEMENT_OTHERS,
|
| + l10n_util::GetNSString(IDS_IOS_APPEX_PASSWORD_FORM_FILLED_SUCCESS));
|
| +}
|
| +
|
| +TEST(ActivityTypeUtilTest, IsPasswordAppExtensionTest) {
|
| + // Verifies that known Bundle ID for 1Password requires exact match.
|
| + EXPECT_TRUE(activity_type_util::IsPasswordAppExActivity(
|
| + @"com.agilebits.onepassword-ios.extension"));
|
| + EXPECT_FALSE(activity_type_util::IsPasswordAppExActivity(
|
| + @"com.agilebits.onepassword-ios.extension.otherstuff"));
|
| + // Verifies that known Bundle ID for LastPass requires exact match.
|
| + EXPECT_TRUE(activity_type_util::IsPasswordAppExActivity(
|
| + @"com.lastpass.ilastpass.LastPassExt"));
|
| + EXPECT_FALSE(activity_type_util::IsPasswordAppExActivity(
|
| + @"com.lastpass.ilastpass.LastPassExt.otherstuff"));
|
| + // Verifies that both variants of Dashlane Bundle IDs are recognized.
|
| + EXPECT_TRUE(activity_type_util::IsPasswordAppExActivity(
|
| + @"com.dashlane.dashlanephonefinal.SafariExtension"));
|
| + EXPECT_TRUE(activity_type_util::IsPasswordAppExActivity(
|
| + @"com.dashlane.dashlanephonefinal.appextension"));
|
| + // Verifies that any Bundle ID with @"find-login-action" is recognized.
|
| + EXPECT_TRUE(activity_type_util::IsPasswordAppExActivity(
|
| + @"com.some-company.find-login-action.an-extension"));
|
| + EXPECT_TRUE(activity_type_util::IsPasswordAppExActivity(
|
| + @"com.some-company.compatible-find-login-action-an-extension"));
|
| + EXPECT_TRUE(activity_type_util::IsPasswordAppExActivity(
|
| + @"com.some-company.find-login-action-as-prefix"));
|
| + EXPECT_TRUE(activity_type_util::IsPasswordAppExActivity(
|
| + @"com.some-company.with-suffix-of-find-login-action"));
|
| + EXPECT_TRUE(activity_type_util::IsPasswordAppExActivity(
|
| + @"com.google.find-login-action.extension"));
|
| + // Verifies non-matching Bundle IDs.
|
| + EXPECT_FALSE(
|
| + activity_type_util::IsPasswordAppExActivity(@"com.google.chrome.ios"));
|
| + EXPECT_FALSE(activity_type_util::IsPasswordAppExActivity(
|
| + @"com.apple.UIKit.activity.PostToFacebook"));
|
| +}
|
| +
|
| +TEST(ActivityTypeUtilTest, PasswordAppExtensionVersionTest) {
|
| + EXPECT_EQ(activity_services::kPasswordAppExVersionNumber,
|
| + activity_type_util::PasswordAppExActivityVersion(
|
| + @"com.agilebits.onepassword-ios.extension"));
|
| + EXPECT_EQ(activity_services::kPasswordAppExVersionNumber,
|
| + activity_type_util::PasswordAppExActivityVersion(
|
| + @"com.lastpass.ilastpass.LastPassExt"));
|
| + EXPECT_EQ(activity_services::kPasswordAppExVersionNumber,
|
| + activity_type_util::PasswordAppExActivityVersion(
|
| + @"com.dashlane.dashlanephonefinal.SafariExtension"));
|
| + EXPECT_EQ(activity_services::kPasswordAppExVersionNumber,
|
| + activity_type_util::PasswordAppExActivityVersion(
|
| + @"com.some-company.find-login-action.an-extension"));
|
| + EXPECT_NE(activity_services::kPasswordAppExVersionNumber,
|
| + activity_type_util::PasswordAppExActivityVersion(
|
| + @"com.apple.UIKit.activity.PostToFacebook"));
|
| +}
|
| +
|
| +} // namespace
|
|
|